Interrupções do pic
• Uma interrupção é uma maneira de interromper o programa; • Isto é utilizado geralmente quando estamos aguardando que algo aconteça, mas não queremos ficar esperando; • Quando uma interrupção acontece, podemos então paralisar o programa e atender a interrupção através de uma rotina específica; • Um exemplo, é o teclado, o qual não sabemos o instante em que uma tecla será pressionada.
Interrupções existentes no PIC 16F628A:
• Existem 10 tipos de interrupções no PIC 16F628A:
• Interrupção de estouro no Timer 0 (TMR0 – 8 bits); • Interrupção através do pino RB0; • Interrupção externa por mudança de estado nos pinos RB4, RB5, RB6 e RB7;
• Interrupção de estouro do Timer 1 (TMR1 – 16 bits); • Interrupção por estouro do TIMER2 (TMR2 – 8 bits); • Interrupção de final de escrita na EEPROM; • Interrupção de comparador; • Interrupção de fim de recepção de dados na USART; • Interrupção de fim de transmissão de dados pela USART; • Interrupção de CCP (capture, compare, pulse).
Flags (sinalização da interrupção)
• Como qualquer interrupção habilitada provoca o desvio do programa para o endereço 04h da memória de programa, existe um bit que é setado automaticamente para cada interrupção ocorrida. • Este bit deve ser zerado na sub-rotina de interrupção .
INTCON
(end.0B, 8B, 10B e 18Bh)
7 GIE 6 PIEE 5 TOIE 4 INTE 3 RBIE 2 T0IF 1 INTF 0 RBIF
bit 7: GIE: Chave geral das interrupções; bit 6: PIEE: Chave interm. das int. dos periféricos; bit 5: TOIE: Chave individual do TMR0; bit 4: INTE: Chave individual da externa em RB0; bit 3: RBIE: Chave individual por mudança de estado; bit 2: TOIF: Flag da int. por estouro do TMR0; bit 1: INTF: Flag da int. externa em RB0; bit 0: TOIF: Flag da int. por mudança de estado.