-/* 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 */
+}
+
+
+