Um 100% ausschließen zu können das der Rest von meinem code bzw. Programm damit etwas zu tun hat, habe ich nun nochmal ein ganz neues erstellt, nur mit nem Taster, nem Timer und einem Display.
Es passiert wieder das gleiche wie vorher. Aber so kann ich jetzt den ganzen code posten, das ist dann vielleicht etwas leichter.
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
Dim Zeit1 As Byte
Dim Zeit2 As Byte
Config Timer1 = Timer , Prescale = 256
Const Timervorgabe = 3036
On Timer1 Timer_irq
Enable Interrupts
Minuten = 0
Sekunden = 0
Zeit1 = 0
Zeit2 = 0
Do
Locate 1 , 1
Lcd Sekunden
If Pinb.3 = 1 Then
Enable Timer1
End If
Loop
Timer_irq:
Timer1 = Timervorgabe
Incr Sekunden
If Sekunden = 60 Then
Incr Minuten
Sekunden = 0
End If
Return
So kann jetzt auch nochmal beschreiben was passiert. AVR wird angeschlossen, auf dem Display wird die 0 gezeigt. Ich drücke den Taster die 0 springt sofort zu einer 1 um, danach erhöht sich die Zahl im Sekundentakt.
mfg Blamaster
Lesezeichen