Hallo, ich versuche schon seit einer Weile mit dem µController MSP430F2122 per I2C ein Digtalpotentiometer (MAX5477EUD) anzusprechen, jedoch bekomme ich kein Signal an den Ausgängen. Um das Potentiometer anzusprechen muss ich zuerst ein Command-Byte senden, wohin ich schreiben möchte, und dannach ein Daten-Byte, welches mir den Widerstand einstellt. Jedoch genau hier scheitere ich, da ich nicht weiß ob ich die nacheinander etc. senden muss. Zum kompilieren verwende ich die MSP430-GCC tools. Im Anhang mein C-File. Vielleicht hat ja jemand eine Ahnung... Danke im Voraus mfg
Hat wirklich noch niemand etwas mit dem MSP430F2122 und I2C gemacht? Ich wäre für jeden Tipp dankbar... mfg
Hm... Da fehlt irgendwie noch was... Ich kann dir gleich mal meinen Soft I2C Code schicken, welcher bei mir zum auslesen eines Gyros gut funktioniert. Vielleicht kannst du damit mal testen.
Es wäre sehr nett wenn du mir den Code schicken würdest. danke
Michael S. schrieb: > Jedoch genau hier scheitere ich, da ich > nicht weiß ob ich die nacheinander etc. senden muss. Alles direkt hintereinander in einem Aufruf.
Jörg S. schrieb:
> Alles direkt hintereinander in einem Aufruf.
also quasi so?:
UCB0TXBUF = TXData1;
UCB0TXBUF = TXData2;
Und die Adresse vom Slave wird immer automatisch gesendet oder?
Also ich glaube jetzt durch Messungen mit dem Oszilloskop darauf gekommen zu sein, dass mein Programm nur die Slave-Adresse sendet und den Rest ignoriert....
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
Aber warum ist die Frage^^?
>UCB0TXBUF = data; //wird nicht gesendet ? >UCB0TXBUF = command; Kann so nicht klappen. Du must immer warten ber der MSP wieder bereit ist neue Daten anzunehmen.
> Kann so nicht klappen. Du must immer warten ber der MSP wieder bereit > ist neue Daten anzunehmen Würde dieser Befehl davor und dazwischen schon ausreichen oder gibt es noch Register die ich nicht beachte? >while(UCB0STAT & UCBBUSY); PS: Danke für deine Hilfe :D
So jetz hab ich es mit Interrupts gelöst und es funktioniert so wie es soll. Falls jemand Mal das selbe Problem hat häng ich den Code an. Danke an alle für die hilfreichen Posts.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.