PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: Timerzähler in fremder Interruptroutine setzen



ICH_
02.11.2013, 13:42
'Pinchangeinterrupt von PINB.5
Isr_1:
If Pinb.5 = 0 Then
Timer0 = 190 '<- Wird nicht übernommen, egal an welcher Stelle
Timsk0.toie0 = 1 'Timerinterrupt an
Byting = 0
Pcmsk1 = &B00000000 'Pinchangeinterrupt aus
Disable Urxc
'Tcnt0 = 100
End If
Return

Wieso setzt der den Timerwert in der Interruptroutine nicht?

Ich stehe da gerade etwas auf dem Schlauch.
In der Timerroutine funktioniert es ganz normal.

Sauerbruch
02.11.2013, 19:12
Wieso setzt der den Timerwert in der Interruptroutine nicht?

Wird der Timer sicher nicht auf 190 gesetzt? Woran macht sich das denn bemerkbar?

Was löst den PC-Interrupt denn aus - ein prellender Taster oder eine saubere Flanke?

ICH_
02.11.2013, 19:34
Nun, für die interessierten: Das Problem war ein anderes.

Der Timerwert wurde zwar gesetzt, der Timer-Interrupt löste unabhängig davon jedoch immer sofort aus, da bereits ein vorheriger Interrupt gespeichert war.
Abhilfe schafft in dem Fall: Tifr0 = 1