#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned int cnt=0;
unsigned int cntt=0;
void buzzer()
{
PORTB = 0x02;
_delay_ms(10);
PORTB = 0x00;
_delay_ms(10);
}
int main()
{
DDRB = 0xFF;
PORTB =0x00;
DDRC = 0x01;
PORTC = 0x00;
DDRD = 0xe3;
PORTD = 0x00;
//PORTD = 0x40; // 1번째 녹색
//PORTD = 0x80; // 2번째 녹색
//PORTB= 0x01; // 3번째 녹색
//PORTB= 0x40; // 1번째 빨강
//PORTB= 0x80; // 2번째 빨강
//PORTD = 0x20; // 3번째 빨강
// (PIND & 0xFF) == 0x0c // 선택 스위치 PIND4
// (PIND & 0xFF) == 0x14 // 전원부 스위치 PIND3
// PIND4 0x10; 선택스위치
// PIND3 0x08; 전원스위치 인터럽트
buzzer();
while(1){
PORTD = 0x40;
if((PIND & 0x10)==0x00) // 선택 스위치
cnt++;
switch(cnt){
case 1:
PORTD = 0xc0;
_delay_ms(20);
break;
case 2:
PORTD = 0xc0;
PORTB = 0x01;
_delay_ms(20);
break;
case 3:
PORTD = 0x40;
PORTB = 0x00;
cnt=0;
_delay_ms(20);
break;
}
if((PIND & 0x08) == 0x00){// 전원 스위치
if(cnt == 0){
PORTC = 0x01;
_delay_ms(500);
PORTC = 0x00;
}
else if(cnt==1)
{
PORTC = 0x01;
_delay_ms(500);
PORTC = 0x00;
}
else if(cnt==2){
PORTC = 0x01;
_delay_ms(500);
PORTC = 0x00;
}
}
}
return 0;}
'Study > 8-bit MCUs' 카테고리의 다른 글
B/T LED 부품 선정 및 견적서 (1) | 2017.04.10 |
---|---|
B/T LED Control circuit (0) | 2017.04.10 |
코드비젼/ AVR EDIT/ ICC/ AVRSTUDIO/ IAR/ 컴파일러 변경시 참조 (0) | 2015.06.11 |
pwm duty (0) | 2015.06.11 |
Atmega128을 이용하여 Duty 50%, 10[Khz] Clock을 출력하는 방법 (0) | 2015.06.11 |