- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Analog Comparator funktioniert nicht

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    24.09.2009
    Beiträge
    10
    Anzeige

    Praxistest und DIY Projekte
    Das verstehe ich nicht,
    laut Datenblatt heist es doch, wenn Uist<Uref dann hat ACO = High, also 1
    wenn Uist > Uref, dann ACO = Low also 0?
    Wie kommst du auf 5?

    Gruß
    Sylvia

  2. #12
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    ACO ist ja nur ein Bit im Register ACSR
    die Bits dort ACSR haben die Nummern 7 - 0
    dafür gibt es Namen, einer davon ist ACO, das ist Bit Nr 5
    die Namen findest du in der Doku-PDF s 197

    das dient dazu, dass man schreiben kann z.B
    Code:
    ACSR |=  (1<<ACBG)  und nicht
    ACSR |=  (1<<6)  
    beides ergibt 
    ACSR |=  0x40   (0100 0000)
    danach ist genau dieses Bit im register gesetzt.

    ACO
    Code:
    "ACO high"  heisst, im ACSR steht  xx1x xxxx
    "ACO low "  heisst, im ACSR steht  xx0x xxxx
      
    um es abzufragen, macht man  also
    Spannung_weg = ACSR & (1<<ACO);
    
    das bedeutet
    ACSR             = xxNx xxxx    (low oder hi)
     (1<<ACO)     = 0010 0000
     logisch und & = 00N0 0000  --> ergebnis
    
    in "spannung_weg" steht dann also  entweder 
                            0000 0000     ( Bit nr 5  "ACO" = 0)
    oder                  0010 0000    ( Bit nr 5  "ACO" = 1)
    
    du kannst also auch nicht auf == 1)  abfragen.
    Hilft das als Tip, oder verwirrt das ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    24.09.2009
    Beiträge
    10
    Hallo, du kannst gut erklären, das habe ich jetzt verstanden.
    Nur ändern sich leider trotzdem nichts.
    Mein ACO ist immer auf High.
    Meine Vergleichsspannung ist im Normalfall auf 2,8V, da dachte ich mir, vielleicht ist der Unterschied zur inneren Referenzspannung 2,56V zu klein, und habe auf externe Referenzspannung umgeschaltet (einfach ACSR |=(1<<ACGB) auskommentiert).
    Nun gebe ich eine Veränderliche Referenzspannung von 0-5V auf AIN0.
    Aber egal, wie die Referenzspannung aussieht, sogar wenn sie 0V ist,
    das ACO sagt:High, also sie sei größer als meine Vergleichsspannung 2,8V.
    Warum nur?
    Grüße von
    Sylvia

  4. #14
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du hast wohl nicht die Möglichkeit, einfach mal den Mega32 zu tauschen ? Es sollte nicht das Wölkchen des Zweifels über Dir kreisen, dass der µC vielleicht doch einen Schaden hat.
    Dass der Comparator beim DIL grundsätzlich nicht funzt, habe ich noch nie gehört, kann es mit auch nicht vorstellen.

    Wenn sich nicht inzwischen irgendein schlauer Kopf findet, der Dir wirklich helfen kann, werd ich wohl mein Zeug rauskramen und die Sache selbst versuchen. Ist ja zum Eierlegen. Bis dahin hab' ich wohl nur die Weisheit eines Pfarrers bei der Eheberatung *g*
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    24.09.2009
    Beiträge
    10
    hab das Wölkchen vertrieben, und den µC ausgewechselt,
    .....ändert nichts.
    Gruß
    Sylvia

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Lass mal dein Programm im Simulator vom AVR Studio 4 laufen und guck mal ob es dann da geht.
    Oft sind es wirklich nur ein paar verwurstelte Bits, die das Problem machen.
    Im Studio kannst Du die Reaktion deines Programms schritt für Schritt austesten.
    Das hat mir bei der Fehlersuche schon oft geholfen.

    Die Eingänge kannst Du durch manipulation der entsprechenden Portpins simulieren.

    Der Simulator hat nur seine Schwächen, wenn die komunikation mit anderen Bausteinen getestet werden soll.

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.655

    Re: Analog Comparator funktioniert nicht

    Hi, Sylvia,

    Zitat Zitat von Sylvia Heib
    ... den AIN0 auf innere Referenz (2,56V) umgeschaltet ... Über einen Spannungsteiler gebe ich nun die Vergleichsspannung auf den Eingang AIN1.
    Nun kommt das Problem...
    Bitte nicht böse sein, wenn ich jetzt meinen Beitrag poste: hast Du GND Deiner Vergleichsspannungen und den GND Deines Controllers (also alle drei Niveaus !) miteinander verbunden? (Bei mir ist es so: offenkundige Fehler merke ich meist erst ganz zum Schluss - das ist leider auch hier im Forum schon dokumentiert ).
    Ciao sagt der JoeamBerg

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    24.09.2009
    Beiträge
    10
    ja,
    alle GND''`s sind miteinander verbunden
    Gruß
    Sylvia

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    24.09.2009
    Beiträge
    10
    Hab die LÖSUNG!!!

    ich schreibe:

    Spannung_weg =((ACSR &(1<<ACO)) ?1 :0)

    Das bedeutet:
    Wenn der Wert in ACSR "true" ist (er wird hier 32, wenn das 5.Bit(ACO) auf High geht, dann soll Spannung_weg eine 1 sein.
    Im anderen Fall ist Spannung_weg eine 0.
    Nun kann ich schreiben:

    if(Spannung_weg==1)
    tue was....

    Das funktioniert!
    Danke für eure Hilfe
    Grüße von
    Sylvia

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    es würde auch reichen, wenn du schreibst

    if(!Spannung_weg)

    das entspricht dem ausdruck

    if(Spannung_weg == 0)

    wenn du

    i(SPannung_weg)

    schreibst iss dass ungefähr so wie

    if(Spannung_weg != 0)

    nur zum verständnis

    true und false versteht der GCC nur so, true ist alles was ungeleich 0 ist, false IST GLEICH 0

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen