-         

Ergebnis 1 bis 9 von 9

Thema: Brauche dringend Hilfe zu Programm

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17

    Brauche dringend Hilfe zu Programm

    Anzeige

    Hallo !
    Kann mir jemand sagen was ich bei diesem Programm falsch mache.
    wenn ich den wert des AD-Wandlers übers terminal auslese, schreibt dieser immer den Wert 268.
    Obwohl ich die Vin Spannung an ADC0 abhänge.
    ich verwende CodeVisionAVRund den Atmega128.
    BITTE BITTe wer kann mir da weiterhelfen.
    Der Code ist unter Attachment beigefügt.

    Danke!
    Angehängte Dateien Angehängte Dateien
    • Dateityp: c co__.c (7,6 KB, 12x aufgerufen)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Da ich den Code vermutlich eh nicht verstehen würde, habe ich ihn mir nicht angesehen.
    Das Problem selbst kommt mir aber bekannt vor. Bei mir lags immer dran, dass ich vergessen ahbe die internen Pullups zu aktivieren, bzw. zu deaktivieren. Könnte das bei dir auch die Ursache sein?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17
    werde das gleich mal checken !
    Danke für den hinweis
    recycle

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17
    Hab da mit den Pullups abgecheckt!
    Leider war das nichts, es ändert sich nichts bei AD-Wert.

    Ich habe keine Ahnung was ich falsch mache.

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hi, in deiner Routine readadc ()
    kommt vor:

    return ADCW;

    Hol die die Werte sicherheitshalber einzeln in der richtigen Reihenfolge (->Datenblatt)
    und gib sie dann erst zurück
    Ich merk mir die richtige Folge nie, aber es ist heikel, das ist sicher.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17
    Hallo Robert!
    ich bin noch ein Anfänger in diesem bereich, kannst du mir einen Tipp geben wie ich mir die Werte einzel zurückhole.
    vielleicht mit ADCL bez ADCH liege ich da richtig.

    Danke im Vorraus für alle brauchbare Tipps.
    mfg Malik

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ja, genau.
    unsigned short wVal;
    wVal = ADCL;
    wVal += ADCH << 8;
    oder
    wVal = ADCH << 8;
    wVal += ADCL;
    return (wVal);
    }
    adcl oder adch MUSS man zuerst lesen (nachschauen)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17
    Das seltsame ist ja wenn ich die Spannung am ADC0 (kannal 0) abhänge bleit der Wert trotdem bestehen.
    Kann es sein das es gar nicht der AD-WERT ist?
    oder ist der AD-wandler def.?
    Es ist mir noch was aufgefallen wenn ich die codezeile "CO Wert ausgeben" ,oder auch sonst eine Zeile deaktiviere ändert sich der Wert
    z.b. von 268 auf 261, aufjedem Fall wird der Wert weniger.

    was kann das sein?
    Hat vielleicht jemand ein Beispielcode für den AD mit der ausgabe des Wertes auf Uart. Es gibt etliche beispiele im internet mit div. Makefiles, nur wie gesagt ich verwende CodeVisionAVR und ich kenn mich leider nicht so gut aus mit makefiles.
    wäre echt toll wenn jemand ein Code für Atmega128 hätte.
    Habe bald Matura und die Zeit läuft mir davon.

    mfg malik

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2005
    Beiträge
    17
    Hallo,
    habe den fehler selbst gefunden, es lag am C-code selber.
    hatte vergessen von welche kanal er den wert lesen soll.

    value=read_adc(0).....habe die Null total vergessen.

    Aber Danke an alle
    MFG
    malius

Berechtigungen

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