Hallo! Ich habe einen MSP430f2012 und möchte alle LEDs leuchten lassen, wenn eine Taste gedrückt wird. #include <msp430x20x2.h> // Pins on the MSP430 we're using #define LED1 BIT1 // LED on P1.1 #define LED2 BIT2 // LED on P1.2 #define LED3 BIT3 // LED on P1.3 #define LED4 BIT4 // LED on P1.4 #define BUTTON1 BIT5 // Button on P1.5 #define BUTTON2 BIT6 // Button on P1.6 #define BUTTON3 BIT7 // Button on P1.7 void main( void ) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL2 &= ~(DIVS_3); // Turn on the LED if(BUTTON1 == ??) { P1DIR |= (BIT1|BIT2|BIT3|BIT4); P1OUT |= BIT1; P1OUT &= ~BIT4; } } Meine erste Frage wäre: Wie kann der Programm wissen, dass die Taste am P1.5 gedrückt ist? Sein Handbuch habe ich schon gelesen!
:
Verschoben durch Moderator
Das Handbuch hast Du gelesen? Welches denn? Datenblatt oder User´s Guide? Dafür sind Deine Fragen reichlich, ähem, anfängerhaft. Auch Deine C-Kenntnisse sind eher überschaubar, wenn ich mir Deine Tastenabfrage so anschaue. Naja. Dein Code sollte so aussehen:
1 | P1DIR |= (BIT1|BIT2|BIT3|BIT4); // muss man nur einmal konfigurieren |
2 | |
3 | while (1) { |
4 | if (P1IN & BUTTON1) // P1.5 gesetzt |
5 | {
|
6 | P1OUT |= (LED1 | LED2 | LED3 | LED4); |
7 | } else { |
8 | P1OUT &= ~(LED1 | LED2 | LED3 | LED4); |
9 | }
|
10 | }
|
Eine Tastenentprellung fehlt, ist für die Anwendung aber auch nicht nötig.
Danke Max G.! So, ich kann meine 4 LEDs schon blinken lassen, wenn man die Taste S1 drückt und hier ist mein Programm: #include <msp430x20x2.h> //Pins on the MSP430 we're using #define D1 BIT1 //LED on P1.1 #define D2 BIT2 //LED on P1.2 #define D3 BIT3 //LED on P1.3 #define D4 BIT4 //LED on P1.4 #define S1 BIT5 //Button on P1.5 #define S2 BIT6 //Button on P1.6 #define S3 BIT7 //Button on P1.7 void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR |= D1; P1DIR |= D2; P1DIR |= D3; P1DIR |= D4; for(;;) { if((P1IN & S1) == 0) { unsigned int x; P1OUT ^= D1; P1OUT ^= D2; P1OUT ^= D3; P1OUT ^= D4; x = 20000; do(x--); while(x != 0); }else { unsigned int y; P1OUT ^= D1; P1OUT ^= D2; P1OUT ^= D3; P1OUT ^= D4; y = 0; do(y--); while(y != 0); } } }
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.