Forum: Mikrocontroller und Digitale Elektronik MSP430 Menusteuerung


von reflection (Gast)


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

von Christian R. (supachris)


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.

von reflection (Gast)


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

von Christian R. (supachris)


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

von Jörg S. (Gast)


Lesenswert?

> 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.

von Christian R. (supachris)


Lesenswert?

OK, die neuen schon, stimmt. Der Kollege schrieb aber nicht, welchen 
MSP430 er hat.

von Jörg S. (Gast)


Lesenswert?

> Der Kollege schrieb aber nicht, welchen MSP430 er hat.
Der übliche Fehler, ja :)

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
Noch kein Account? Hier anmelden.