Preguntas etiquetadas con isr


2
¿Son atómicas las asignaciones de puntero de función en Arduino?
Los siguientes fragmentos son del código fuente de la biblioteca TimerOne : // TimerOne.h: void (*isrCallback)(); // TimerOne.cpp: ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { Timer1.isrCallback(); } // TimerOne.cpp: void TimerOne::attachInterrupt(void (*isr)(), long microseconds) { if(microseconds > 0) setPeriod(microseconds); isrCallback = isr; …



2
Interrupción de Arduino (en cambio de pin)
Utilizo la función de interrupción para llenar una matriz con los valores recibidos de digitalRead(). void setup() { Serial.begin(115200); attachInterrupt(0, test_func, CHANGE); } void test_func(){ if(digitalRead(pin)==HIGH){ test_array[x]=1; } else if(digitalRead(pin)==LOW){ test_array[x]=0; } x=x+1; } Ese problema es que cuando imprimo test_arrayhay valores como: 111o 000. Según tengo entendido, si uso …
8 arduino-uno  c  isr 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.