BASIC4MCU | AVR | 외부인터럽트 | 외부 인터럽트 8개(INT0~INT7) 사용
페이지 정보
작성자 키트 작성일2017-08-29 09:17 조회4,061회 댓글0건본문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 외부 인터럽트 8개(INT0~INT7) 사용 할 때의 샘플코드입니다. // AVRStuduio용 #include <avr/io.h> #include <avr/interrupt.h> // volatile unsigned char a=0; // ISR(INT0_vect){ a^=0x01; } ISR(INT1_vect){ a^=0x02; } ISR(INT2_vect){ a^=0x04; } ISR(INT3_vect){ a^=0x08; } ISR(INT4_vect){ a^=0x10; } ISR(INT5_vect){ a^=0x20; } ISR(INT6_vect){ a^=0x40; } ISR(INT7_vect){ a^=0x80; } // int main(){ DDRA=0xFF; PORTD=0x0F; PORTE=0xF0; EICRA=0xAA; EICRB=0xAA; EIFR=0xFF; EIMSK=0xFF; SREG=0x80; while(1){ PORTA=a; } } //------------------- //코드비젼용 #include <mega128.h> // unsigned char a=0; // interrupt [EXT_INT0] void ext_int0_isr(void){ a^=0x01; } interrupt [EXT_INT1] void ext_int1_isr(void){ a^=0x02; } interrupt [EXT_INT2] void ext_int2_isr(void){ a^=0x04; } interrupt [EXT_INT3] void ext_int3_isr(void){ a^=0x08; } interrupt [EXT_INT4] void ext_int4_isr(void){ a^=0x10; } interrupt [EXT_INT5] void ext_int5_isr(void){ a^=0x20; } interrupt [EXT_INT6] void ext_int6_isr(void){ a^=0x40; } interrupt [EXT_INT7] void ext_int7_isr(void){ a^=0x80; } // void main(){ DDRA=0xFF; PORTD=0x0F; PORTE=0xF0; EICRA=0xAA; EICRB=0xAA; EIFR=0xFF; EIMSK=0xFF; SREG=0x80; while(1){ PORTA=a; } } | cs |
댓글 0
조회수 4,061등록된 댓글이 없습니다.