Gast
#3556311
Hallo Freunde, ich möchte einen MCP4921 12Bit DA-Wandler per ATmega16 via SPI ansteuern. Das gelingt mir mittlerweile auch schon recht gut, ich kann dem DA-Wandler sagen was er machen soll, und er tut ungefähr das... aber eben nur ungefähr. Zum Testen möchte ich ganz einfach die Variable
1 | |
in der Funktion update() übertragen. Bei 12 bit sollte ich somit bei einem Wert von 4096 die Referenzspannung am Ausgang messen (4.09V). Leider stimmen diese Werte bei mir überhaupt nicht. Bei einem Wert von value.Short von 300 messe ich 0.443V, bei 600 1.202V und wenn ich value.Short auf 2000 setze, messe ich sogar 4.98V. Ich übertrage die beiden Bytes (12 Bit Daten, und 4Bit overhead) ganz einfach nacheinander. Kann bitte jemand schnell den Code anschauen und mir sagen wo der Fehler liegt? Vielleicht liegt es trotzdem an der Art wie ich die Bytes übertrage, aber ich kann den Fehler beim besten Willen nicht finden. Denkt ihr es kann an der Beschaltung liegen. Im Moment ist der Ausgang des DA-Wandlers einfach offen. Vielen Dank für die Hilfe Hoanz