- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Analogeingang am ATmega32 programmieren

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo! Nun habe ich das programm etwas verändert und es geht immer noch nicht.

    Code:
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Config Portc.0 = Output
    Dim Analogwert_0 As Byte
    Analogwert_0 = Getadc(0)
    
    Start Adc
    
    Do
    If Analogwert_0 > 125 Then
    Portc.0 = 1
    Else
    Portc.0 = 0
    End If
    Loop
    
    Stop Adc
    
    End
    ich kann das poti drehen wie ich will aber die led zeigt nichts an, bei compilieren ist auch kein erreo aufgetreten, es müsste doch eigentlich gehen

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    43
    Beiträge
    318
    Hi,

    pack das "Analogwert_0 = Getadc(0)" in die Do ... Loop schleife und lösch das "Stop ADC" aus der Schleife. Dann funktioniert es. Aber jetzt mal ganz ehrlich. In der Hilfe von Bascom steht das alles so schon drin.

    Gruß Blaue Led

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Nur so zum Verständnis:

    Der Befehl "Analogwert_0=Getadc(0)" führt zu einer einzigen AD-Wandlung! Wenn sich danach die Spannung am Eingang ändert, bleibt die Variable Analogwert_0 so lange unverändert, bis der Controller das nächste mal den Getadc-Befehl ausführt.
    Und genau deshalb muss dieser Befehl in die Do-Loop-Schleife, wie Blaue LED ja schon geschrieben hat.

    Jetzt klarer?

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    OK. So weit habe ich nicht gedacht, ist im nachhinein ganz logisch, das der
    Befehl in die Schleife muss. Jetzt gehts. DANKE

    Wenn ich die Variable Analogwert_0 nicht als "Word" sondern als "Byte" deklariere passiert etwas komisches: wenn ich das poti drehe egal in welche richtung geht die LED mal AN mal AUS wieder AN und wieder AUS (beim drehen)


    Vielen Dank!

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    43
    Beiträge
    318
    Du liest einen Wert ein, der von 0 - 1023 geht. Das passt halt nicht mehr in ein Byte ( 0 - 255 ). Wenn Du nur 255 Werte haben willst, dann musst Du den Analog Wert explizit mit nur 8 Bit einlesen. Standardmäßig ist der 10 Bit.

    Gruß Blaue Led

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test