- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Analogeingang am ATmega32 programmieren

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

    Analogeingang am ATmega32 programmieren

    Anzeige

    Praxistest und DIY Projekte
    Hallo! Probiere und Suche schon den ganzen Abend.
    Wie muss ein Programm für Bascom aus sehen um an einem Analogeingang (PA0 bis PA7) einen Wert ein zu lesen und zu verarbeiten.

    Ich habe auch schon nach Beispielprogrammen gesucht aber nichts nichtiges gefunden.

    Danke für jede Hilfe

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Suche mal nach Getadc. Das ist die Funktion zum Einlesen des analogen Wertes.

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Config Adc = Single , Prescaler = Auto
    Config Porta = Output

    Start Adc

    Das verstehe ich nicht ganz, ist der ganze Port die PINs auf AD gestellt?
    Und warum wirde der Port dann als output configuriert?

    Danke für die schnelle Antwort
    --------------

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Den ganzen Port als Output zu definieren ist fast immer falsch. Die Pins die man als analogen Eingang nutzen will sollte man schon als Eingang definieren. Mit der Configuration wird nur der takt und die Referenzspannung festgelegt. Den Eingang legt man beim Aufruf von GetADC(KanalNr) fest.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Hallo! Bin immer noch am probieren auf mein Steckbrett und dem BASCOM.
    Hab am mega32 ein Poti an Pin PA0 angesteckt und eine LED an PIN PC0.
    Die LED soll leuchten wenn das Poti über die hälfte gedreht wurde, aber es passiert nichts!!!

    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000

    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Config Portc.0 = Output

    Dim Analogwert_0 As Word

    Start Adc

    Do
    If Analogwert_0 > 125 Then
    Portc.0 = 1
    Else
    Portc.0 = 0
    End If
    Loop

    Stop Adc

    End

    Könnte mir jemand erklären wo der fehler liegt.
    Währe sehr dankbar.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Könnte mir jemand erklären wo der fehler liegt.
    Na klar!


    Exakt zwischen "Do"
    und "If Analogwert_0 > 125 Then"


    Woher soll der µC den wissen, welchen Wert die Variable Analogwert hat?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Ich dacht mit Analogwert_0 fragt der chip den Port PA0 ab.

    Wie müsste das Programm denn aus sehen damit es so funktioniert wie ich es gerne hätte?
    --------------

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    seit wann kann Bascom deutsch?¿

    Analogwert_0 = getadc(0)
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Das kam mir auch komisch vor, aber ich fange auch gerade erst mit
    Bascom an hab zuvor C-Control gehabt da war das etwas einfacher

    Nur wie wende ich "getadc(0)" an habe schon viele varianten gefunden nur alle in verbindung mit ein LCD.

    Wie bringe ich eine LED dazu darauf anzusprechen?

    Danke!
    geh jetzt aber penn, gute nacht
    --------------

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Nur wie wende ich "getadc(0)" an
    Genau so, wie Vitis es geschrieben hat:

    Analogwert_0 = getadc(0)

    Mit dieser Syntax wird einer X-beliebigen Variablen der Analogwert am Eingang ADC0 zugewiesen. Wie du diese Variable nennst und was du dann mit dieser Variablen machst, bleibt dir überlassen: Sie auf einem LCD ausgeben, mit einem Vergleichswert vergleichen und dementsprechend eine LED schalten, oder, oder, oder.

    In Bascom gibt´s eine sehr gute Hilfe-Funktion (bin bei vielen anderen Programmen nicht sooo der Fan von so etwas, bei Bascom ist sie aber wirklich genial). Dort findest du zu jedem Befehl nicht nur die korrekte Syntax, sondern auch noch echte Code-Beispiele. Kann ich nur empfehlen!!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen