-         
Seite 17 von 18 ErsteErste ... 715161718 LetzteLetzte
Ergebnis 161 bis 170 von 173

Thema: Portbelegung auf ATMega für LCD1602

  1. #161
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    173
    Anzeige

    Zitat Zitat von HaWe Beitrag anzeigen
    Genau so wenig muss ich als Raspi-C- oder Python-Programmierer die Raspi-Hardware oder als Autofahrer die Kfz-Mechatronik kennen.
    Fährst du denn ohne die Bremse, Lenkrad, Schaltbox, Motor zu benutzen ? Oder wie bedienst du dein Fahrzeug

    taxonomisch heißt kennen = ich weiß das es das gibt.


  2. #162
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.129
    Zitat Zitat von avr_racer Beitrag anzeigen
    Fährst du denn ohne die Bremse, Lenkrad, Schaltbox, Motor zu benutzen ? Oder wie bedienst du dein Fahrzeug

    taxonomisch heißt kennen = ich weiß das es das gibt.

    da interpretierst du meine Aussage aber schon völlig grundverkehrt, das ist dir ja wohl klar: die Mechatronik kennen war zu verstehen als: die Dinge und Funktionen bis in alle Details samt allen Programmierungen und Steuerungen kennen, darum ging es ja im Disput Aduino versus asm und ARM cores direkt programmieren
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  3. #163
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Zitat Zitat von HaWe Beitrag anzeigen
    Das ist hohler Quatsch!
    Da Du jetzt offenbar dabei bist, den letzten Rest Deiner guten Kinderstube zu vergessen, ist das Thema für mich beendet.
    mfg
    Achim

  4. #164
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.129
    Zitat Zitat von seite5 Beitrag anzeigen
    Da Du jetzt offenbar dabei bist, den letzten Rest Deiner guten Kinderstube zu vergessen, ist das Thema für mich beendet.
    mfg
    Achim
    Der Herr seis's getrommelt und gepfiffen...!
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  5. #165
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    122
    So, früher als gedacht wieder retour ...

    Und - können wir bitte beim Thema bleiben !?!?
    hier gehts um AVR und LCD und nicht ob Arduino besser oder einfacher ist!

    Ich hab nicht viel an meinem Testprogrämmchen geändert.
    Aber ich hab eine Lösung gefunden.
    Woran es letztendlich liegt, dass eine 10-Bit Abfrage des ADCs in einer Schleife nicht normal abläuft kann ich aber auch nicht beantworten.
    Mag sein, dass das Problem an der Wandlungsgeschwindigkeit liegt ... aber:
    Frage an avr_racer oder an jene, die meine Frage beantworten können:
    Wie schaffe ich eine Wandlungsgeschwindigkeit zwischen 50kHz - 200kHz, wenn bei einer Taktfrequenz des µC von 1MHz nur ein Teiler von 128 zur Verfügung steht?

    Meine Lösung ist eine doppelte Wandlung unmittelbar hintereinander.
    Allerdings nicht im 10Bit-Modus sondern erst in 8Bit dann sofort in 10Bit.
    Dann passt alles.
    Angehängte Dateien Angehängte Dateien

  6. #166
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.185
    .. Woran es letztendlich liegt, dass eine 10-Bit Abfrage des ADCs in einer Schleife nicht normal abläuft kann ich aber auch nicht beantworten ..
    Kann es sein, dass Du die beiden 8bittigen ERgebnisregister des ADC falsch ausliest?
    Code:
    ....
    USA:                ;U-Solar/Akku
        ldi    lcdd,lcd_lin1+$0A ;Zahlenpos Solar-U
        rcall    lcd_cmd4
        ldi    muxr,$47    ;ADC7 10bit
        rcall    rd_adc
        in    wrk1,ADCH
        in    wrk2,ADCL
        rcall    clc_va        ;Values to Chars
    ...
    Damit liest Du doch zuerst ADCH aus? Das Datenblatt verlangt aber (must - engl. = müssen - dtsch) wie wohl immer beim 10bittigen Atmel-ADC, zuerst das ADCL und erst dann das ADCH auszulesen:

    Zitat Zitat von Datenblatt für AtmelATmega16A-8154B–AVR–07/09
    ...
    If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH, to ensure that the content of the Data Registers belongs to the same conversion. Once ADCL is read, ADC access to Data Registers is blocked
    ...
    Ciao sagt der JoeamBerg

  7. #167
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    173
    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

  8. #168
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    122
    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)

  9. #169
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    173
    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

  10. #170
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.185
    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

Seite 17 von 18 ErsteErste ... 715161718 LetzteLetzte

Ä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
  •