-
-
Hey,
nach sehr langer Winterpause habe ich mich heute mal wieder mit meiner Stoppuhr beschäftigt. Und sie ist fertig und funktioniert. zwar leider nicht ganz genau, bei 60sek habe ich eine abweichung von 2,8 sekunden oder so. Aber sie misst quasi auf die viertelsekunde genau
weiß jmd auf welchen startwert ich den timer setzen muss damit ich bei einem prescaler von 64 genau 0.25 sekunden bekomme? - 16mhz
und wie kann ich noch einen 3. schalter dazu bekommen, so etwas wie eine reset taste zu sein? so dass ich wieder neu die zeit stoppen kann.
$regfile = "M8def.dat"
$crystal = 16000000
$baud = 9600
Config Portc = Output ' Kompletter C Port Output
Config Pinb.0 = Input ' Eingang 1
Config Pinb.1 = Input ' Eingang 2
Portb.0 = 0
Portb.1 = 1
Do
If Pinb.0 = 1 Then ' Startknopf
Print "Start"
Enable Interrupts
Enable Timer1 ' Timer: GO
Dim W As Word
Dim A As Integer
Dim B As Integer
Dim C As Integer
Config Timer1 = Timer , Prescale = 64
A = 0 ' A = 1/4 Sekunden
B = 0 ' B = ganze Sekunden 1 - 9
C = 0 ' C = 10er Zahlen
W = Timer1
Timer1 = W
Do
On Timer1 Isr_timer1
Loop
Isr_timer1:
Print "interrupt!" ; W
A = A + 1
If A = 4 Then
B = B + 1
A = 0
End If
If B = 10 Then
C = C + 1
B = 0
End If
Print "A=" ; A
Print "B=" ; B
Print "C=" ; C
W = 0
End If
' Stoppknopf
If Pinb.1 = 0 Then ' Timer STOPP
Stop Timer1
If A = 1 Then
Print "Das waren " ; C ; B ; "," ; "25 Sekunden"
End If
If A = 2 Then
Print "Das waren " ; C ; B ; "," ; "5 Sekunden"
End If
If A = 3 Then
Print "Das waren " ; C ; B ; "," ; "75 Sekunden"
End If
If A = 0 Then
Print "Das waren " ; C ; B ; "," ; A ; " Sekunden"
End If
End If
Return
Loop
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen