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); }
>> 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?
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??
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.