- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 173

Thema: Portbelegung auf ATMega für LCD1602

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    175
    Auslesen wenn ADLAR = 0 = 10bit
    erst ADCL dann ADCH

    Auslesen wenn ADLAR = 1 = 8bit
    reicht ADCH auszulesen

    BITTE das DB des ATMEGA 16 durcharbeiten ab Seite 204 http://ww1.microchip.com/downloads/e...oc/doc2466.pdf

    Zitat Zitat von HeSt Beitrag anzeigen
    Woran es letztendlich liegt, dass eine 10-Bit Abfrage des ADCs in einer Schleife nicht normal abläuft kann ich aber auch nicht beantworten.
    Bitte Seite 15 nochmal in Ruhe nachvollziehen. Dein Problem ist das du zuviel in deiner Routine umherspielst anstatt den ADC nur zu
    1. Initalisieren + Testkanal** + Ergebnis verwerfen
    2. Wandlungskanal auswählen
    3. Ergebnis des eingestellten Kanals auslesen

    ** Testkanal kann auch den Eingang des Wandlers gegen 0V schalten Siehe Seite 218/219 beachten!!!!!

    Hier mal ganz grob
    Code:
    ;Einsetzen wo alle anderen Inits auch ablaufen
    Init:
        rcall      ADC_Init
    
    ; das hier kann einzelnd im Hauptprgramm aufgerufen werden oder zusätzlich in deine Unterroutinen eingestezt werden
    TEST_ADC_LESEN:
        rcall    ADC_channel_0    ;Kanal 0 einstellen
        rcall    RD_ADC            ;ADC-Wandlung starten + auslesen in wrk2
        ret
    
    ADC_Init:
    ;hier wird AD-Wandler aktiviert und die Samplefreqnz eingestellt zwischen 50 bis 250kHz
    ;Teiler verfügbar von 2hochX, also bei 1Mhz nur Teiler 4/8/16 möglich 
    ;Siehe Datenblatt Seite 220 Table 85.  ADC Prescaler Selections
        ldi        muxr,(1<<ADEN | 0<<ADPS2 | 1<<ADPS1 | 0<<ADPS0)
        out        ADCSRA,muxr
    
        rcall    ADC_channel_GND
        rcall    RD_ADC            ;ADC Testweise auslesen und Ergebnis verwerfen
        ret
    
    ADC_channel_0:
    ;Kanal ADC0 auf PA0 setzen mit 5V als UREF
        ldi        muxr,(0<<REFS1 | 1<<REFS0 | 1<<ADLAR | 0<<MUX4 | 0<<MUX3 | 0<<MUX2 | 0<<MUX1 | 0<<MUX0)
        out        ADMUX,muxr        ;ADMUX setzen
        ret
    
    ADC_channel_GND:
    ;Hier wird Wandlungsreferenzspannung und der Kanal gleichzeitig gesetzt    
    ;MUXR=128 bedeutet  REFS1 = 1 und REFS0 =0 ist RESERVIERT siehe SEITE 217
        ldi        muxr,(0<<REFS1 | 1<<REFS0 | 1<<ADLAR | 1<<MUX4 | 1<<MUX3 | 1<<MUX2 | 1<<MUX1 | 1<<MUX0)
        out        ADMUX,muxr        ;ADMUX setzen
        ret
    
    RD_ADC:    ;Liest den selektierten ADC aus, AVCC        OK
        sbi        ADCSRA,ADSC        ;ADC Start Conversion
    WADC:                        ;Schleife bis Messung
        sbic    ADCSRA,ADSC        ;abgeschlossen = ADSC=0
        rjmp    wadc
    ;    in        wrk1,ADCL        ;mit auslesen wenn ADLAR = 0
        in        wrk2,ADCH        ;ADCH auslesen reicht bei ADLAR = 1
        ret
    Im Anhang deine alte Datei die ich angepasst habe
    test.txt

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Hi allerseits!

    DANKE für die Aufklärung! Tatsächlichen Fehler beseitigt!
    Dank eures Hinweises!

    Bei meinen bisherigen Projekten hab ich immer nur mit 8Bit ADC gearbeitet.
    Dadurch ist mir der Fehler mit der Reihenfolge des Auslesens passiert.
    Obwohl ich das Datenblatt genau (dachte ich jedenfalls) gelesen hab.

    ADCL und dann ADCH auslesen und alles ist ok!!

    @avr_racer
    Wir dürften offenbar verschiedene Datenblätter besitzen.
    Bei meinem beschäftigen sich die Seiten 218/219 mit TAP Controller, Using the Boundary-scan Chain und Using the On-chip Debug System.
    Die Prescaler-Tabelle (84) ist bei mir auf Seite 214.
    Aber du hast recht. Noch ein Fehler aus der Vergangenheit.
    Hab dort, wo ich mit ADC arbeite, eine Taktfrequenz von 9,6MHz.
    Dem hatte ich bei meinen Änderungen im Testprogramm noch nicht Rechnung getragen.
    Hat jedoch keine Auswirkung auf den tatsächlichen Fehler und funktioniert auch mit /128.
    Ist jetzt aber berichtigt!

    Danke nochmals an alle, die sich die Mühe gemacht und mein Progrämmchen nach meinem Fehler durchsucht haben!! Besonders an avr_racer.
    Geändert von HeSt (09.02.2019 um 10:17 Uhr)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    175
    Zitat Zitat von HeSt Beitrag anzeigen
    @avr_racer
    Wir dürften offenbar verschiedene Datenblätter besitzen.
    Bei meinem beschäftigen sich die Seiten 218/219 mit TAP Controller, Using the Boundary-scan Chain und Using the On-chip Debug System.
    Die Prescaler-Tabelle (84) ist bei mir auf Seite 214.
    Aber du hast recht. Noch ein Fehler aus der Vergangenheit.
    Hab dort, wo ich mit ADC arbeite, eine Taktfrequenz von 9,6MHz.
    Dem hatte ich bei meinen Änderungen im Testprogramm noch nicht Rechnung getragen.
    Hat jedoch keine Auswirkung auf den tatsächlichen Fehler und funktioniert auch mit /128.
    Ist jetzt aber berichtigt!

    Danke nochmals an alle, die sich die Mühe gemacht und mein Progrämmchen nach meinem Fehler durchsucht haben!! Besonders an avr_racer.
    Deshalb der Link worauf ich mich beziehe . Von Zeit zu Zeit sollte man die DB aktualisieren

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695
    Zitat Zitat von HeSt Beitrag anzeigen
    .. Wir dürften offenbar verschiedene Datenblätter besitzen ..
    Nur mal so, aus Neugier, würdest Du mal bitte die Version Deines Datenblattes nennen? Steht meist am Deckblatt rechts unten, auf den sonstigen Seiten üblicherweise links unten in der Form "Rev. 2466T–AVR–07/10". Ich hatte meine (wenigen) Datenblätter für mega16 durchgeforstet gehabt und Deine Angaben nicht nachvollziehen können - was die Seitenangaben betrifft.

    Wie geschrieben - es ist pure Neugier (und - ich bin ein alter Datenblatt-Sammler *gg*).
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Deine "Neugierde" kann ich gern befriedigen

    Mein Datenblatt zeigt folgende Bezeichnung: 2466E–AVR–10/02.

    Hab es vor ein paar Jahren von "http://www.datasheetcatalog.com/" geholt.

    Jetzt ganz neu von
    "http://ww1.microchip.com/downloads/e..._Datasheet.pdf"
    geholt.
    Das aktuelle hat die Bezeichnung Atmel-8154C-8-bit-AVR-ATmega16A_Datasheet-07/2014 und sieht gewaltig anders aus!

    Werd nun alle meine Datenblätter durchforsten und ggf. von den Herstellerseiten aktualisieren!
    Danke an oberallgeier + avr_racer für's "mit der Nase drauf zeigen"!!

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695
    .. Werd nun alle meine Datenblätter durchforsten und ggf. von den Herstellerseiten aktualisieren! ..
    Na hoffentlich hilft das. Ich hatte nämlich ziemlich schlechte Details an den "neuesten" Datenblättern zu Atmelcontrollern gefunden -siehe hier. Ist zwar ein mega328er - aber die werten microchip-Leute scheinen xxzensiertxx zu machen.

    Deine Datenblattversion 2466E von 2002 kenne/habe ich leider nicht.

    Nachtrag: JETZT habe ich die 2466E von 2002. Muss man schon ne Weile suchen bei ..datasheetcatalog.. - und: es ist eine "Preliminary". Aber das nur nebenbei, Hauptsache, dass es Dir jetzt läuft.
    Geändert von oberallgeier (11.02.2019 um 18:23 Uhr) Grund: Nachgetragen: Doc geholt
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Hab die alte nicht verworfen! Die bleibt neben der neuen.

    Derzeit schaut alles was LCD betrifft gut aus.
    Die anderen Funktionen kann ich erst testen, wenn ich die Platine fertig entworfen und aufgebaut hab.
    Wird noch ein bisschen dauern.
    Dann wird es nochmals ein Stück Arbeit ...

Ähnliche Themen

  1. [ERLEDIGT] Atmega 644 & atmega8 parallel am ISP ... Reset beider atmega notwendig ..
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 29.03.2013, 11:18
  2. CCPRO M128: Portbelegung
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 22.05.2009, 22:26
  3. Portbelegung bei diesem Display [erledigt]
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.11.2006, 18:12
  4. Portbelegung ATmega32
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 15.11.2006, 19:59
  5. Antworten: 4
    Letzter Beitrag: 12.11.2006, 16:40

Berechtigungen

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

12V Akku bauen