Hallo, folgenden Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Die ISR wird immer in gleichen Abständen aufgerufen. Unabhängig vom Wert im Vergleichsregister. Habe ich noch irgendwas vergessen?
|
Anzeige
|
ATtiny45 Timer 0 Comp. ModusHallo, folgenden Code:
Die ISR wird immer in gleichen Abständen aufgerufen. Unabhängig vom Wert im Vergleichsregister. Habe ich noch irgendwas vergessen?
Gast
#3299756
Schon allein die Struktur ist mittelprächtig. In der Hauptschleife wird ständig der Pin auf low gesetzt und in der Unterbrechung einmalig kurz auf high. Da bekommt man ja selbst mit dem Oszi, Probleme beim Hingucken. Eine Kontrolle eines total zerrissenen Programms auf Richtigkeit ist nicht möglich. So sehe ich z.B. nirgendwo, ob Du die Unterbrechungen überhaupt eingeschaltet hast. Funktioniert "SIG_OUTPUT_COMPARE0A" überhaupt noch - soweit ich weiß heißen die jetzt anders. Danke für die Antwort. Habe meinen Fehler gefunden. Der Zähler des Timers muss in der ISR zurückgesetzt werden. Michael Neumann schrieb: > Der Zähler des Timers muss in der ISR zurückgesetzt werden. Dann solltest du dir mal ansehen, wie man den CTC-Modus einschaltet (clear timer on compare match). Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|