Hallo, ich arbeite an einem Rundenzähler mit Stoppuhr.
Zur Zeit starte ich alles noch mit zwei Tastern, später werden die dann durch eine Lichtschranken ersetzt.
Mein Ziel ist es, später folgende bereiche zu ermitteln.
-10 Runden runterzuzählen
- die schnellste Rundenzeit anzuzeigen
- top speed
-Ton beim passieren der Lichtschranke
-Akustische Startampel
Momentan bin ich noch lange nicht soweit.
Vielleicht kann mir ja jemand dabei helfen oder mir über die Schulter schaun und mich eventuell auf fehler hinweisen.
hier ist der erste Versuch.
Messstrecke sind 100 cm
Es soll erstmal nur die zeit gemessen werden und dann in km/h angezeigt werden.
Den flag lass ich mir mit absicht anzeigen.
Code:$regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.4 , Db7 = Portb.3 , Db6 = Portb.2 , Db5 = Portb.1 , Db4 = Portb.0 Config Lcdbus = 4 Cursor Off Cls Config Pind.2 = Input Config Pind.3 = Input Portd.2 = 1 Portd.3 = 1 Config Portd.2 = 0 Config Portd.3 = 0 Dim Minuten As Byte Dim Sekunden As Byte Dim Flag As Byte Dim Speed As Integer Dim Strecke As Single Config Timer1 = Timer , Prescale = 256 Const Timervorgabe = 3036 On Timer1 Timer_irq Enable Interrupts Minuten = 0 Sekunden = 00 Flag = 0 Speed = 0 Strecke = 100 Declare Sub Start1 Declare Sub Stop1 Declare Sub Reset1 '--------------------------------------------- Do Debounce Pind.2 , 0 , Start1 , Sub Debounce Pind.3 , 0 , Stop1 , Sub Debounce Pind.2 , 0 , Reset1 , Sub And Debounce Pind.3 , 0 , Reset1 , Sub Locate 2 , 2 Lcd "Zeit: " ; Minuten ; ":" ; Sekunden ; " " Locate 1 , 1 Lcd Flag Locate 1 , 6 Lcd Speed ; "km/h" Loop '--------------------------------------------- Start1: Enable Timer1 Return Stop1: Disable Timer1 Speed = Flag * 0.0036 Speed = Strecke / Flag Flag = 0 Reset Timer1 Sekunden = 0 Return Reset1: Reset Timer1 Locate 1 , 1 Lcd "Reset" Wait 1 Cls Sekunden = 0 Minuten = 0 Flag = 0 Speed = 0 Return '-------------------------------------------- Timer_irq: Timer1 = Timervorgabe Incr Sekunden If Sekunden = 60 Then Incr Minuten Sekunden = 00 End If Incr Flag Return







Zitieren

Lesezeichen