This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problems with second serial port

Hi All,
I am using TI MSC1212Y5 8-bit micro controller. It has 2 serial ports. I am trying to operate them independently. I am able to transmit the data on both ports. But I am unable to receive the data from second serial port(UART1).
I have written simple interrupt driven routines for both ports. Also please tell me is it possible to use printf with both ports. Bcoz currently I am able to use printf with only one port. The code which I am using for the first problem above is as-

Thank you.

#include "reg1212.h"
#include "stdio.h"

#define SET 1
#define RESET 0

unsigned char ch_0,ch_1;
extern unsigned char port;

void init_port();
void send_out_0(unsigned char);
void init_port1();
void send_out_1(unsigned char out1);

unsigned char port;

void main()
{

init_port(); init_port1(); flag=0; // IE=0x60; // IP=0x60;

EA=1; while(1) {

//Read character from UART1 and Transmit over UART0 while(!ch_1); send_out_0(ch_1); ch_1=0;

//Read character from UART0 and Transmit over UART1 while(!ch_0); send_out_1(ch_0); ch_0=0;

}

}

void init_port()
{ P3DDRL|=0x07; //Define port3 for alternate fucntions P3.0=RXD and P3.1=TXD

SCON=0x50; //Rcv enable mode2 1 start bit 8Data bits 1 Stop bit. RCAP2H=0xFF; //To generate baud rate of 9600 ..clk 25Mhz RCAP2L=0xAD; T2CON=0x34; //timer2 enabled for Baud generation of both Rx and Tx ES0=1; //Enable serial0 INTR
// EA=1;
// TI_0=1; //To initiate first character Xmission

}

//----------------------------------------ISR for UART0------------------------------------------------------------

void serial_Intr_0(void)interrupt 4
{ if(RI_0==1) { ch_0=SBUF0; RI_0=0;

}

else if(TI_0==1) {

TI_0=0;

}
}

void send_out_0(unsigned char out)
{ SBUF0=out; while(TI_0==0); //Wait while char is Xmitted TI_0=0;
}

void init_port1()
{ P1DDRL|=0x70; SCON1=0x50; TH1=0XEC; //9600 Baud rate CKCON|=0x10; TMOD|=0X20; //Timer1 mode 2 TR1=1; ES1=1;
// TI_1=1;
// EA=1;

}

void send_out_1(unsigned char out1)
{

SBUF1=out1; while(TI_1==0); //Wait while char is Xmitted TI_1=0;

}

//-----------------------------------------ISR for Serial INTR 1(UART1)--------------------------------------------------
void serial_Intr_1(void)interrupt 7
{

if(RI_1==1) { ch_1=SBUF1; RI_1=0;

}

else if(TI_1==1) { TI_1=0;

}
}

0