MSP430F1611 I/O unklar

Gast #989513
Lesenswert?

Hallo,
ich bin totaler µC-Programmieranfänger und brauche eine kleine 
Starthilfe. Wäre schön, wenn mir jemand zu folgendem Problem etwas auf 
die Sprünge helfen könnte.

Ich besitze einen TelosB (Rev. B) Sensornetzknoten von Crossbow 
Technology (http://www.xbow.com/Products/productdetails.aspx?sid=252), 
auf dem ein MSP430F1611 verbaut ist. Gemäß Datenblatt befindet sich an 
I/O-Pin 48 (Port 5.4 auf dem µC) eine LED. Diese möchte ich zum Leuchten 
bringen und verwende unter Zuhilfenahme des MSPGCC dafür folgenden Code:

#include <io.h>

int main(void) {
  P5DIR |= (1<<5);   // Output pin
  P5OUT |= (1<<5);   // Pin hochziehen
}

Dummerweise leuchtet die LED aber nicht, was wohl bedeutet, dass ich 
irgendetwas Grundlegendes falsch mache.

Schon mal vielen Dank für die Zeit, die Ihr Euch fürs Lesen genommen 
habt :)

Grüße, Florian
Gast #989533
Lesenswert?

Nach Schaltplan musst Du den Port 5.4 auch runterziehen, damit die LED 
(die ja bereits an Vcc hängt) leuchtet.

Also:

1. P5.4 als Output definieren
2. P5.4 LOW setzen

Weiterhin wäre es gut, nach dieser Anweisung den Controller in einer 
Dauerschleife zu halten "while(1)", sonst versucht der über das 
Programmende alles ausm Flash auszuführen, was danach kommt (unter 
Umständen halt Müll oder sonst was)

Viele Grüße,
Flo
Gast #989576
Lesenswert?

So, erstmal vielen Dank für Eure Antworten! Dass ich für die erste LED 
nur 4 mal shiften muss, stimmt natürlich. Habe nun Eure Tipps beherzigt 
und den folgenden Code ausprobiert:

#include <io.h>

int main(void) {
  WDTCTL = WDTPW + WDTHOLD;  // Stop watchdog timer

  P5DIR |= (1<<4);    // Output pin
  P5OUT &= ~(1<<4);    // Low setzen

  while(1);
}

Nun hatte ich immerhin den Erfolg, dass die LED nach dem Flashen für ca. 
eine halbe Sekunde geleuchtet hat und dann sofort wieder ausgegangen ist 
;) Was hat das zu bedeuten? Die Stromversorgung bekommt der TelosB 
übrigens via USB-Port von meinem Notebook mit dem ich das Ding auch 
flashe.
Gast #989857
Lesenswert?

Ein paar Fragen habe ich noch zu Telos. Dort ist doch ein SHT11 drauf !?

Telos hat keinen DC/DC mehr, wie wird der SHT11 versorgt wenn die 
Batteriespannung unter 2.4V fällt ??? Ich kenne kaum ordentliche 
Sensoren die mit diesen niedrigen Spannungen laufen ...
Gast #992060
Lesenswert?

Hallo an alle,
wie's aussieht war das Problem kein Quellcode-Fehler, sondern eins des 
MSPGCC bzw. des Flashing-Tools (tos-bsl, Abwandlung von msp430-bsl für 
telosb-Support aus der TinyOS Toolchain), das ich benutze. Nachdem das 
Flashing-Tool häufig unvorhersehbar mit der Fehlermeldung abbrach, dass 
ein unbekannter Header (0x00) gefunden wurde, habe ich zwecks 
Fehlereingrenzung mal versucht, das Programm auf Windows zu kompilieren 
und zu flashen, was problemlos möglich war. Auch die LEDs zeigen nun die 
gewünschte Funktion. Man gab mir den Hinweis, dass die Ursache für die 
Fehlfunktionen falsche Linker-Description Files sein könnten. Leider 
weiß ich an dieser Stelle nicht weiter. Wäre es möglich, die LD-Files 
aus der Windows-Installation einfach an die entsprechende Stelle meiner 
Linux-Konfiguration zu kopieren oder sind die betriebssystemabhängig?

Viele Grüße und danke für Eure Hilfe,
Florian

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