ATMEGA -간단한 실험-
ATMEGA 128A 인터럽트
창창호
2023. 4. 21. 19:42
외부인터럽트
PPT 참고 ( 0일때 X 1일때 O, HIGH LOW 이런거만 보면 됨)
- SREG - 7비트 1로 만들기
- EIMSK - EICRA or EICRAB 중 ON 된 것 중 1이 들어간것만 생각
- EICRA - INT(숫자)만큼 묶어서 적기
- EICRAB - INT(숫자)만큼 묶어서 적기
예시
volatile int state = 0; // 현재 LED의 상태
ISR(INT0_vect) # 인터럽트
{
state = (state + 1)%2; // LED 상태 전환
}
void INIT_PORT(void)
{
DDRC = 0x01;
PORTC = 0x00;
DDRD = 0x00;
}
void INIT_INT0(void)
{
EIMSK |= (1 << INT0);
EICRA |= (1<<ISC01);
sei();
}
int main(void)
{
INIT_PORT();
INIT_INT0();
while(1)
{
if(state == 1)
{
PORTC = 0x01;
}
else
{
PORTC = 0x00;
}
}
return 0;
}