mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90PWM: DAC


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab nun mehrere ähnliche Beiträge im Forum durchgelesen, aber leider 
nichts passendes gefunden.
Deswegen meine Frage an euch:
Ich würde gerne meinen DAC dazu nutzen eine Spg am D2A Pin auszugeben. 
Leider funktioniert das ganze aber nicht so wie gewünscht --> der Pin 
ändert sich gar nicht. Hier einmal die Registerinitialisierung und der 
aufruf der DA fkt.:
DACON |= (1<<DALA) | (1<<DAOE);

void analog_start_da(float output)
{
  char da=0;

  da = (char)(output * 1023) / 2.56;
  DACH = da;

  DACON |= (1<<DAEN);
}

Findet jemand einen Fehler warum das nicht funktioniert?

Was mich auch noch interessieren würde:
Wie kann ich den DA Wandler dazu benutzen meinem Comparator die Spg 
vorzugeben?

So long
Shimu

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne mir den generierten Code anzugucken, würde ich mal vermuten, dass
der Typecast nach (char) kompletter Unsinn ist.  Er limitiert das
Ergebnis von "output * 1023" auf 8 Bits, die noch dazu (falls du nicht
-funsigned-char benutzt) vorzeichenbehaftet interpretiert werden.
Die anschließende Division durch 2.56 wandelt das dann wieder in
eine Gleitkommazahl um.

Wenn schon, dann:
da = (uint8_t)((output * 1023) / 2.56);

Da aber DACH ohnehin vom Typ uint8_t ist, kannst du dir das auch
genauso gut schenken und gleich schreiben:
DACH = (output * 1023) / 2.56;

Das zeitlich versetzte Setzen der Bits DALA und DAOE vs. DAEN hat
keinen Sinn.  Bei der ersten Aktion wird der Ausgang ja schon
eingeschaltet, nur der Wandler noch nicht freigegeben.  Da kannst du
auch gleich alles zusammen initial aktivieren:
DACON = (1<<DALA) | (1<<DAOE) | (1<<DAEN);

Der DAC wandelt ja praktisch sofort (Zeitangaben gibt's leider nicht
im Datenblatt), man muss die Wandlung nicht erst ,,anschieben'' wie
beim Sukzessiv-Annäherungs-ADC.

> Wie kann ich den DA Wandler dazu benutzen meinem Comparator die Spg
> vorzugeben?

Was ist dir hier in der Beschreibung der Komparatoren unklar?  Jeder
der drei Komparatoren hat eine Konfigurationsform, bei der sein
negativer Eingang vom DAC versorgt wird.  Der positive Eingang ist
immer nach außen geführt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.