Hallo ich habe kleines Bascom Progamm geschrieben und finde den Fehler nicht. Ich habe an ein Baby Orangutanboard einen Hallsensot an Int0 angeschlossen. Nach Minute 1 fängt LED zu leuchten an und schaltet wie gewünscht nach 10 Sensorimpulsen ab. Das LED sollte aber nach Minute 2 wieder anfangen zu leuchten, aber hier liegt das Problem. Bin Anfänger und befürchte ich habe eien Denkfehler. Ausserden ist die Timereistellung auch noch nicht richt , eine Minute dauert mit dieser Einstellung nur ca 30 sec. Aber das ist nicht so wild
Code:
'Bascom Hallsensor test
$regfile = "m328pdef.dat"
$crystal = 20000000 'Quarzfrequenz
$hwstack = 32
$framesize = 64
$swstack = 32
Config Pind.1 = Output
'Timer und der Teiler festlegen 10ms
Config Timer0 = Timer , Prescale = 1024
On Timer0 Timer_irq
Const Timervorgabe = 175
Config Int0 = Rising
Enable Int0
Enable Interrupts
Dim Hallimpuls As Integer
Dim Cnt As Byte
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Dim Sekunde_last As Byte
Hallimpuls = 0
Stunde = 0
Minute = 0
Sekunde = 0
Enable Timer0
Do
' 1. Minute
If Stunde = 0 And Minute = 1 Then Gosub Led
' 2. Minute
If Stunde = 0 And Minute = 3 Then Gosub Led
Loop
Led:
Hallimpuls = 0
On Int0 Zaehlen
If Hallimpuls = 0 Then
Toggle Portd.1
Do
Idle
Loop Until Hallimpuls = 10
Else
Reset Portd.1
End If
Return
Zaehlen:
Incr Hallimpuls
Return
Timer_irq:
Timer0 = Timervorgabe
Incr Cnt
If Cnt = 50 Then
Portb.6 = 0
End If
If Cnt = 100 Then
Portb.6 = 1
Sekunde = Sekunde + 1
If Sekunde = 60 Then
Sekunde = 0
Minute = Minute + 1
If Minute = 60 Then
Minute = 0
Stunde = Stunde + 1
If Stunde = 24 Then
Stunde = 0
End If
End If
End If
Cnt = 0
End If
Return
Ich hoffe jemand kann mir helfen !!!
Lesezeichen