- LiFePO4 Speicher Test         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 40

Thema: Auswertung/Funktionsweise des A/D Wandlers

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Anzeige

    E-Bike
    Hi Flite!
    Erstmal ein ganz dolles "DANKESCHÖN"!
    Danke für die ganze Arbeit, die Du Dir gemacht hast!
    Ich werde jetzt den Code einfach mal für den AT90S4433 umschreiben und ihn hier zum kontrollieren posten!
    Eine Frage habe ich allerdings jetzt schon:
    Was ist ein Prescaler?

    Danke nochmals!

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    41
    Beiträge
    614
    Ein Prescaler ist ein Vorteiler. Der dafür angegebene Wert gibt an, um welchen Faktor ein Timer langsamer läuft als der Systemtakt.
    8MHZ und ein Prescaler von 64 hieße z.B., dass mit einer Frequenz von 8MHZ/64 = 125kHz hochgezählt wird.
    it works best if you plug it (aus leidvoller Erfahrung)

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Hi Gottfreak!
    Das ist dann also sowas wie bei den Timern!
    Dann hab ich das jetzt verstanden!
    Danke nochmnal!

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Hi!
    Ich habe noch eine Frage!
    Code:
    ;********************************************** 
    ;.equ    ADTS2    =7 
    ;.equ    ADTS1    =6 
    ;.equ    ADTS0    =5 
    ;**********************************************
    Warum sind die .equ's als Kommentar eingefügt?
    Dann funktionieren die doch garnicht! Die werden doch dann übersprungen! Oder doch nicht?

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Hi!
    Code:
    ;   rjmp ad_vector      ; ADC
    ;***********************************************
    dummy:
    Das rjmp ... ist auch als Kommentar gemacht! Soll das sein?

    Edit:
    Mir fällt auf, dass auch andere Elemente als Kommentar geschrieben sind!

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    Also wenn ich das auf die Schnelle wichtig überblicke waren die hinter den Kommentaren stehenden Anweisungen nur für frühere Tests etc. zuständig.

    Die equs werden niergends im Programm mehr verwendet (also war das wahrscheinlich auch zu testzwecken drin). Außerdem sollten die Definitionen eigentlich auch in der m32def.inc stehen.

    Versuch das ganze Mal auf den 4433 umzuschreiben (und lass die kommentierten Befehle einfach weg) und stell den Code mal hier rein.
    Ich les mir das dann mal durch - ist eigentlich nicht schwierig.

    Allerdings:
    der 4433 verfügt imho nicht über die Möglichkeit das Ergebnis linksseitig anzugeben.

    Viele Grüße
    Flite

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    Die ADTS 0 - 2 Bits sind die MSBs im SFIOR Register (Special Function I/O Register). Damit lässt sich eine Triggerfunktion des ADC steuern.

    In obigem Beispiel war der Trigger wohl auf den Analog Comparator (001) geschaltet - daher auch die Reste des Analog Comparator im Quelltext.

    Ganz oben bei der Initialisierung wird das SFIOR auf 0x00 gesetzt -> daher sind auch die ADTS auf 0 und der Trigger läuft auf Free Running.

    Grüße
    Flite

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Hi Flite!
    Zitat Zitat von Flite
    Allerdings:
    der 4433 verfügt imho nicht über die Möglichkeit das Ergebnis linksseitig anzugeben.
    Was muss ich dann machen, um trotzdem eine 8 Bit Zahl ausgeben bzw. in temp packen zu können?

    Muss ich das so machen
    Code:
    ad_vector: 
    
       in    temp  , ADCL 
       sbi   ADCSR , ADSC
       sei 
       ret

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2004
    Alter
    40
    Beiträge
    255
    Hallo Florian,

    nein - das wird nicht funkitonieren.
    Lies das ADCL in das Low Byte eines pseudo 16 Bit Registers ein (z.b. ZL)
    dann das ADCH in das entsprechene High Byte (z.B. ZH).

    Anschließend rotierst du das 16bit Register 2 mal nach rechts (wobei die zwei Bit aus dem High Byte ins Low Byte runterrutschen und die beiden LSB des Low Bytes verlohren gehen).

    Code:
    ad_vector:
      in     ZL,    ADCL
      in     ZH,    ADCH
      ror   Z
      ror   Z
      mov temp,  ZL
    
      sbi  ADCSR,  ADSC
      (sei)
      ret
    Viele Grüße
    Flite

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    36
    Beiträge
    2.624
    Hi Flite!
    Das habe ich mir schon fast gedacht, dass das nicht geht!
    Naja, danke für Deine Erklärung, wie ich das dann machen kann!
    Wenn ich demnächst mal Zeit haben sollte, dann werde den Code für den 4433 machen!
    Ich denke mal, dass ich das heute oder morgen schaffen werde, jetzt ist ja endlich der Arbeiten-Streß vorbei, denn bald (7.7.) gibt es Zeugnisse!
    \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress