2 #include <lpc21xx.h>
\r
4 #include <system_def.h>
9 #define UART_DLAB 0x80
\r
12 void init_uart0(int baudrate, char bits, char stopbit, char parit_en, char parit_mode )
\r
15 int pom , vala, valb;
\r
17 PINSEL0 |= ( PINSEL_1<< 0) | ( PINSEL_1 << 2);
\r
19 U0LCR =UART_DLAB | bits | stopbit | parit_en | parit_mode; // nastaven� datov�ho slova na 8 bit� a jeden stop bit bez parity, nastaven� DLAB na log "1"
\r
22 pom = (CPU_APB_HZ)/(16 * baudrate);
\r
24 vala = (CPU_APB_HZ)/(16 * pom);
\r
25 valb = (CPU_APB_HZ)/(16 * (pom + 1));
\r
27 vala = baudrate - vala;
\r
28 valb = baudrate - valb;
\r
30 if (vala < 0) vala *= -1;
\r
31 if (valb < 0) valb *= -1;
\r
33 if (vala > valb) pom += 1;
\r
35 U0DLL = (char) (pom & 0xFF);
\r
36 U0DLM = (char) ((pom >> 8) & 0xFF); // nastaven� p�edd�li�ky na 57600Bd
\r
38 U0LCR &= ~UART_DLAB; // vynulov�n� DLAB
\r
43 unsigned char uart1GetCh(void) // Nuceny prijem z uart1
\r
45 while (!(U1LSR & 1)); // cekani na prichozi byte
\r
46 return (unsigned char)U1RBR; // navraceni prijateho byte
\r
49 unsigned char uart0GetCh(void) // Nuceny prijem z uart1
\r
51 while (!(U0LSR & 1)); // cekani na prichozi byte
\r
52 return (unsigned char)U0RBR; // navraceni prijateho byte
\r
55 void uart1SendCh(char ch) // vyslani znaku na uart1
\r
57 while (!(U1LSR & 0x20)); // ceka na odeslani predchozich dat
\r
58 U1THR=ch; // odeslani Byte
\r
62 void uart0SendCh(char ch) // vyslani znaku na uart0
\r
64 while (!(U0LSR & 0x20)); // ceka na odeslani predchozich dat
\r
65 U0THR=ch; // odeslani Byte
\r
69 void init_uart1(int baudrate, char bits, char stopbit, char parit_en, char parit_mode )
\r
72 int pom , vala, valb;
\r
74 PINSEL0 |= ( PINSEL_1<< 16) | ( PINSEL_1 << 18);
\r
76 U1LCR =UART_DLAB | bits | stopbit | parit_en | parit_mode; // nastaven� datov�ho slova na 8 bit� a jeden stop bit bez parity, nastaven� DLAB na log "1"
\r
79 pom = (CPU_APB_HZ)/(16 * baudrate);
\r
81 vala = (CPU_APB_HZ)/(16 * pom);
\r
82 valb = (CPU_APB_HZ)/(16 * (pom + 1));
\r
84 vala = baudrate - vala;
\r
85 valb = baudrate - valb;
\r
87 if (vala < 0) vala *= -1;
\r
88 if (valb < 0) valb *= -1;
\r
90 if (vala > valb) pom += 1;
\r
92 U1DLL = (char) (pom & 0xFF);
\r
93 U1DLM = (char) ((pom >> 8) & 0xFF); // nastaven� p�edd�li�ky na 57600Bd
\r
95 U1LCR &= ~UART_DLAB; // vynulov�n� DLAB
\r