MSP430F2013 ADC einlesen

#3840376
Lesenswert?

Hi,
ich bin gerade dabei den MSP430F2013 zu programmieren. Leider habe ich 
bislang kaum Erfahrung im Programmieren, also habt bitte Nachsicht :)

Ich möchte ein Poti an ADC_0 (P1.0 und P1.1) einlesen und das Ergebnis 
dann per SPI versenden. Die SPI Schnittstelle habe ich mitlerweile 
hinbekommen, aber ich bekomme den ADC0 nicht eingelesen. Es wird 
angeblich immer der Wert 0xFFFC eingelesen, egal in welcher Stellung das 
Poti ist.

Meine Pinbelegung SPI: SPI=SDO, SDI, SCLK, P1.2 als SS - ADC: P1.0 = 
Poti(Regler), P1.1=Masse

Achja, die Spannung am A0+ ändert sich auch wenn ich an meinem 5k Poti 
drehe, das habe ich gemessen.

Mein Code ist im Anhang.
Angehängte Dateien:
Persönliche Seite #3840498
Lesenswert?

Niko Tech schrieb:
> aber ich bekomme den ADC0 nicht eingelesen

Hast Du Dir mal die Quelltextbeispiele von TI angesehen, die es für den 
'F20xx und dessen SD16 gibt?

http://www.ti.com/lit/zip/slac080

hieraus die drei Dateien

msp430x20x3_sd16A_01.c
msp430x20x3_sd16A_02.c
msp430x20x3_sd16A_03.c


In Deinem Code fällt mir auf, daß Du bei der Initialisierung von 
Peripherieregistern gerne den |= -Operator verwendest:

>   P1OUT |=  BIT2;               //SPI SS
>   P1DIR |=  BIT2;               //SPI SS

Hast Du Dir bei allen diesen Zuweisungen angesehen, welchen Wert das 
Register nach POR hat? Du kannst nicht davon ausgehen, daß darin alle 
Bits auf 0 gesetzt sind, sondern musst das im "family user's guide" 
für jedes einzelne Register nachsehen.
#3840523
Lesenswert?

Hi Rufus,

Nein ich hab mir die Register nicht angesehen. Danke für den Hinweis... 
Hatte mal gelernt, dass man Register immer mit |= bzw. &=~ setzen 
sollte, um nicht bits zu setzen/löschen die man gar nicht will... Aber 
in der Initialisierung macht das natürlich Sinn :)

Und ja, ich hab mir die TI Beispiele angeschaut, und auch hier im Forum 
alles abgegrast. Ich forsche nun schon seit ca. einer Woche woran es 
liegen kann und finde einfach keine Lösung :(

----

Habe nun auch in der Initialisierung alle Register mit = gesetzt, das 
Ergebnis ändert sich aber nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren