Nur so zum Denkanstoß. Das Einlesen des Tasters macht man mit Debounce um das Tastenprellen wegzubekommen. Kannst ja mal in der Hilfe danach schaune.
Code:Dim X As Word If Pina.0 = 1 Then Incr X Locate 1 , 1 Lcd X endif
hallöchen erstmal!
ich habe das MyAVR USB Board mit dem LCD AddOn und bin noch nen
frischling in sachen AVR!
habe schon mit diesem teil herumexperimentiert
aber mit variablen komme ich nicht weiter!
statische sachen wie leds blinken oder was aufm LCD anzeigen
lassen ist kein problem
und zwar möchte ich, wenn ich auf einen taster auf dem board drücke,
das er mir in einer zählerfunktion das auf dem LCD Dezimal darstellt!
z.B.: 1mal drücken = Auf LCD 1
nocheimal drücken = Auf LCD 2
nocheimal drücken = Auf LCD 3
nocheimal drücken = Auf LCD 4
nocheimal drücken = Auf LCD 5
u.s.w......
hätte da vieleicht einer nen kleines Prog. für Bascom oder ähnliches???
würde mich sehr über antworten und oder anregungen freuen!
Alles kann, nichts muss!
Nur so zum Denkanstoß. Das Einlesen des Tasters macht man mit Debounce um das Tastenprellen wegzubekommen. Kannst ja mal in der Hilfe danach schaune.
Code:Dim X As Word If Pina.0 = 1 Then Incr X Locate 1 , 1 Lcd X endif
ich glaube das ist ganzschön komplieziert für nen anfänger
nen punktezähler zu programmieren!
$regfile = "m8def.dat"
$crystal = 3686400
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Cursor Off
Cls
Config Lcd = 16 * 2
Config Portd = Output
Waitms 1000
Config Pinc.0 = Input
Dim X As Byte
Do
If Pinc.0 = 1 Then Incr X
Locate 1 , 10
Lcd X
Loop
End
so sieht mein prog. aus,
er zählt schön vor sich her,
ohne auf den taster zu höhren!
ich weiß nichtmehr was ich machen soll!
Da ist jetzt die Frage wie dein Tasteranschluß aussieht. Schaltet der gegen Masse oder gegen VCC? Sind da Pullup/Pulldown-Widerstände drann?
Das nächste Problem was Du bekommen wird ist das er wenn Du den Taster einmal drückst die Schleife mehrfach durchläuft und damit "schneller" zählt als Du willst.
Schreib mal den Code das nächste mal in den Code Tags.
Hast du einen externen Pullup dran ?
Hier mal mein Code, weiß nicht ob der stimmt.
Code:$regfile = "m8def.dat" $crystal = 3686400 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Config Portd = Output Config Pinc.0 = Input Portc.0 = 1 Dim X As Byte Cls Do If Pinc.0 = 0 Then Incr X Locate 1 , 10 Lcd X Loop End
MfG Christopher \/
vielen dank für dein prog. !
jetzt zählt er wenn man auf det taster drückt!
das nächste problem ist nun dass er solange weiterzählt bis man den taster wieder los lässt!
hat einer ne idee?
Ungetestet weil kein Bascom da aber so irgendwie.Code:$regfile = "m8def.dat" $crystal = 3686400 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Config Portd = Output Config Pinc.0 = Input Portc.0 = 1 Dim X As Byte Cls Do If Pinc.0 = 0 Then Incr X Locate 1 , 10 Lcd X do loop while pinc.0 = 0 end if Loop end
danke, aber der meckert an den - loop while pinc.0 = 0 -
mit UNTIL und LOOP EXPECTED herun und das ENDIF will er auch nicht haben!
dann eben:
while pinc.0 = 0
wend
...
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht
Code:$regfile = "m8def.dat" $crystal = 3686400 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Config Portd = Output Config Pinc.0 = Input Portc.0 = 1 Dim X As Byte Cls Do If Pinc.0 = 0 Then Incr X Locate 1 , 10 Lcd X While Pinc.0 = 0 Wend end if loop End
MfG Christopher \/
Lesezeichen