- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: brauch Hilfe zum ADC

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408

    brauch Hilfe zum ADC

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo
    ich will den ADC über die register steuern um code im tiny26 zu sparen
    wenn ich die config adc und getadc befehle nutze funktioniert es allerdings brauchts viel mehr platz aufm flash
    also hab ich folgenden einfachen code geschrieben:

    dim Adchoch As Byte
    Dim Adcniedrig As Byte
    Dim Adcergebniss As Word

    Admux = &B10000000 'referenz =2,56V intern
    Adcsr = &B11000110 'adc enable , adc starten , Prescaler 64

    Do
    Set Adcsr.6 'einen ADC Vorgang starten

    Do
    Loop Until Adcsr.6 = 0 'warten bis adc abgeschlossen ist

    Adchoch = Adch 'auslesen des ADCH
    Adcniedrig = Adcl 'auslesen des ADCL
    Adcergebniss = Adchoch * 256 'aus den beiden wird
    Adcergebniss = Adcergebniss + Adcniedrig 'ein ergebniss erechnet
    Locate 1 , 1
    Lcd Adcergebniss ; " "
    Waitms 200
    Loop

    End


    im simulator läuft es auch allerdings aufm chip wird nur ein einziger ADC vorgang gestartet denn die ausgabe bleibt immer gleich

    was mach ich falsch
    bitte helft mir
    Gruß Daniel

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.12.2005
    Ort
    Tann / ZH
    Alter
    67
    Beiträge
    264

    Re: brauch Hilfe zum ADC

    Zitat Zitat von molleonair

    .......

    Locate 1 , 1
    Lcd Adcergebniss ; " "
    Waitms 200
    Loop

    End

    ....


    im simulator läuft es auch allerdings aufm chip wird nur ein einziger ADC vorgang gestartet denn die ausgabe bleibt immer gleich

    was mach ich falsch
    bitte helft mir
    Gruß Daniel
    Du hast eine Endlosschleife programmiert... Wann meinst Du wird das
    "Loop" nach "Waitms200" wieder verlassen ?
    MfG
    Ruedi

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.06.2005
    Ort
    DD
    Beiträge
    519
    Das Loop gehört zu dem oberen Do, was du unterschlagen hast!
    ...und End ist einfach nur das Ende des Programms.

    Ansonten kann ich aber ni weiterhelfen...ich kenn nicht mal die Sprache *oops*

    MK

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    ich versteh nicht was ihr mir sagen wollt

    das programm soll auch ne endlosschleife sein
    eine schleife in der endlos der adc kanal 0 abgefragt wird
    und das ergebniss aufs display kommt

    @ruediw das loop soll den AVR wieder zum obersten do springenlassen und somit erneut adc samplen

    oder meint ihr das eine do-loop schleife in einer anderen nicht läuft ?

    Gruß Daniel

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2005
    Beiträge
    178
    Hallo molleonair,
    schreib mal unten vor dem End noch ein

    Loop

    hin, dann kommt das Programm auch wieder zu dem oberen 'Do ' und startet einen neuen Wandlervorgang. So wie du das Programm geschrieben hast, hört es nach dem ersten Wandlervorgang bei 'End' auf.
    Eigentlich sollte der Compiler aber einen Fehler anzeigen, wenn das zweite 'loop' fehlt.

    felack

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    ich verstehs echt nicht ..
    vor dem end steht ein loop
    es sind genau zwei do und zwei loop
    wo soll denn da ein loop fehlen ???????????

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2005
    Beiträge
    178
    Hallo Mollionair,

    Tausch mal die beiden Zeilen:
    Adchoch = Adch 'auslesen des ADCH
    Adcniedrig = Adcl 'auslesen des ADCL

    Das hat folgenden Grund:
    Wenn ADCL gelesen wird, wird ADCL und ADCH solange blockiert, bis ADCH gelesen wird. Damit wird verhindert, dass während des Auslesens eine neue Wandlung in die Register eingetragen und das Ergebnis verfälscht wird.

    felack

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    ja ich glaub daran könnte es liegen ..werd es morgen mal gleich testen

    Danke Felack war n super Tip

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    also es läuft
    felack lag genau richtig man muß natürlich erst das adcl und dann das adch auslesen
    Das steht auch irgendwo im datenblatt aber ich habs vergessen

    Also nochmal Danke
    Gruß Daniel

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad