
#define  SYS_CLK   12000000L           // Tcyc = 1/12MHz = 83ns

/*
| Baud rate to UART 1 baud rate generator reload conversion. 
|
|                       SYSCLK
| Reload = 65536 - ------------------  
|                  PRE * 2 * baudrate
|
| Assume SYSCLK is 12MHz and Baud Rate Prescaler Select == 11 (/1).

*/
#define  NUM_BAUDRATES  9

static U16 code BaudParams[NUM_BAUDRATES] =
   {
   65536 - (SYS_CLK/(1*2*1200)),       // 0xEC78 (exact)
   65536 - (SYS_CLK/(1*2*2400)),       // 0xF63C (exact)
   65536 - (SYS_CLK/(1*2*4800)),       // 0xFB1E (exact)
   65536 - (SYS_CLK/(1*2*9600)),       // 0xFD8F (exact)
   65536 - (SYS_CLK/(1*2*19200)),      // 0xFEC7 (0.16%) // COMPILER BUG? Gives 0x01BA. :(
   65536 - (SYS_CLK/(1*2*38400)),      // 0xFF64 (0.16%)
   65536 - (SYS_CLK/(1*2*57600)),      // 0xFF98 (0.16%)
   65536 - (SYS_CLK/(1*2*115200)),     // 0xFFCC (0.16%)
   65536 - (SYS_CLK/(1*2*31250))       // 0xFF40 (exact)
   };

#if(65536 - (SYS_CLK/(1*2*19200)) != 0xFEC7)
   #warning "Compiler preprocessor BUG at UART1 Baud rate 19200!"
#endif
