Salut!
Un projet d'horloge...
J'ai tenté d'utiliser une interruption à partir d'une alarme du DS3231. Impossible avec RTClib, j'ai donc utilisé DS3231RTC. Ça fonctionne très bien si je surveille l'alarme dans le loop(), mais si je fais un ISR, il plante. L'idée est de récupérer l'heure chaque minute (chaque seconde dans mon test). Voici l'appel et l'ISR:
attachInterrupt(0, updateTime, FALLING);
(...)
void updateTime() { //in timeArray
digitalWrite(lD,1) ;
Serial.print("TICK") ;
Serial.println() ;
/*DateTime now = rtc.now();
timeArray[h1] = now.hour() / 10 ;
timeArray[h2] = now.hour() % 10 ;
timeArray[m1] = now.minute() / 10 ;
timeArray[m2] = now.minute() % 10 ;
RTC.alarm(ALARM_1) ; //remettre l'alarme à 0*/
}
J'ai bien la led lD qui s'allume, le "TICK" qui s'affiche dans le serial monitor, et les instructions loop() qui parte, mais sitôt que je décommente une des instruction rtc ou RTC, même la remise à 0 de l'alarme, je n'ai plus que le "TI" sur le terminal et tout plante...
Possible que ce soit trop pour un ISR?