Hallo Martin,
hier mal ein Stück Code aus einem meiner Programme. Komplettes Programm hier:
https://www.roboternetz.de/community...s-Linienfolger
Code:
On Pcint0 Set_rc5_flag 'ISR wenn Pin Change Int. Flag von PB3 TSOP kommt
Enable Interrupts 'Interrupts generell erlauben
Do 'Hauptschleife
If Average_speed <> 0 Then Power Adcnoise 'Wenn PWM eingeschaltet dann Sensoren messen
'im noise reduction mode des µC
'hier könnte sich noch ein Bug verstecken, da man nach Datenblatt vorher sicherstellen soll, daß keine Messung läuft
If Rc5_flag = 1 Then 'nach interrupt durch TSOP
Gosub Get_rc5 'lies RC5 CMD
Rc5_flag = 0
Pcmsk = Pcmsk Or &B00001000 'enable interrupts von PB3 (disabled in ISR)
End If
Loop
Set_rc5_flag: 'ISR Pin Change interrupt durch tsop - setzt flag
Pcmsk = Pcmsk And &B11110111 'disable weitere interrupts von PB3
Rc5_flag = 1
Return
In der Hauptschleife, die ja ständig durch do.. loop ausgeführt wird, wird das flag mit zB "if rc5_flag = .." abgefragt und entsprechend reagiert. Nicht vergessen, das flag wieder zurückzusetzen.
Gruß
Searcher
Lesezeichen