Hätte eine Frage zum Mikroconntroller MSP430F412. Und zwar möchte ich wissen, ob dort die Pins bitadressierbar sind. Ich möchte z.B. auf den Pin 1 des Port 1 zugreifen, aber das halt ohne auf den Port zugreifen zu müssen (z.B über P1OUT 0x02), sondern halt direkt auf den Pin. Im Dantenblatt finde ich nur Port-Adressierbar, aber das sollte doch irgendwie mit C gehen, oder? Danke
jo das geht du kannst normalerweise jeden pin direkt ansprechen zb P1.0 = 1; oder P1_0 = 1; das musst du halt mal ausprobieren abfragen geht natürlich auch
Das sind meine Möglichkeiten Laut msp430x41x.h: #define P1IN_ (0x0020) /* Port 1 Input */ READ_ONLY DEFC( P1IN , P1IN_) #define P1OUT_ (0x0021) /* Port 1 Output */ DEFC( P1OUT , P1OUT_) #define P1DIR_ (0x0022) /* Port 1 Direction */ DEFC( P1DIR , P1DIR_) #define P1IFG_ (0x0023) /* Port 1 Interrupt Flag */ DEFC( P1IFG , P1IFG_) #define P1IES_ (0x0024) /* Port 1 Interrupt Edge Select */ DEFC( P1IES , P1IES_) #define P1IE_ (0x0025) /* Port 1 Interrupt Enable */ DEFC( P1IE , P1IE_) #define P1SEL_ (0x0026) /* Port 1 Selection */ DEFC( P1SEL , P1SEL_) P1.0 = 1; oder P1_0 = 1; funktioniert leider nicht, schon probiert
dann mach es zb so P1OUT |= 0x01; dann wird nur ein pin gesetzt der rest bleibt gleich
Und P1OUT &= ~0x01; setzt ihn wieder zurück. Direkt nur einen Pin geht erst mal so nicht, da müsste man sich ein Makro oder so schreiben.
Die msp430x.h sind Includes für den Assembler, in den io430x.hs sind dagegen die passenden C/C++-Definitionen. Z.B. P1OUT_bit.P1OUT_0 = 0 <=> P1OUT &= ~1 Wobei der IAR-Compiler beide Varianten in bic #1, &P1OUT übersetzt
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.