Salu zusammen Ich möchte in meinen MSP430 eine Menusteuerung implementieren (kleiner Joystick aus Mobiltelefon). Leider habe ich nicht so viel Ahnung mit Interrupts und möchte das gleich als Anlass nehmen ein bisschen mehr darüber zu erfahren. Nun zu meiner Frage: Hat vielleicht jemand von Euch schon einmal so etwas gemacht und könnte mir ein bisschen weiterhelfen, oder mir einen Tipp geben wo ich spezifisch zu Interrupts und MSP430 etwas lesen kann? Vielleicht stellt mir auch jemand einen Codeschnipsel zur Verfügung in dem ich einmal ein paar Sachen nachvollziehen kann. Wäre über Eure Hilfe sehr erfreut Grüsse aus der heissen Schweiz reflection
Naja, an sich brauchst du eine Interrupt-Service-Routine, die könnte für den port 1 so aussehn:
1 | #ifdef __ICC430__
|
2 | #pragma vector=PORT1_VECTOR //IAR Compiler
|
3 | __interrupt void PORT_1_ISR (void){ |
4 | #else
|
5 | interrupt (PORT1_VECTOR) wakeup PORT_1_ISR(void) //GCC Compiler |
6 | {
|
7 | #endif
|
8 | |
9 | ...Tasten auswerten... |
10 | |
11 | }
|
Dann musst du natürlich bei der Initialisierung des Prozessors den Port erst mal für Int. freischalten:
1 | P1DIR = 0x00; //Alles Eingänge |
2 | P1IE = 0xFF; //Alle Inputs int-fähig; |
3 | P1IES = 0x00; //Alle Ints steigende Flanke |
4 | _EINT(); //Globalen Int einschalten |
Inj der ISR kannst du z.B. im P1IFG Register nachschauen, welcher Taster jetzt den Interrupt ausgelöst hat.
Salu Christian Danke für den Tipp Die Aus-/Eingänge des MSP liegen ja standardmässig auf High (PullUp) In Deinem Code steht jetzt, dass er die Ints bei steigender Flanke übernimmt. Müsste das dann nicht bei der fallenden Flanke geschehen? Komme aus Deinem Code noch nicht ganz klar, werde aber sicher mit Google und so schlauer. Gruss
Schau dir mal die C-Demos von TI an, die gehn immer. Der MSP430 hat keine Pull-Ups, alle Pins sind standardmäßig Eingänge und mit der I/O-Funktion belegt. Die Ausgänge sind push-pull, es muss also auch kein externer Pull-Up dran. Und sie liegen standardmäßig nicht auf High, sondern floaten als Eingang. Ganz wichtig ist der User Guide: http://focus.ti.com/mcu/docs/mcuprodtechdoc.tsp?sectionId=95&tabId=1201&familyId=342&techDoc=6&documentCategoryId=6 da steht alles sehr schön beschrieben. Und halt die Demo-Programme: http://focus.ti.com/mcu/docs/mcuflashtools.tsp?sectionId=95&tabId=1538&familyId=342
> Der MSP430 hat keine Pull-Ups,....
Die F2xx Serie schon
Ob man bei steigender oder fallender Flanke den Interrupt hat, hängt
davon ab wie man die Hardware drum rum gebaut hat. Beide Varianten sind
möglich.
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.