140 likes | 327 Views
Seminar #7 Interrupt & External - Interrupt. 15 th , J.H Won. Preview – H ow this work?. Contents. W hat is Interrupt? E x ternal Interrupt? - R esister Setting How t o Code?. What is Interrupt?. What is Interrupt?. Execute Main Function. Interrupt Request.
E N D
Seminar #7 Interrupt & External - Interrupt 15th, J.H Won
Contents • What is Interrupt? • External Interrupt? • - Resister Setting • How to Code?
What is Interrupt? Execute Main Function Interrupt Request Save Return Adress Return Main Func Load Return Adress Execute Interrupt Function
External Interrupt? • External : 외부의 • INTn Pin에 대한 입력으로인한 이벤트 발생 • Rising Edge, Falling Edge, Low Level • 논리값에 의한 변환
Resister Setting MCUCR – MCU Control Resister Bit 3 ~ 0 : Interrupt Sense Control Resister
External Interrupt? MCUCSR – MCU Control and Status Resister Bit 6 : Interrupt Sense Control Resister 2
External Interrupt? GICR – General Interrupt Control Resister Bit 7 ~ 5 : External Interrupt Enable 0 ~ 2
External Interrupt? GIFR – General Interrupt Flag Resister Bit 7 ~ 5 : External Interrupt Flag 0 ~ 2
How To Code ? #include<iom8535.h> Int main(void) { DDRD = 0x00; // Data direction : Input DDRA = 0xff; // Data direction : output : LED MCUCR = 0x03; // Sense Control Resister 0, 1 : INT0 Falling Edge MCUCSR = 0x00; // Sense Control Resister 2 : None GICR = 0x40; // Interrupt Control : INT0 Enable GIFR = 0x00; // Flag Resister : None __SEI(); // = Enable_Interrupt();; for(;;) { } } #pragma vector=INT0_vect // Interrupt Function __interrupt void INT0_interrupt(void) { PORTA = 0xff; // QnA }