Forum: Compiler & IDEs msp430 Interrupt in C programieren


von tmogli (Gast)


Lesenswert?

Hallo Leute!

Habe gerade mit dem Programmieren des MSP430 begonnen. Und versuche es
zu erlernen. Habe folgende Frage:

Wie schreibe ich ein Programm in C, welches Interrupts benutzt.
zB. Wenn Ich "Taste eins" drücke soll am Ausgang ein bestimmtes
Signal angelegt werden, und bei "Taste2" wieder ein anderes!

Ich brauche nur die Standartinitialisierung für Interrupts in C!!!!

Wäre super nett!

Danke Mogli

: Gesperrt durch User
von Benjamin Johann (Gast)


Lesenswert?

Schreibe einfach eine Funktion

interrupt [PORT1_VECTOR] void irgendein_name(void)
{
bla bla bla...
}

wobei die Interupts nicht viel code enthalten sollten / dürfen , damit
der Prozessor nicht aus dem Takt kommt.
Den interupt-Verctor den du brauchst musst du dir in den header-dateien
raussuchen oder hier mal duie suchen-funktion im Forum benutzen.
Auerdem musst du natürlich erstmal in deiner Main programmieren, wann
ein interupt ausgelöst wird.
z.B.

Port - Direction (DIR)
Port Int Edge Select "IES" (Posiive oder negative Flanke )
und schließlich das "IE" (Interupt Enable)
ein generelles
 _EINT();                              // Enable interrupts

Schau dir mal die Beispiele an!
http://cvs.sourceforge.net/viewcvs.py/mspgcc/examples/
Benni

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Habe gerade mich auch mit diesem Problem beschäftigt und im Anhang eine
erste funktionierende Versuchslösung.
Als Compiler wurde IAR Kickstart verwendet. An P4 hängen zur
Versuchsdurchführung
nur 7- Segment LED- anzeigen.
Mit freundlichen Grüßen
Wolfgang

von tmogli (Gast)


Lesenswert?

Vielen Dank !

Ich bin ja echt begeistert!!
Vielen Dank für die schnelle Hilfe

Werde jetzt wohl öfter mal hier sein

von CsGamer (Gast)


Lesenswert?

Hallo,
ich würde gern wissen wie man ein Programm schreibt.
Wie man exe Dataien schreibt und ob es programme für
sowas gibt.

Es wär net wenn mir das wer erklären könnt

von Benjamin Johann (Gast)


Lesenswert?

Ähh... ähmm...
Bist du sicher du bist hier richtig? Wir schreiben Programme für
Mikrocontroller - das sind dann sog. elf -Dateien, die Assemblercode
für den Prozessor enthalten. Da ist nix mit exe und so...
Aber ja: Dafür gibt es Programme: sog. compiler, die den C-Code in
Assembler umwandeln - aber eben in diesem Falle nur ür den
Mikrocontroller: MSPgcc oder AVRgcc - in diesem Falle. Noch fragen?
Benni

von OldBug (Gast)


Lesenswert?

Hallo zusammen!
Ja, ich weis, der Thread ist schon Steinalt, aber ich muss das jetzt
loswerden :-)

>interrupt [PORT1_VECTOR] void irgendein_name(void)

Da das hier das *-gcc Forum ist, ist diese Deklaration falsch.

interrupt (PORT1_VECTOR) void irgendein_name(void)

So deklariert man ISRs für den msp430-gcc.

Gruß,
Patrick...

von linus (Gast)


Lesenswert?

Die Definition einer Interruptroutine für den msp430-gcc ist so richtig. 
Man muss lediglich noch #include <signals.h> hinzufügen und schon 
funktioniert es.
Interessant ist auch die Headerdatei <isr_compat.h>, die das Makro 
ISR(int, int) anbietet, welches dann für die verschiedenen compiler 
aufbereitet wird, Beispiel:
ISR(WDT, watchdog_timer)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du hast soeben einen fünfeinhalb Jahre alten Thread ausgebuddelt. 
Gratuliere.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.