I am trying to use LabVIEW to read the serial output from the simple ISR-Driven Serial I/O V2 Example (http://www.keil.com/download/docs/200.asp) used on a C8051F300 MCU. I know my LabVIEW can acquire string or character data from the serial port. The C code compiles without any errors or warnings and I have included the proper header files.
void main (void) { com_initialize (); /* initialize interrupt driven serial I/O */ com_baudrate (1200); /* setup for 1200 baud */ EA = 1; /* Enable Interrupts */ printf ("Interrupt-driver Serial I/O Example\r\n\r\n"); while (1) { unsigned char c; printf ("Press a key.\r\n"); c = getchar (); printf ("\r\n"); printf ("You pressed '%c'.\r\n\r\n", c); } }
void com_baudrate ( unsigned baudrate) { /*------------------------------------------------ Clear transmit interrupt and buffer. ------------------------------------------------*/ TI = 0; /* clear transmit interrupt */ t_in = 0; /* empty transmit buffer */ t_out = 0; /*------------------------------------------------ Set timer 1 up as a baud rate generator. ------------------------------------------------*/ TR1 = 0; /* stop timer 1 */ ET1 = 0; /* disable timer 1 interrupt */ PCON |= 0x80; /* 0x80=SMOD: set serial baudrate doubler */ TMOD &= ~0xF0; /* clear timer 1 mode bits */ TMOD |= 0x20; /* put timer 1 into MODE 2 */ TH1 = (unsigned char) (256 - (XTAL / (16L * 12L * baudrate))); TR1 = 1; /* start timer 1 */ }
TH1 = (unsigned char) (256 - (24500000 / (16L * 12L * baudrate)));