Hello everybody !
I am a beginer in MSP430 programing... I have juste finished to code a sofware that generate a a frame and send it to a PC using USART1 (RS232)... Not an hard work :p
Now I would like to receive frames from USART0 and then to Send these frame using USART1... for example :
TXBUF1=3DRXBUF0; (every RX1 interrupt.)
Anyway I have try something : Initialize USART0 and USART1 like this :
#include #include
unsigned char *p2ud; // Global
void main(void) { // USART1 init (transmission) WDTCTL =3D WDTPW + WDTHOLD; // Stop Watchdog P3SEL |=3D 0xC0; // P3.6,7 UART1 BCSCTL1 |=3D XTS; // HF Quartz BCSCTL2 |=3D SELM_3; // MCLK =3D LFXT1 ME2 |=3D UTXE1; // Enable USART1 TX UCTL1 |=3D CHAR; // 8-bit chararcters UTCTL1 |=3D SSEL0; // UCLK =3D ACLK UBR01 =3D 0x1A; // 3MHz/115200 =3D 26.04 -
UBR11 =3D 0x00; UMCTL1 =3D 0x00; // Modulation UCTL1 &=3D ~SWRST; // USART State machine init IE2 |=3D UTXIE1; // Enable TX interrupt.
//USART0 init (reception) WDTCTL =3D WDTPW + WDTHOLD; // Arr=EAte le Watchdog P3SEL |=3D 0x30; // P3.4,5 UART0 BCSCTL1 |=3D XTS; // HF Quartz BCSCTL2 |=3D SELM_3; // MCLK =3D LFXT1 ME1 |=3D URXE0; // Enable USART0 RX UCTL0 |=3D CHAR; UTCTL0 |=3D SSEL0; // UCLK =3D ACLK UBR00 =3D 0x1A; // 3MHz/115200 =3D 26.04 ->
26 -> h1A UBR10 =3D 0x00; UMCTL0 =3D 0x00; // Modulation UCTL0 &=3D ~SWRST; // USART State machine init IE1 |=3D URXIE0; // Enable TX interrupt._BIS_SR(LPM0_bits + GIE); }
// ISR
#pragma vector=3DUART1TX_VECTOR __interrupt void usart1_tx (void) { _NOP(); }
#pragma vector=3DUART0RX_VECTOR __interrupt void usart0_rx (void) { TXBUF1=3DRXBUF0; _NOP(); }
.=2E. it doesn't work but i'm not surprised... :p I don't if it is the right way to initialize the 2 UART ports...
Is anybody could help me to reach it ?
Thanks
Bobish