dos2unix on all files + tab madness
[pyfrprog.git] / uart.c
diff --git a/uart.c b/uart.c
index f4ccfb77a29a8bd3ddf161d3181f3d2e33814dd1..0c528ddfc1922afe4be1ecf225b086b9d45cc8a9 100644 (file)
--- a/uart.c
+++ b/uart.c
-/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */\r
-/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */\r
-/* ELIGIBILITY FOR ANY PURPOSES.                                             */\r
-/*                 (C) Fujitsu Microelectronics Europe GmbH                  */\r
-/*---------------------------------------------------------------------------*/\r
-\r
-#include "mb91465k.h"\r
-\r
-const char ASCII[] = "0123456789ABCDEF";\r
-\r
-void InitUart4(void)\r
-{\r
-  // Initialize UART asynchronous mode\r
-  // BGR04 = 1666; //  9600 Baud @ 16MHz\r
-     BGR04 = 832;  // 19200 Baud @ 16MHz\r
-  // BGR04 = 416;  // 38400 Baud @ 16MHz\r
-\r
-  // BGR04 = 2083; //  9600 Baud @ 20MHz\r
-  // BGR04 = 1041; // 19200 Baud @ 20MHz\r
-  // BGR04 = 520;  // 38400 Baud @ 20MHz\r
-\r
-  // BGR04 = 2499; //  9600 Baud @ 24MHz\r
-  // BGR04 = 1249; // 19200 Baud @ 24MHz\r
-  // BGR04 = 624;  // 38400 Baud @ 24MHz  \r
-  SCR04 = 0x17;    // 8N1\r
-  SMR04 = 0x0d;    // enable SOT3, Reset, normal mode\r
-  SSR04 = 0x00;    // LSB first\r
-  PFR19 = (PFR19 & 0xFC) | 0x03;       // enable UART: SIN,SOT for async. transfer\r
-  EPFR19 = 0x00;   // enable UART\r
-}\r
-\r
-void Putch4(char ch)         /* sends a char */\r
-{\r
-  while (SSR04_TDRE == 0);    /* wait for transmit buffer empty        */\r
-  TDR04 = ch;                 /* put ch into buffer                    */\r
-}\r
-\r
-char Getch4(void)            /* waits for and returns incomming char   */\r
-{\r
-  volatile unsigned ch;\r
-\r
-  for(;;)\r
-  {\r
-  \r
-     while(SSR04_RDRF == 0)     /* wait for data received      */\r
-       HWWD = 0x00; \r
-  \r
-     ch = RDR04;\r
-  \r
-     if ((SSR04 & 0xE0) != 0)    /* Check for errors PE, ORE, FRE */\r
-     {\r
-         SCR04_CRE = 1;            /* Clear error flags        */\r
-     }\r
-     else   \r
-        return (ch);            /* return char                         */\r
-  }\r
-}\r
-\r
-\r
-void Puts4(const char *Name2)  /* Puts a String to UART */\r
-{\r
-  volatile int i,len;\r
-   \r
-  len = strlen(Name2);\r
-       \r
-  for (i=0; i<strlen(Name2); i++)   /* go through string                     */\r
-  {\r
-    if (Name2[i] == 10)\r
-      Putch4(13);\r
-    Putch4(Name2[i]);              /* send it out                           */\r
-  }\r
-}\r
-\r
-\r
-char Echo4(void)        /* Echo UART and return ch */\r
-{\r
-  char ch;\r
-  \r
-  Puts4("UART 4 receive: ");      // send text to UART\r
-  ch = RDR04;                     // readout character              \r
-  Putch4(ch);                         // send character to UART                 \r
-  if (ch==13)  \r
-    Putch4(10);\r
-\r
-  return (ch);\r
-}\r
-\r
-void Puthex4(unsigned long n, unsigned char digits)\r
-{\r
-   unsigned char digit=0,div=0,i;\r
-\r
-   div=(4*(digits-1)); /* init shift divisor */\r
-   for (i=0;i<digits;i++)\r
-   {\r
-     digit = ((n >> div)&0xF); /* get hex-digit value */\r
-        Putch4(digit + ((digit < 0xA) ? '0' : 'A' - 0xA));\r
-     div-=4;                   /* next digit shift */\r
-   }\r
-}\r
-\r
-void Putdec4(unsigned long x, int digits)\r
-{\r
-       int i;\r
-       char buf[10],sign=1;\r
-       \r
-       if (digits < 0) {     /* should be print of zero? */\r
-         digits *= (-1);\r
-         sign =1;\r
-       }  \r
-       buf[digits]='\0';                       /* end sign of string */\r
-       \r
-       for (i=digits; i>0; i--) {\r
-               buf[i-1] = ASCII[x % 10];\r
-               x = x/10;\r
-       }\r
-\r
-    if ( sign )\r
-    {\r
-         for (i=0; buf[i]=='0'; i++) { /* no print of zero */\r
-               if ( i<digits-1)\r
-                       buf[i] = ' ';\r
-         }             \r
-    }\r
-    \r
-       Puts4(buf);                                     /* send string */\r
-}\r
-\r
-\r
-\r
+/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
+/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
+/* ELIGIBILITY FOR ANY PURPOSES.                                             */
+/*                 (C) Fujitsu Microelectronics Europe GmbH                  */
+/*---------------------------------------------------------------------------*/
+
+#include "mb91465k.h"
+
+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  
+  SCR04 = 0x17;    // 8N1
+  SMR04 = 0x0d;    // enable SOT3, Reset, normal mode
+  SSR04 = 0x00;    // LSB first
+  PFR19 = (PFR19 & 0xFC) | 0x03;       // enable UART: SIN,SOT for async. transfer
+  EPFR19 = 0x00;   // enable UART
+}
+
+void Putch4(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   */
+{
+  volatile unsigned ch;
+
+  for(;;)
+  {
+  
+     while(SSR04_RDRF == 0)     /* wait for data received      */
+       HWWD = 0x00; 
+  
+     ch = RDR04;
+  
+     if ((SSR04 & 0xE0) != 0)    /* Check for errors PE, ORE, FRE */
+     {
+         SCR04_CRE = 1;            /* Clear error flags        */
+     }
+     else   
+        return (ch);            /* return char                         */
+  }
+}
+
+
+void Puts4(const char *Name2)  /* Puts a String to UART */
+{
+  volatile int i,len;
+   
+  len = strlen(Name2);
+       
+  for (i=0; i<strlen(Name2); i++)   /* go through string                     */
+  {
+    if (Name2[i] == 10)
+      Putch4(13);
+    Putch4(Name2[i]);              /* send it out                           */
+  }
+}
+
+
+char Echo4(void)        /* Echo UART and return ch */
+{
+  char ch;
+  
+  Puts4("UART 4 receive: ");      // send text to UART
+  ch = RDR04;                     // readout character              
+  Putch4(ch);                         // send character to UART                 
+  if (ch==13)  
+    Putch4(10);
+
+  return (ch);
+}
+
+void Puthex4(unsigned long n, unsigned char digits)
+{
+   unsigned char digit=0,div=0,i;
+
+   div=(4*(digits-1)); /* init shift divisor */
+   for (i=0;i<digits;i++)
+   {
+     digit = ((n >> div)&0xF); /* get hex-digit value */
+        Putch4(digit + ((digit < 0xA) ? '0' : 'A' - 0xA));
+     div-=4;                   /* next digit shift */
+   }
+}
+
+void Putdec4(unsigned long x, int digits)
+{
+       int i;
+       char buf[10],sign=1;
+       
+       if (digits < 0) {     /* should be print of zero? */
+         digits *= (-1);
+         sign =1;
+       }  
+       buf[digits]='\0';                       /* end sign of string */
+       
+       for (i=digits; i>0; i--) {
+               buf[i-1] = ASCII[x % 10];
+               x = x/10;
+       }
+
+    if ( sign )
+    {
+         for (i=0; buf[i]=='0'; i++) { /* no print of zero */
+               if ( i<digits-1)
+                       buf[i] = ' ';
+         }             
+    }
+    
+       Puts4(buf);                                     /* send string */
+}
+
+
+