Con questo semplice listato per leggere i secondi dal RTC DS3231:
#include <Wire.h>
byte second
void setup() {
Wire.begin();
}
void DS3231_read(){ // Function to read time & calendar data
Wire.beginTransmission(0x68); // Start I2C protocol with DS3231 address
Wire.write(0); // Send register address
Wire.endTransmission(false); // I2C restart
Wire.requestFrom(0x68, 1); // Request 7 bytes from DS3231 and release I2C bus at end of reading
second = Wire.read();
}
void DS3231_display(){
// Convert BCD to decimal
second = (second >> 4) * 10 + (second & 0x0F);
}
void loop() {
DS3231_read();
DS3231_display();
delay(50);
}
Mi da quesa serie di errori che non ho ancora imparato a riconoscere:
Arduino:1.8.5 (Mac OS X), Scheda:"Arduino/Genuino Uno"
DS3231_v1:10: error: expected initializer before 'void'
void DS3231_read(){
^
/Users/ezio/Documents/Arduino/Nano/DS3231_v1/DS3231_v1.ino: In function 'void DS3231_read()':
DS3231_v1:15: error: 'second' was not declared in this scope
second = Wire.read();
^
/Users/ezio/Documents/Arduino/Nano/DS3231_v1/DS3231_v1.ino: In function 'void DS3231_display()':
DS3231_v1:20: error: 'second' was not declared in this scope
second = (second >> 4) * 10 + (second & 0x0F);
^
exit status 1
expected initializer before 'void'
Ho cercato nel forum ma nei topi che ho visto non ho trovato spiegazioni esaurienti per correggere il listato.
Grazie per un consiglio