
Zitat von
MrMiffy08
Wieso läuft da der TImer immer noch über statt bei 205 zu stoppen? Versteh ich nicht. Was mache ich falsch?
Ich weis nicht genau, was Du mit Timerüberlauf meinst, weil ich vielleicht auch immer noch nicht wirklich die Ansteuerung des Steppers verstehe - was Du eigentlich genau erwartest - wie Du auf einen Timerüberlauf schließt.
Der Timer0 läuft immer bis 255 und macht dann den Overflow Interrupt. In der ISR wird der TCNT0 nun auf 50 + Wert gesetzt. Läuft also von da aus wieder bis 255 usw.
Code:
Isr_timer0:
Timer0_reload = 50 'Vorgabe für 38 / sec
Timer0 = Timer0_reload + Wert
Toggle Led_gelb '= Stepper_takt
Return
Linksroutine:
Decr Wert
If Wert = 10 Then
Wert = 10
End If
Return
Rechtsroutine:
Incr Wert
If Wert = 155 Then
Wert = 155
End If
Return
ist das in meinem Code jetzt so richtig? Oder muss ich an anderer Stelle noch was ändern?
Hatte ich im Prinzip so gemeint.
If wert = 10 then Wert = 10 bringt nichts. Wenn Wert auf 9 ist, bleibt er auf 9.
besser
If Wert <= 10 Then Wert = 10
Natürlich auch in der Rechtsroutine beachten
Aber wie gesagt: Was erwartest Du genau und was tut Dein Programm nicht richtig? Wie stellst Du den Timerüberlauf fest?
Gruß
Searcher
Lesezeichen