Forum: Mikrocontroller und Digitale Elektronik AT90PWM: DAC


von gast (Gast)


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.:
1
DACON |= (1<<DALA) | (1<<DAOE);
2
3
void analog_start_da(float output)
4
{
5
  char da=0;
6
7
  da = (char)(output * 1023) / 2.56;
8
  DACH = da;
9
10
  DACON |= (1<<DAEN);
11
}

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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:
1
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:
1
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:
1
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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.