Archiv verlassen und diese Seite im Standarddesign anzeigen : Zählerfunktion Dezimal auf LCD
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.
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.
Christopher1
29.09.2007, 16:35
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.
$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
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?
$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
Ungetestet weil kein BASCOM da aber so irgendwie.
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
...
Christopher1
29.09.2007, 18:30
$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
Vielen dank an Rofo88, Christopher1 und ICH_!!!!
es funzt!
nochmal vielen DANK!!!!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.