www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART-Echo am MSP430F1232


Autor: Kim Tsch (kimtsch)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich versuche eine MIDI Signal (asynchron, seriell) durch einen MSP zu
modifizieren. Dafür muss ich das Signal erstmal ein den MSP bekommen
und dann wieder ausgeben. Mit diesem gefundenem Beispiel soltte eine
Echo des Signal vom PIN 3.5 auf PIN 3.4 zu erzeugen sein. Leider kommt
keine Echo durch. Hat jemand eine Ahnung wo der Fehler steckt??

der KIM


void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;             // watchdog - Timer anhalten
  UCTL0  = CHAR;                        //8 bit charakter
  UTCTL0 = SSEL0;                       //UCLK = ACLK
  ME2 |= UTXE0 + URXE0;                 //enable USART0 TXD/RXD
  IE2 |= URXIE0;                        //enable USART0 RX interrupt
  P3SEL |=0x30;                         //P3.4,5 = USART0 TXD/RXD
  P3DIR |=0x10;                         //P3.4 output
  _EINT();

  for (;;)                              // Endlosschleife


   {
   _BIS_SR(LPM3_bits);
   while ((IFG2 & UTXIFG0) != UTXIFG0);
  TXBUF0 = RXBUF0 ;
   }
}

#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx(void)
{
_BIC_SR_IRQ(LPM3_bits);
}

Autor: Kim Tsch (kimtsch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry habe vergessen, dass das signal 24bit lang ist!!

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>  UCTL0  = CHAR;                        //8 bit charakter

Wenn das Signal 24 Bit lang ist, klappt das ja nicht. Eventuell würde
es mit der SPI-Hardware im MSP gehn, im UART Modus wird das so nix. Hat
MIDI denn überhaupt irgendwelche Start/Stopp Bits die zu einer UART
passen würden?

Autor: Kim Tsch (kimtsch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort!!

Ein MIDI Signal besteht aus 3Byte.
Kommt kein Signal liegt die Leitung auf HIGH, das Startbit ist immer
LOW.
Der UART kann wohl nur byteweise einlesen??

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, der UART ist ja asynchron, er hat keine Takt- und keine
CS-Leitung, muss also irgendwie Start und Stop einer Übertragung selbst
erkennen. Das gescheiht durch Start- und Stoppbits. Geht wohl auch ohne
in bestimmten Modi, aber der UART im MSP kann nur 7 oder 8 Bit soweit
ich das verstanden hab.

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.