Go Down

Topic: External Interrupts, Interrupts (Read 4866 times) previous topic - next topic

Leonardo Perez

Eu denovo aqui.. hehhe
Galera, não intendi o que são e para que servem External Interrupts e Interrupts, se alguem puder explicar melhor ficarei muito grato!

J4R6im

Leonardo,

  Interrupções servem para fazer com que o microcontrolador desvie temporariamente da sua rotina principal, execute a subrotina de interrupção e depois retorne ao codigo principal do exato ponto de onde foi interrompido.
  Por exemplo, se vc for medir velocidade ou RPM, ao invez de gastar praticamente um arduino para ficar verificando o estado da entrada do sensor, voce pode usar a interrupção externa para verificar essa entrada apenas no momento em que o sensor produzir nivel de tensao no pino correspondente.
  Outros tipos de interrupção sao os relacionados ao perifericos do Microcontrolador. Por exemplo as interrupções dos perifericos de comunicação SPI e I2C. No caso do SPI, voce pode anexar uma interrupção para que o microcontrolador execute uma tarefa toda vez que um byte de dados for transmitido. Assim voce nao precisaria ficar toda hora verificando.

Att,

Lucas Jardim

Só complementando no Arduino existem 2 tipos de interrupções:

INTERNA: Internas do Atmega - registradores e contadores.

EXTERNA: Acionadas por mudança de estado das portas digitais.

Recomendo a leitura do seguinte link para ficar mais clara a idéia de como utilizar em seus projetos:

http://arduino.cc/en/Reference/AttachInterrupt
http://arduino.cc/en/Reference/DetachInterrupt
http://arduino.cc/en/Reference/Interrupts
http://arduino.cc/en/Reference/NoInterrupts

Espero ter ajudado.

Danilo Santos

Leonardo Perez

Ajudaram muito sim! Vou dar uma lida na referencia melhor agora!
Abç

Boas!

embora no arduino ja esta publicado como fazer a contagem de rpm de uma ventoinha eu estava aqui a treinar.
eu estou a precisar de um comando que me leia a quantidade de impulsos dados por segundo (por cada rotaçao da ventoinha dá 1 impulso)
que depois Yrotaçoes por segundo X60 segundos dá rotaçoes por minuto.

acho que estou a dizer bem, mas se estiver alguma coisa mal podem corrigir.

agora eu estive a tentar perceber o comando  "attachInterrupt",( o meu ingles nao e dos melhores)

attachInterrupt(0, blink, CHANGE);

algumas dicas?
obrigada




Go Up