mikrocontroller.net

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


Autor: m. S. (marek)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.