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
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