Gast
#3377300
Hallo miteinander, ich bin kurz vor dem Verzweifeln: Ich möchte in einem Projekt ganz einfach über einen Timer die globalen variablen sec, min, hour hochzählen. Ich habe diese Variablen jeweils als volatile uint8_t deklariert. Das irrwitzige ist, dass mein code, wenn ich in in SiSy compile und brenne, fehlerfrei läuft. Ich möchte aber gern in Zukunft im AtmelStudio6 arbeiten. Und hier läuft der code leider nicht fehlerfrei, da auf die globalen Vriablen nicht zugeriffen bzw. sie nicht hochgezählt werden. Die ISR wird zwar angesprungen und eine LED wird auch im Sekundentakt getoggelt, aber die Bedingung sec > 59 wird nie erreicht. Und beim build läuft alles ohne Warnungen und Fehlermeldung ab. Die Interrupt-Routine ist wie folgt umgesetzt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
Ich habe weitere banale Testprogramme umgesetzt, bei denen ausschließlich in der main-loop irgendetwas passiert, und die funktionieren einwandfrei. Ich meine das Problem tatsächlich auf die Verwendung von globalen Variablen eingrenzen zu können. Ich bin für jeden Tipp dankbar. André Hier noch ein paar Eckdaten: Ich nutze einen ATMEGA8, AtmelStudio6 Version 6.1.2730, gcc 4.7.2