Gast
#2470435
hallo, ich habe eine Frage zu folgendem Fehler der mir gerade passiert ist: Ich arbeite das avr tutorial durch und habe das Beispielprogramm zum Timer 0 overflow Interrupt ausprobiert. (fast) 1 zu 1 abgeschrieben. Dieses fast was das Problem, denn ich habe 2 mal SPH beschrieben. Ich sehe ein, daß der Stackpointer dadurch so beschrieben ist, daß in SPH folgendes LOW(RAMEND), also vermutlich 0 steht. Beim Simulieren fiel mir aber auf, daß zunächst der Timer ordnungsgemäß zählt und irgendwann der overflow passiert. Dann funktioniert das Programm nicht mehr weil ja kein Stack da ist, aber das TCNT0 zählt auch nicht mehr weiter sondern immer nur bis 8. Also dauerhafter Einsprung in die isr und der Counter bricht bei 8 um. Ich hätte erwartet, daß der counter völlig unabhängig davon, ob das Programm Amok läuft hochzählt, oder ist es so, daß der dauernde Einsprung in den Interrupt auch den counter zurücksetzt? Also sozusagen Ursache und Wirkung vertauscht werden? noch mal das Programm. Hat ja nicht jeder im Kopf ;-)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |