Hallo, ich nutze das MSP430 launchpad für einige Experimente. Das hat auch gut funktioniert, solange ich mich bei Input/Output auf PORT1 beschrenkt habe. Die 8 PINS langen mir jetzt aber nicht mehr, weil 7 davon für eine segmentanzeige schon draufgehen. Kein Problem, hab ja noch 2 Pins an P2 frei. Nun leider doch ein Problem: da tut sich nichts. Hier mein Code: #include <msp430g2231.h> void main (void) { WDTCTL = WDTPW | WDTHOLD; //Watchdog stoppen P2SEL = 0; //Funktionsauswahl P2: Input/Output P2DIR = 64; //6tes Bit auf Output stellen P2OUT = 64; //High-Signal am 6ten Bit von P2 for(;;){} //Endlosschleife, dass weiterläuft } Wie man sieht sehr simpel, es soll nur eine LED leuchten mehr will ich zu diesem Zeitpunkt nicht, aber es geht nicht :( Ich verstehe das nicht.
1) Du schaltest die LED gegen Vcc oder gegen Gnd? Laut Code gegen Gnd. 2) Geht das wirklich, dass man für den Wert an Pinxy einen Dezimalwert angibt? Ich habe das immer mit Hex-oder Binärwerten gemacht?
1) Ich denke mal gegen Vcc. P2 steht auf High, und die LED ist auch High-Aktiv. 2) Daran sollte es nicht scheitern. Habe das schon in mehreren Programmen so gemacht. Für den Compiler ist das ja ein und das selbe ob 64 oder 0x40 Ich verwende übrigens Code Composer Studio (CCS)
Quacksalber schrieb: > Ich denke mal gegen Vcc. P2 steht auf High, und die LED ist auch > High-Aktiv. Wenn du gegen Vcc schaltest, dann kann die LED so natürlich NICHT leuchten. Quacksalber schrieb: > Daran sollte es nicht scheitern. Habe das schon in mehreren > Programmen so gemacht. Für den Compiler ist das ja ein und das selbe ob > 64 oder 0x40 Funktioniert, klar, aber ist der absolute Horror, wenn das einer lesen will. Stell dir mal vor, du schreibst ne 73 und musst dir dann daraus BIT0/3/6 basteln.
Wenn Du aber gegen Vcc schaltest, dann muss Du den Pin auf low ziehen. Gegen Vcc heißt bei mir, Anode an Vcc, Kathode an µC-Pin. Schonmal gemessen, ob Du überhaupt Pegeländerungen an den Pins erzeugen kannst?
2ter Gast schrieb: > Auf p2.6 und p2.7 liegen xin und xout. Kannste ja trotzdem als GPIO nutzen, sofern du nicht den Quarz da dran gelötet hast.
Dennis schrieb: > Kannste ja trotzdem als GPIO nutzen, sofern du nicht den Quarz da dran > gelötet hast. Ja, ich habe auch nur gesagt, dass der uC DOCH den Port P2 besitzt :-).
Die Grundlage das ist notwendig blättere hier ein bisschen im Forum dann wirst du merken 2 Schreibweisen: P1DIR | = 64 ; P1SEL | = 64 ; Oder P1DIR =Bit6 ; P1SEL =Bit6 ; bei P1OUT genauso P1OUT & =~64 ; oder im Hex-Format Bsp.: P1DIR | = 0x40 ; usw... bisschen Aufpassen.das ist Programmieren nicht schreiben
Das programm schrieb: > Die Grundlage das ist notwendig blättere hier ein bisschen im Forum dann > wirst du merken 2 Schreibweisen: > > P1DIR | = 64 ; > P1SEL | = 64 ; > > Oder > > P1DIR =Bit6 ; > P1SEL =Bit6 ; > > bei P1OUT genauso P1OUT & =~64 ; Ist doch egal! Wenn er nur den einzelnen PortPin benutzt, dann ist das "=" völlig in Ordnung!
Der Code aus dem ersten Beitrag funktioniert. Wenn die LED nicht aufleuchtet ist sie kaputt oder falsch angeschlossen. Am einfachsten mal mit einer der LEDs auf dem Launchpad testen: einen der Jumper bei den LEDs entfernen und den LED-seitigen Anschluss mit P2.6 verbinden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.