w00t, wtf IT WORKS NOW!!!1
[pyfrprog.git] / pkernel / uart.c
index 0c528ddfc1922afe4be1ecf225b086b9d45cc8a9..256500ef6bba12dc14300160bccc720a520c6d8a 100644 (file)
@@ -6,22 +6,15 @@
 
 #include "mb91465k.h"
 
+#pragma section CODE=IRAM,attr=CODE
 const char ASCII[] = "0123456789ABCDEF";
 
 void InitUart4(void)
 {
   // Initialize UART asynchronous mode
   // BGR04 = 1666; //  9600 Baud @ 16MHz
-     BGR04 = 832;  // 19200 Baud @ 16MHz
-  // BGR04 = 416;  // 38400 Baud @ 16MHz
-
-  // BGR04 = 2083; //  9600 Baud @ 20MHz
-  // BGR04 = 1041; // 19200 Baud @ 20MHz
-  // BGR04 = 520;  // 38400 Baud @ 20MHz
-
-  // BGR04 = 2499; //  9600 Baud @ 24MHz
-  // BGR04 = 1249; // 19200 Baud @ 24MHz
-  // BGR04 = 624;  // 38400 Baud @ 24MHz  
+  // BGR04 = 832;  // 19200 Baud @ 16MHz
+  BGR04 = 416;  // 38400 Baud @ 16MHz
   SCR04 = 0x17;    // 8N1
   SMR04 = 0x0d;    // enable SOT3, Reset, normal mode
   SSR04 = 0x00;    // LSB first
@@ -29,13 +22,13 @@ void InitUart4(void)
   EPFR19 = 0x00;   // enable UART
 }
 
-void Putch4(char ch)         /* sends a char */
+void Putch4(unsigned char ch)         /* sends a char */
 {
   while (SSR04_TDRE == 0);    /* wait for transmit buffer empty        */
   TDR04 = ch;                 /* put ch into buffer                    */
 }
 
-char Getch4(void)            /* waits for and returns incomming char   */
+unsigned char Getch4(void)            /* waits for and returns incomming char  */
 {
   volatile unsigned ch;
 
@@ -110,7 +103,7 @@ void Putdec4(unsigned long x, int digits)
        buf[digits]='\0';                       /* end sign of string */
        
        for (i=digits; i>0; i--) {
-               buf[i-1] = ASCII[x % 10];
+               buf[i-1] = ASCII[x % 10]; // + '0' enough? :o
                x = x/10;
        }
 
@@ -125,5 +118,3 @@ void Putdec4(unsigned long x, int digits)
        Puts4(buf);                                     /* send string */
 }
 
-
-