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