- LiTime Speicher und Akkus         
Ergebnis 1 bis 7 von 7

Thema: GetAdc und Balkendarstellung

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318

    GetAdc und Balkendarstellung

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich lese über "Temperatur = getadc(0)" den Analogeingang 0 meines mega16 ein. Wenn ich mir den Wert per "lcd Temperatur" anzeigen lasse, funktioniert es einwandfrei. Jetzt würde ich gerne in der zweiten Zeile eine Art Balkendarstellung des Wertes anzeigen lassen. z.B. so:

    Wenn Wert zwischen 900 und 1000 dann kein balken
    Wenn Wert zwischen 800 und 900 dann ein Balken ( also # )
    Wenn wert zwischen 700 und 800 dann zwei Balken ( ## )
    usw...

    momentan benutze ich folgenden code:

    Code:
    '--------------------- Chipdefinition ------------------------------
    $regfile = "m16def.dat"
    $crystal = 16000000
    '$hwstack = 32
    '$swstack = 10
    '$framesize = 40
    '--------------------- ADC Config --------------------------------
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    '--------------------- Display Config ---------------------------
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    '------------------------- Port Definition -----------------------
    Config Porta = Input
    '--------------------------------- Dims ---------------------------
    Dim Temperatur As Word
    '--------------------------- Hauptprogramm --------------------
    Cls
    Cursor Off Noblink
    Do
    Temperatur = Getadc(0)
    Locate 1 , 1
    Lcd "Temp. : " ; Temperatur
    If Temperatur > 1000 And Temperatur < 1023 Then Locate 2 , 1 : Lcd ""
    If Temperatur > 900 And Temperatur < 999 Then Locate 2 , 1 : Lcd "#"
    If Temperatur > 800 And Temperatur < 899 Then Locate 2 , 1 : Lcd "##"
    If Temperatur > 700 And Temperatur < 799 Then Locate 2 , 1 : Lcd "###"
    If Temperatur > 600 And Temperatur < 699 Then Locate 2 , 1 : Lcd "####"
    If Temperatur > 500 And Temperatur < 599 Then Locate 2 , 1 : Lcd "#####"
    If Temperatur > 400 And Temperatur < 499 Then Locate 2 , 1 : Lcd "######"
    If Temperatur > 300 And Temperatur < 399 Then Locate 2 , 1 : Lcd "#######"
    If Temperatur > 200 And Temperatur < 299 Then Locate 2 , 1 : Lcd "########"
    Wait 2
    Cls
    Loop
    ich bekomme aber auf dem lcd mit diesem Code auch in der ersten Zeile nen balken. Also stimmt da irgendwas nicht. Kann mir da jemand bitte helfen ?

    mfg Kay

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467

    Re: GetAdc und Balkendarstellung

    Dann probiere es mal so, wobei ich kaum glaube, dass das was hilft^^
    Code:
    '--------------------- Chipdefinition ------------------------------
    $regfile = "m16def.dat"
    $crystal = 16000000
    '$hwstack = 32
    '$swstack = 10
    '$framesize = 40
    '--------------------- ADC Config --------------------------------
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    '--------------------- Display Config ---------------------------
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    '------------------------- Port Definition -----------------------
    Config Porta = Input
    '--------------------------------- Dims ---------------------------
    Dim Temperatur As Word
    '--------------------------- Hauptprogramm --------------------
    Cls
    Cursor Off Noblink
    Do
    Temperatur = Getadc(0)
    Locate 1 , 1
    Lcd "Temp. : " ; Temperatur
    If Temperatur > 1000 And Temperatur < 1023 Then 
      Locate 2 , 1 
      Lcd ""
    end if
    If Temperatur > 900 And Temperatur < 999 Then 
      Locate 2 , 1 
      Lcd "#"
    end if
    If Temperatur > 800 And Temperatur < 899 Then 
      Locate 2 , 1 
      Lcd "##"
    end if
    If Temperatur > 700 And Temperatur < 799 Then 
      Locate 2 , 1 
      Lcd "###"
    end if
    If Temperatur > 600 And Temperatur < 699 Then 
      Locate 2 , 1 
      Lcd "####"
    end if
    If Temperatur > 500 And Temperatur < 599 Then 
      Locate 2 , 1  
      Lcd "#####"
    end if
    If Temperatur > 400 And Temperatur < 499 Then 
      Locate 2 , 1 
      Lcd "######"
    end if
    If Temperatur > 300 And Temperatur < 399 Then 
      Locate 2 , 1  
      Lcd "#######"
    end if
    If Temperatur > 200 And Temperatur < 299 Then 
      Locate 2 , 1 
      Lcd "########"
    end if
    Wait 2
    Cls
    Loop
    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    ahhhhhhhhh vielen dank. hilft

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Das freut mich aber
    Meine Vermutung ist, dass für Bascom zu viele Befehle in einer Zeile standen, was zu Problemen führt.
    Kamen bei deiner ersten Varianten keine Fehlermeldungen?

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    hi,

    es kamen keine Fehlermeldungen

    kay

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Bei mir komm da ne Fehlermeldung. Keine Ahnung, warum bei dir keine kommt

    jon
    Nice to be back after two years
    www.roboterfreak.de

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    26.01.2005
    Ort
    Neuburg / Donau
    Alter
    63
    Beiträge
    80

    Re: GetAdc und Balkendarstellung

    [quote="BlaueLed"]Hallo,

    Jetzt würde ich gerne in der zweiten Zeile eine Art Balkendarstellung des Wertes anzeigen lassen. z.B. so:

    Wenn Wert zwischen 900 und 1000 dann kein balken
    Wenn Wert zwischen 800 und 900 dann ein Balken ( also # )
    Wenn wert zwischen 700 und 800 dann zwei Balken ( ## )
    usw...

    Hallo Kay,
    vieleicht hilft dir ja einer der folgende Grundlagenartikel (Using an LCD)weiter. Mir hat er die LCD Ansteuerung klar gemacht.
    http://www.qsl.net/pa3ckr/
    -------------------------------------------------------------------------
    Ein Versuch ist meist nicht genuch. (Dietrich Drahtlos)
    Gruß Bernd (Gandalf)

    Schrott im Keller macht das Erfinden schneller. ( Dietrich Drahtlos )

Berechtigungen

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

LiTime Speicher und Akkus