removed some uart strings and functions
[pyfrprog.git] / pkernel / uart.c
1 #include "mb91465k.h"
2
3 #pragma section CODE=IRAM,attr=CODE
4
5 void InitUart4(void)
6 {
7         // Initialize UART asynchronous mode
8         BGR04 = 416; // 38400 Baud @ 16MHz
9         SCR04 = 0x17; // 8N1
10         SMR04 = 0x0d; // enable SOT3, Reset, normal mode
11         SSR04 = 0x00; // LSB first
12         PFR19 = (PFR19 & 0xFC) | 0x03; // enable UART: SIN,SOT for async. transfer
13         EPFR19 = 0x00; // enable UART
14 }
15
16 void Putch4(unsigned char ch) /* sends a char */
17 {
18         while (SSR04_TDRE == 0); /* wait for transmit buffer empty */
19         TDR04 = ch; /* put ch into buffer */
20 }
21
22 unsigned char Getch4(void) /* waits for and returns incomming char      */
23 {
24         volatile unsigned ch;
25         for(;;) {
26                 while(SSR04_RDRF == 0) /* wait for data received */
27                         HWWD = 0x00;
28                 ch = RDR04;
29
30                 if ((SSR04 & 0xE0) != 0) { /* Check for errors PE, ORE, FRE */
31                         SCR04_CRE = 1; /* Clear error flags */
32                 } else {
33                         return (ch); /* return char*/
34                 }
35         }
36 }
37