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