-         

Ergebnis 1 bis 7 von 7

Thema: Problem mit Spannungsanzeige

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146

    Problem mit Spannungsanzeige

    Anzeige

    Ich möchte mir über einen Interrupt am Lcd die Spannung des Akkus anzeigen lassen. Ich betätige dazu einen Schalter am Atmega16. Mein Problem ist jetzt, dass wenn ich die Variable Akku als Single definiere, dann zeigt es mir nichts mehr an. Wenn ich sie als Word definiere zeigt es mir die Zahlen hinter dem Komma nicht an. Die Formel für die Berechnung stimmt.
    Hier der Bascom Code:

    Code:
    $regfile = "m16def.dat"
    $crystal = 8000000
    $baud = 19200
    $framesize = 32
    
    Config Adc = Single , Prescaler = 32
    Config Portd.2 = Input
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    Config Lcdbus = 4
    Config Single = Scientific , Digits = 1
    Config Int0 = Falling
    Enable Interrupts
    Enable Int0
    On Int0 Spannungsausgabe_auf_tastendruck
    
    
    Dim Batterypower As Integer
    Dim Akku2 As Word
    Dim Akku As Single
    
    
    Portd.2 = 1
    Cls
    Locate 1 , 1
    Lcd "Bereit"
    
    Do
    Batterypower = Getadc(0)
    Print Batterypower
    Wait 5
    Loop
    
    
    Spannungsausgabe_auf_tastendruck:
         Akku2 = Getadc(0)
         Akku2 = Akku2 * 5.9
         Akku = Akku2 / 368.28
         Locate 2 , 1
         Lcd Akku
         Wait 2
         Cls
    Return
    Vielen Dank im Voraus

    Naxos

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210
    warumm rechnest du aus der Wordvariable nicht einfach die kommastellen raus und zeigst sie dann an

    akku mod 10
    akku /10 zum beispiel
    besser zum verständniss
    7/3 =2 Ganzzahl
    Komma setzen
    rest=7 mod 3 ///ergibt 1 wenn 0 dann gelöst
    rest*10 ergibt neuen teiler
    10/3=3 erste kommastelle
    rest= 10mod3 wieder 1
    usw

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Akku2 = Getadc(0)
    Akku = Akku2
    Akku = Akku * 5.9
    Akku = Akku / 368.28
    Locate 2 , 1
    Lcd Akku
    'Wait 2

    wait in ISR macht man nicht ... ist eher ungünstig
    Cls
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146

    Geht immer noch nicht

    Die Methode von Vitis funktioniert nur mit dem Getadc-wert 0 mit einem anderen wert zeigt es mir auf dem display gar nichts an. Hat sonst noch jemand eine Idee.

    Danke im Voraus

    Naxos

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Naxos,
    ich habe mal dein Programm mit den Modifikationen von Vitis im Simulator laufen lassen. Dabei ist mir dann Bascom beim LCD-Befehl glatt abgeschmiert.
    Daraufhin habe ich LCD Akku durch
    LCD Fusing(Akku, "#.##")
    ersetzt. Dann lief es fehlerfrei.

    Gruß

    Rolf

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146
    Vielen Dank für eure hilfe. Ich habe jetzt die Mehtode von Vitis und die von for_ro genommen jetzt klappt es wunderbar.

    Danke für eure Hilfe

    Naxos

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146
    Ich habe doch noch einmal eine Frage, wie kann ich nun diesen Wait Befehl umgehen, dass es mir aber trotzdem den Lcd löscht.

    Danke im Voraus

    Naxos

Berechtigungen

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