MICROCONTROLADORES PIC – TEORIA - PARTE 3
INTERRUPÇÕES - O QUE É ISSO?



INTERRUPÇÕES

As interrupções são muito utilizadas no mundo dos microcontroladores e dos microprocessadores. Um exemplo típico são nossos microcomputadores PC. Sempre que pressionamos uma tecla, uma interrupção é gerada para o microprocessador, solicitando o tratamento desta. Assim, o PC não é obrigado a varrer constantemente o teclado em busca de uma tecla. Porém é claro que para que isso seja feito, “alguém ou alguma coisa” deve fazer esta varredura por ele. Isso é feito por um microcontrolador dedicado, interno em todos os teclados de PC. Assim temos a geração de uma interrupção no processamento central por parte de um “periférico”.

Nos microcontroladores também é possível usar interrupções. No caso do microcontrolador PIC16F84A, existem algumas possíveis que são:

  • Interrupção externa através do pino RB0/INT

  • Overflow do TIMER (TMR0)

  • Mudança de estado nos pinos PB4 a PB7

  • Escrita completada na EEPROM

Temos então quatro tipos de interrupções possíveis na PIC16F84A. Em outros modelos de microcontroladores Microchip é possível encontrar além das apresentadas acima, mais algumas, como:

  • Recepção de dado pelo canal serial (RS232)

  • Final de envio de dados pelo canal serial (RS232)

  • Final de conversão analógica

  • E muitas outras

Tudo depende do modelo e de seus periféricos. Isso mesmo periféricos. Lembra-se quando falamos do teclado do PC? Ele nada mais é que um periférico do mesmo. Alguns PIC’s possuem canal de comunicação serial RS232, comunicação I2C, um maior número de timer’s, conversores análogo/digital, e outros.

Estes periféricos internos possuem controle muitas vezes feito de forma totalmente independente da CPU. Assim é possível realizar, por exemplo, um determinado calculo e receber ao mesmo tempo um dado através do canal serial. Ao final da recepção o periférico avisa a CPU através de uma interrupção. Esta por sua vez, para o que estava fazendo e atende o periférico. Após o tratamento da interrupção (guardar o byte recebido, por exemplo) ela retorna ao ponto em que parou e continua o que estava fazendo.


VANTAGENS NO USO DE INTERRUPÇÕES

A principal vantagem está na otimização do código (programa). Com o uso correto das interrupções é possível executar “algumas” tarefas quase que ao mesmo tempo. É possível, por exemplo, aguardar uma tecla e um dado do canal de comunicação, sem a necessidade de realizar uma varredura em ambos. Se isso não fosse feito, correríamos o risco de perder uma das “entradas”. Ao estar tratando a tecla, o dado poderia estar disponível no canal de comunicação, mas como nenhuma varredura foi realizada naquele momento, o byte estaria perdido.

Porém em muitos casos, quando não temos o problema de analisar várias entradas ao mesmo tempo, não temos, portanto, a necessidade de usar uma interrupção. Em alguns dos exemplos práticos que passei, os programas basicamente realizavam apenas uma única função por vez, sem a necessidade do uso de interrupções, pois o microcontrolador trabalha dedicado a um único propósito.

Sendo assim, é necessário compreender que o uso das interrupções se faz necessário quando temos de realizar algumas tarefas importantes, quase que ao mesmo tempo, e não temos o controle de quando elas ocorrerão.

Também podemos usar as interrupções para diminuir o consumo do microcontrolador. Se nada esta acontecendo, podemos coloca-lo para “dormir” (modo Sleep). Assim o consumo é reduzido, e somente quando uma interrupção é gerada ele volta ao modo normal, trata a interrupção e volta a “dormir”. Geralmente aparelhos portáteis utilizam este tipo de recurso, pois são alimentados por baterias e o consumo aqui é sempre crítico.

Obs: Algumas interrupções não tiram um microcontrolador do modo sleep. Existe também o tempo ou ciclos de máquina necessários para se “acordar” o microcontrolador. Fique atento quando for utilizar uma interrupção!

Na parte prática que trata de displays de sete segmentos você pode ver como a interrupção externa do PIC16F84A foi utilizada. Eu recomendo o estudo desta parte prática para uma melhor compreensão do uso das interrupções. Um estudo do datasheet do microcontrolador também irá ajudar bastante.




Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.