Hallo,
wer kann bitte helfen?
Mein Problem: Ich setze im Vorfeld drei Variable mit Wertzuweisung.
In der Setuproutiene werden sie geändert und auch richtig ausgedruckt.
In der Loopanweisung die Überraschung, die Variablen haben nun auf einmal wieder ihren alten Wert.
Wie kommts? Was mach ich falsch?
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int stde = 11;
int minu = 59;
int seku = 0;
//------------------------
void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
// read time
DateTime now = RTC.now();
int stde = now.hour();
int minu = now.minute();
int seku = now.second();
Serial.print(stde);
Serial.print(":");
Serial.print(minu);
Serial.print(":");
Serial.println(seku);
}
//--------------------------
void loop()
{
Serial.print(stde);
Serial.print(":");
Serial.print(minu);
Serial.print(":");
Serial.println(seku);
delay(10000);
}
Wer weis einen Rat?
Tschüß
der Lokgeist
Was soll der Variablen Typ noch mal in setup()? Du legst da lokale Variablen gleichen Namens an die die globalen Variablen überdecken
lass ich die Zuweisung im Anfang weg, kommt die Fehlermeldung:
Arduino: 1.6.4 (Windows 8.1), Platine: "Arduino Nano, ATmega328"
Build-Optionen wurden verändert, alles wird neu gebaut
TestPrint.ino: In function 'void loop()':
TestPrint:30: error: 'stde' was not declared in this scope
TestPrint:32: error: 'minu' was not declared in this scope
TestPrint:34: error: 'seku' was not declared in this scope
'stde' was not declared in this scope
Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen
Was nun?
Die globale Deklaration muss natürlich vorhanden sein. Aber du darfst du Variablen nicht nochmal in setup() deklarieren!
Statt:
void setup()
{
DateTime now = RTC.now();
int stde = now.hour();
int minu = now.minute();
int seku = now.second();
}
So:
void setup()
{
DateTime now = RTC.now();
stde = now.hour();
minu = now.minute();
seku = now.second();
}
Dann wird der Wert den globalen Variablen zugewiesen, statt lokale Variablen gleichen Namens anzulegen die am Ende der Funktion aufhören zu existieren
Vielen, vielen Dank.
So funktioniert es super. 
Und so lern ich immer wieder gut dazu. 
Danke
der Lokgeist