Escolar Documentos
Profissional Documentos
Cultura Documentos
Neste captulo...
Controle de interrues
interrupt noInterrupts
noInterrupts
Desabilita o tratamento de interrupes Interrupes podem alterar a execuo do cdigo, logo em processos especficos pode ser interessante evitar que outras coisas aconteam enquanto parte do seu cdigo executado Algumas funes no funcionam quando o tratamento de interrupes est desabilitado
Comunicao serial, PWM
interrupts
Habilita o tratamento de interrupes caso este tenha sido desabilitado Por default o tratamento de interrupes iniciado como habilitado
O Arduino disponibiliza funes para tratamento de interrupes externas que possibilitam executar funes sem a necessidade de ler constantemente o estado de um pino!
void setup() {} void loop() { noInterrupts(); // critical, time-sensitive code here interrupts(); // other code here }
attachInterrupt
O Arduino disponibiliza funes para tratamento de interrupes externas que possibilitam executar funes sem a necessidade de ler constantemente o estado de um pino!
Muito til quando queremos nos concentrar em uma atividade e ser interrompidos quando uma determinada condio acontecer
attachInterrupt
Especifica uma funo a ser chamada quando uma interrupo externa for identificada Substitui qualquer funo que tenha sido anexada a interrupo anteriormente
attachInterrupt(interrupt, function, mode)
Arduino UNO
Interrupo 0 = pino2 Interrupo 1 = pino3
Arduino MEGA
Interrupo Interrupo Interrupo Interrupo Interrupo Interrupo 0 1 2 3 4 5 = = = = = = pino2 pino3 pino21 pino20 pino19 pino18
int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; }
detachInterrupt
detachInterrupt(interrupt)
Arduino UNO
Interrupo 0 = pino2 Interrupo 1 = pino3
Arduino MEGA
Interrupo Interrupo Interrupo Interrupo Interrupo Interrupo 0 1 2 3 4 5 = = = = = = pino2 pino3 pino21 pino20 pino19 pino18