Forum: Mikrocontroller und Digitale Elektronik USCI Interrupt auf MSP430


von Reto (Gast)


Lesenswert?

Hallo Zusammen,

Ich versuche gerade ein MSP430F249 mit 3 SPI Schnittstellen zu 
betreiben. 2 Stück sind schon implementiert und funktionieren bestens. 
Der F249 hat 2 USCI Module mit jeweils 2 unabhängigen Schnittstellen. 
Somit muss ich jetzt für die nächste auf das 2. Submodul einer USCI 
zugreiffen.

Die Interrupts habe ich wie folgt eingebunden:
1
#pragma vector=USCIAB0RX_VECTOR
2
__interrupt void USCIB0RX_ISR(void)
3
{
4
    while (!(UC1IFG & UCB0TXIFG));            // USCI_B0 TX buffer ready?
5
    if (ADCcom_Buffer[ADCcom_cnt] != RDATAC)
6
    {
7
      ADCcom_cnt++;
8
      UCB0TXBUF = ADCcom_Buffer[ADCcom_cnt];
9
    }
10
    else
11
    {
12
      ADCcom_busy = false;
13
    }
14
}

Wie kann ich jetzt für das UCB1 Modul einen Interrupt generieren? Es 
scheint keinen separaten Vector dafür zu geben. Kann ich im Interrupt 
herausfinden welcher Teil des Moduls ihn gestarted hat?

Vielen Dank für eure Antworten.
Liebe Grüsse
Reto

von Max G. (l0wside) Benutzerseite


Lesenswert?

Reto schrieb:
> Wie kann ich jetzt für das UCB1 Modul einen Interrupt generieren? Es
> scheint keinen separaten Vector dafür zu geben. Kann ich im Interrupt
> herausfinden welcher Teil des Moduls ihn gestarted hat?

Ich bin jetzt zu faul, in den Family User´s Guide zu schauen. 
Typischerweise steht im Interrupt Vector die Ursache für den Interrupt. 
Daran sollte sich unterscheiden lassen, welche Schnittstelle sich 
gemeldet hat.

Grüße in die Schweiz,

Max

von Rashhed (Gast)


Lesenswert?

#pragma vector=USCIAB1RX_VECTOR
__interrupt void USCI1RX_ISR(void)
{

}

Sollte doch so gehen !

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.