MSP430 Menusteuerung

Gast #605706
Lesenswert?

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
#605738
Lesenswert?

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.
Gast #605768
Lesenswert?

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
#605802
Lesenswert?

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

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