Forum: Mikrocontroller und Digitale Elektronik Interrupt Auslösung aber wiso


von m. S. (marek)


Lesenswert?

Hallo ich beschäftige mich gerade mit dem MPS430F1611 DEVELOPMENT BOARD 
von Olimex. Ich probiere gerade folgende Beispiel von Ti zu verstehen.

#include  <msp430f1611.h>
static char string1[] = { "Hello World\r\n" };
char i;
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog
  P3SEL = 0x30;                             // P3.3,4 = USART0 TXD/RXD

  ME1 |= UTXE0 + URXE0;                     // Enabled USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character, SWRST=1
  UTCTL0 |= SSEL0;                          // UCLK = ACLK
  UBR00 = 0x03;                             // 9600 from 1Mhz
  UBR10 = 0x00;                             //
  UMCTL0 = 0x4A;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state 
machine
  IE1 |= URXIE0 + UTXIE0;                   // Enable USART0 RX/TX 
interrupt
  IFG1 &= ~UTXIFG0;                         // Clear inital flag on POR

  _BIS_SR(LPM3_bits + GIE);                 // Enter LPM3 w/ interrupt
}
// UART0 TX ISR
#pragma vector=USART0TX_VECTOR
__interrupt void usart0_tx (void)
{
  if (i < sizeof string1-1)
    TXBUF0 = string1[i++];
}
// UART0 RX ISR
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  if (RXBUF0 == 'u')                        // 'u' received?
  {
    i = 0;
    TXBUF0 = string1[i++];
  }
}

Ich benutze dafür IAR Embedded Worckbanch (Kickstarversion) und den 
Docklight als Empfangseinheit über die RS 232 Schnitstelle. Wie aus dem 
Code ersichtlich ist erstmal ein großer teil nur Initialisierung. Wenn 
ich dann mit den Docklight dann ein u sende wie gefordert wird wie 
beschrieben ein Hello world zurück gesendet. Meine Frage ist aber warum 
wird das hello world zurück gesand für mich ist das nicht ersichtlich 
wiso das passiert. Das ein Interupt ausgelöst wird wenn ein u empfangen 
wird ist mir noch verständlich aber das rücksenden nicht. Danke schon 
mal für eure Hilfe.

mfg

Marek

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.