MSP430F2013 ADC einlesen

OP #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.
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.