Hi,
ich hatte vor einiger Zeit schonmal wegen einem Timer Problem gepostet. Nun konnte der Fehler schonmal weiter eingegrenzt werden.
Dieser Code geht. AVR auf dem display erscheint eine 0 die sich dann halt im sekundentakt erhöht.
Sobald ich nun aber einen Taster mit einbaue, der den zählvorgang startet fängt er bei 1 an zu zählen anstelle von 0.Code:$regfile = "m16def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 20 $framesize = 40 $baud = 9600 Config Portb.3 = Input Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5 Config Lcd = 24 * 2 Initlcd Cursor Off Dim Minuten As Byte Dim Sekunden As Byte Sekunden = 0 Config Timer1 = Timer , Prescale = 256 Const Timervorgabe = 3036 On Timer1 Timer_irq Timer1 = Timervorgabe Enable Interrupts Do Gosub Automodus Loop Automodus: Enable Timer1 Do Locate 2 , 1 Lcd Sekunden If Sekunden = 5 Then Locate 1 , 1 Lcd "5 sek" End If Loop End Timer_irq: Timer1 = Timervorgabe Incr Sekunden If Sekunden = 60 Then Incr Minuten Sekunden = 0 End If Return
Jemand eine Idee wodran das liegen kann ?Code:$regfile = "m16def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 20 $framesize = 40 $baud = 9600 Config Portb.3 = Input Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5 Config Lcd = 24 * 2 Initlcd Cursor Off Dim Minuten As Byte Dim Sekunden As Byte Sekunden = 0 Config Timer1 = Timer , Prescale = 256 Const Timervorgabe = 3036 On Timer1 Timer_irq Timer1 = Timervorgabe Enable Interrupts Do If Pinb.3 = 1 Then Gosub Automodus End if Loop Automodus: Enable Timer1 Do Locate 2 , 1 Lcd Sekunden If Sekunden = 5 Then Locate 1 , 1 Lcd "5 sek" End If Loop End Timer_irq: Timer1 = Timervorgabe Incr Sekunden If Sekunden = 60 Then Incr Minuten Sekunden = 0 End If Return
mfg Blamaster







Zitieren

Lesezeichen