Forum: Mikrocontroller und Digitale Elektronik Interrupt Problem msp430


von crisse23 (Gast)


Lesenswert?

Hallo Leute,

ich beschäftige mich im Moment damit, bei meinen MSP430F169 die 
Datenübertragung zu einem DAC mittels I2C herzustellen. Dafür habe ich 
auch auf der TI-Seite einen passenden Quellecode gefunden und habe den 
größten Teils übernommen und nur geringe Änderungen vorgenommen.

Das Problem ist, dass bei der Definition des Interrupts ein Fehler 
gemeldet wird.

Definition des Interrupts:

// I2C Interrupt Vector (I2CIV) handler
#pragma vector=USART0TX_VECTOR
__interrupt void USART0 (void)

genauso steht es im Dokument.

Als Fehlermeldung, erhalte ich jetzt:

syntax error befor "void"

Wenn ich "__interrupt" löschen, dann bekomme ich keine Fehlermeldung 
mehr. Aber ich bin mir nicht sicher, ob man das einfach machen 
darf(sorry Anfäger).

Kann ich das einfach weglassen oder handel ich mir dann einen anderen 
Fehler ein?? Was muss ich statt dessen machen? Ich habe schon einige 
Befehle ausprobiert und auch hier im Forum gesucht, aber leider noch 
nichts gescheites hinbekommen.

Schon mal danke für die Hilfe

Gruß chrisse

von Dennis (Gast)


Lesenswert?

Compiler?

von crisse23 (Gast)


Lesenswert?

Ohh sorry ganz vergessen:

mspgcc GCC + eclipse

von Dennis (Gast)


Lesenswert?

crisse23 schrieb:
> mspgcc GCC + eclipse

OK, sorry, dann kann ich dir nicht helfen, arbeite nur mit IAR. Hatte 
den Eclipse aber früher auch mal am Laufen und meine mich dran erinnern 
zu können, dass ich das selbe Problem hatte. Da gab es eine andere 
Bezeichnung, glaube ich. Weiß aber auch nicht, ob es nicht das #pragma 
war. Hast du denn die Examples für den CCE angeguckt? Weil dein Beispiel 
passt zum IAR.

von Christian R. (supachris)


Lesenswert?

Der GCC verlangt eine andere Syntax für die Interrupts: 
http://mspgcc.sourceforge.net/manual/x918.html und nicht vergessen, die 
signal.h zu inkludieren.

von crisse23 (Gast)


Lesenswert?

super hat geklappt.

Danke

Gruß chrisse

von vivien (Gast)


Lesenswert?

Hallo,

ich hab auch das Problem, daß es mir nicht erfolg ist
dem MSP430-gcc beizubringen "hier kommt ne ISR"

__interrupt void usciab_tx();
USCIAB0TX_ISR(usciab_tx)
__interrupt void usciab_tx(void)
{
  if (TXByteCtr)                            // Check TX byte counter
  {
    UCB0TXBUF = *PTxData++;                 // Load TX buffer
    TXByteCtr--;                            // Decrement TX byte counter
  }
  else
  {
    UCB0CTL1 |= UCTXSTP;                    // I2C stop condition
    IFG2 &= ~UCB0TXIFG;                     // Clear USCI_B0 TX int flag
    __bic_SR_register_on_exit(CPUOFF);      // Exit LPM0
  }
}
funktionniert auch nicht:

Fehlermeldung: syntax error before "_interrupt"
Fehlermeldung: syntax error before "void"

Kann mir jemand helfen ? Und wo findet man denn solche Informationen ?
und ich habe schon den Link angeklickt sollte ich die Header Datei an
mein Programm einfach hinzufügen?
BG.

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.