Bevor du in die do-loop-schleife gehst stoppst du den timer und setzt sogar auf null, heißt der ist GAR nicht mehr definiert. Du müsstest ihn NOCH einmal definieren......
Hallo,
ich versuche ( als blutiger Anfänger) in folgendem Program den Timer0 in der Simulation auszulesen. Das gelingt mir aber nicht, der Wert bleibt immer 00.
Wo liegt der fehler?
$regfile = "ATtiny13.DAT"
$crystal = 1000000
Config Portb.4 = Output
Config Portb.0 = Input
Config Portb.7 = Output
$hwstack = 22
Config Timer0 = Counter , Prescale = 1
Enable Timer0
Dim Timergestarted As Boolean
Dim Zaehler As Integer
Led Alias Portb.4
Puls Alias Portb.0
Ausgang Alias Portb.7
Timergestarted = 0
Zaehler = 0
Stop Timer0
Timer0 = 0
Do
If Puls = 1 Then
If Timergestarted = 0 Then
Led = 1
Start Timer0
Timergestarted = 1
End If
End If
If Puls = 0 Then
If Timergestarted = 1 Then
Led = 0
Stop Timer0
Zaehler = Timer0
Timergestarted = 0
End If
End If
Bevor du in die do-loop-schleife gehst stoppst du den timer und setzt sogar auf null, heißt der ist GAR nicht mehr definiert. Du müsstest ihn NOCH einmal definieren......
digitalisierte Fahrräder wären praktisch =D> =D>
Hallo,
das mit dem Start und Stop Timer0 ist so schon ok, aber wenn das Ganze von dem Input Pin B.0 abhängen soll, dann musst du den mit
Puls Alias Pinb.0
angeben, sonst fragst du nur den Pullup Widerstand ab.
Eizelne Pins soll man laut Manual immer mit
Config Pinb.4=Output
Config Pinb.0=Input
angeben, funktioniert im Moment aber auch so.
Im Simulator auch daran denken, das Häkchen bei "Sim Timers" zu setzen.
Gruß
Rolf
Vor allem liegt´s aber hier dran:
Damit arbeitet der Timer als Zähler, d.h. er zählt nicht im Systemtakt, sondern wird von einem externen Clock-Signal gesteuert (das beim Tiny13 an PinB.2 angelegt werden müsste).Code:Config Timer0 = Counter
Mit
sollte Timer0 auch ordentlich hochzählen.Code:Config Timer0 = Timer, Prescale=1
Besten Dank,
habe den timer zum laufen bekommen.
Lesezeichen