AVR (8) 썸네일형 리스트형 [ATmega128] LED right shif * 목표 : LED Left right shift #define F_CPU 16000000UL // 16MHz #include #include int main(void) { char i; DDRA = 0xFF; while (1) { for(i = 0; i > i; _delay_ms(100); } } } #define F_CPU 16000000UL // 16MHz #include #include int main(void) { char i; DDRA = 0xFF; while (1) { for(i = 0; i > i); _delay_ms(100); } } } [ATmega128] LED Left shift * 목표 : LED Left shift 회로도 1 #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ char i; DDRA=0xFF; while(1){ for(i = 0; i < 8; i++) { PORTA = 0x01 [ATmega128] LED 홀수 짝수 교대 점등 & Delay * 목표 : LED 홀수, 짝수번째 1초씩 교대 점등 #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ PORTA=0x55; _delay_ms(1000); PORTA=0xAA; _delay_ms(1000); } } #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ PORTA=~0x55; _delay_ms(1000); PORTA=~0xAA; _delay_ms(1000); } } [ATmega128] LED 홀수, 짝수 교대 점등 * 목표 : LED 홀수, 짝수 교대 점등 #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ // 딜레이가 없으므로 속도가 빨라 전부 켜져있는 것처럼 보임 PORTA=0x55; // 0101 0101 PORTA=0xAA; // 1010 1010 } } #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ // 딜레이가 없으므로 속도가 빨라 전부 켜져있는 것처럼 보임 PORTA=~0x55; PORTA=~0xAA; } } [ATmega128] 홀수 LED 점등 * 목표 : 홀수번째 LED 점등 #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ PORTA=0x55; // 0101 0101 } } #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ PORTA=~0x55; } } [ATmega128] 짝수 LED 점등 목표 : 짝수 LED 점등 #define F_CPU 16000000UL // 16 MHz #include #include int main(void){ DDRA=0xFF; while(1){ PORTA=0xAA; } } #define F_CPU 16000000UL // 16 MHz #include #include // int main(void){ DDRA=0xFF; while(1){ PORTA=~0xAA; } } [ATmega128] LED 1개 점멸 목표 : LED 1번 켜기 / 끄기 #define F_CPU 16000000UL // 16 MHz #include #include int main(void){ DDRA=0x01; // LED while(1){ PORTA=0x01; // LED1 ON _delay_ms(1000); PORTA=0x00; // LED1 OFF _delay_ms(1000); } } 데이터형 정리 *** 단, AVRStudio는 bit 변수를 지원하지 않는다 2진에서 8진으로 만들 때에는 오른쪽 끝에서부터 3자리씩 잘라서 바꾼다. 2진에서 16진으로 만들 때에는 오른쪽 끝에서부터 4자리씩 잘라서 바꾼다. 2진 10진 16진 모두 앞자리 0은 생략 가능 합니다. 0b00000001 = 0b1 0d01 = 0d1 0x01 = 0x1 위 숫자는 모두 같은 1이므로 0b00000001 = 0x01 = 0d01 = 1 우리가 많이 사용 하는 10진은 0d를 생략 가능 2진에서 각비트 위치와 상위비트(MSB), 하위비트(LSB)는 아래와 같습니다. 2진 MSB LSB bit 7 6 5 4 3 2 1 0 0b 0 0 0 0 0 0 0 0 형식 유효 자릿수 바이트 수 float 6 ~ 7 4 double 15 .. 이전 1 다음