| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| pt:avr:external_interrupts [2015/11/30 18:09] – artica | pt:avr:external_interrupts [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
|---|
| Para utilizar uma interrupção externa, o pino tem de ser configurado como uma entrada standard de IO (que também pode ser utilizada como uma saída, mas, neste caso, a interrupção só pode ser criada pelo próprio controlador). É necessário permitir a recepção de interrupções e especificar a condição que causa a interrupção para disparar o registo de configuração de interrupção externa. Há quatro condições possíveis: | Para utilizar uma interrupção externa, o pino tem de ser configurado como uma entrada standard de IO (que também pode ser utilizada como uma saída, mas, neste caso, a interrupção só pode ser criada pelo próprio controlador). É necessário permitir a recepção de interrupções e especificar a condição que causa a interrupção para disparar o registo de configuração de interrupção externa. Há quatro condições possíveis: |
| |
| * De zero lógico (tensão de 0V) | * De zero lógico (tensão de 0V). |
| * Alteração do valor lógico. | * Alteração do valor lógico. |
| * Frente Decrescente - mudança lógica de um para zero. | * Frente Decrescente - mudança lógica de um para zero. |
| Agrupados por princípio, existem dois tipos de interrupção: as sincronizadas com o relógio do controlador e as assíncronas. As interrupções sincronizadas funcionam gravando os valores das entradas, o que significa que as mudanças nos valores lógicos são encontradas ao comparar os valores lidos durante dois ciclos de relógio diferentes. Se as mudanças lógicas no sinal acontecerem mais rapidamente do que ciclo de trabalho do controlador, as interrupções ou disparam incorretamente ou são ignoradas por completo. As interrupções assíncronas não dependem do relógio do controlador e permitem também a detecção de mudanças mais rápidas no sinal externo - o nível lógico deve ser constante durante pelo menos 50 ns. O ATmega128 tem 4 interrupções externas assíncronas e 4 síncronas. | Agrupados por princípio, existem dois tipos de interrupção: as sincronizadas com o relógio do controlador e as assíncronas. As interrupções sincronizadas funcionam gravando os valores das entradas, o que significa que as mudanças nos valores lógicos são encontradas ao comparar os valores lidos durante dois ciclos de relógio diferentes. Se as mudanças lógicas no sinal acontecerem mais rapidamente do que ciclo de trabalho do controlador, as interrupções ou disparam incorretamente ou são ignoradas por completo. As interrupções assíncronas não dependem do relógio do controlador e permitem também a detecção de mudanças mais rápidas no sinal externo - o nível lógico deve ser constante durante pelo menos 50 ns. O ATmega128 tem 4 interrupções externas assíncronas e 4 síncronas. |
| |
| ~~PB~~ | <pagebreak> |
| |
| <box 100% round #EEEEEE|Exemplo> | <box 100% round #EEEEEE|Exemplo> |
| </box> | </box> |
| |
| Além de interrupções disparadas por pinos individuais, se o AVR tem pinos suficientes, é possível usar grupos inteiros de pinos para disparar interrupções de mudança de valor lógico. Estas interrupções são simplesmente chamadas de interrupções de mudança de pinos. Estes disparam quando o valor de pelo menos um pino no grupo é alterado. | Além de interrupções disparadas por pinos individuais, se o AVR tem pinos suficientes, é possível usar grupos inteiros de pinos para disparar interrupções de mudança de valor lógico. Estas interrupções são simplesmente as chamadas interrupções de mudança de pinos. Estas disparam quando o valor de pelo menos um pino no grupo é alterado. |