Guten Abend,
ich habe ein Problem mit einer Zählvariablen, die sich immer wieder auf
den Anfangswert setzt.
Timer-Interrupt:
1 | onTC0:
|
2 | cli
|
3 | dec r20
|
4 | cpse r20,r21
|
5 | rjmp fiep
|
6 |
|
7 | tint_ende:
|
8 | ldi r16,196
|
9 | out ioTCNT0,r16
|
10 | sei
|
11 | reti
|
Initialisierung:
1 | ldi r20,0xFF
|
2 | ldi r21,0x00
|
Unterroutine "fiep"
1 | fiep: ;---Ton 1kHz--------
|
2 | sbic pinb, 3
|
3 | cbi portb, 3
|
4 | sbis pinb, 3
|
5 | sbi portb, 3
|
6 | ;------------------
|
7 | rjmp tint_ende
|
Ich möchte erreichen, dass das Unterprogramm "fiep" nur bei den ersten
255 Durchläufen des Timers ausgeführt wird. Doch leider fiept es immer.
Ich sitze seit Stunden an diesem Problem und scheinbar helfen mir meine
Google-Fähigkeiten nicht mehr weiter. Ein Tipp oder eine Lösung wäre
sehr willkommen.
mit freundlichen Grüßen,
Torben