- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Zählerfunktion Dezimal auf LCD

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.09.2007
    Beiträge
    5

    Zählerfunktion Dezimal auf LCD

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.09.2007
    Beiträge
    5
    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!

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    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.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    32
    Beiträge
    870
    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 \/


  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    28.09.2007
    Beiträge
    5
    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?

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.12.2004
    Beiträge
    486
    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
    Ungetestet weil kein Bascom da aber so irgendwie.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    28.09.2007
    Beiträge
    5
    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!

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.12.2004
    Beiträge
    486
    dann eben:

    while pinc.0 = 0
    wend

    ...
    Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    32
    Beiträge
    870
    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 \/


Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress