Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LGstaandart by
Diff: host/Source/App/uart_m.c
- Revision:
- 23:12e6183f04d4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/host/Source/App/uart_m.c Wed Feb 03 10:44:42 2016 +0300
@@ -0,0 +1,850 @@
+/****************************************Copyright (c)****************************************************
+** http://www.PowerAVR.com
+** http://www.PowerMCU.com
+**--------------File Info---------------------------------------------------------------------------------
+** File name: uart.c
+** Last modified Date: 2010-05-12
+** Last Version: V1.00
+** Descriptions:
+**
+**--------------------------------------------------------------------------------------------------------
+** Created by: PowerAVR
+** Created date: 2010-05-10
+** Version: V1.00
+** Descriptions: ±àдʾÀý´úÂë
+**
+*-------------------------------------------------------------------------------------------------------- YJVTHF
+
+*********************************************************************************************************/
+
+#include "lpc17xx.h" /* LPC17xx definitions */
+#include "uart_m.h"
+//#include "global.h"
+
+
+//#define FPCLK (100000000) //ñ pll
+//#define FPCLK (12000000) //ñ pll
+#define FOSC 12000000 /* Õñµ´Æ÷ƵÂÊ */
+#define FCCLK (FOSC * 8) /* Ö÷ʱÖÓÆµÂÊ<=100Mhz */
+ /* FOSCµÄÕûÊý±¶ */
+#define FCCO (FCCLK * 3) /* PLLƵÂÊ(275Mhz~550Mhz) */
+
+//#define FPCLK (FCCLK / 4) //ñ pll
+
+
+#define FPCLK (100000000 / 4) //ñ pll
+
+//#define FPCLK (25000000) //ñ pll
+
+
+
+
+int UART0_BPS = 9600 ; /* ´®¿Ú0ͨÐŲ¨ÌØÂÊ */
+int UART1_BPS = 4800; /* ´®¿Ú0ͨÐŲ¨ÌØÂÊ */
+int UART2_BPS = 9600 ; /* ´®¿Ú0ͨÐŲ¨ÌØÂÊ */
+int UART3_BPS = 19200 ; /* ´®¿Ú0ͨÐŲ¨ÌØÂÊ */
+
+#define UART_LCR_ODD 0x0b
+#define UART_LCR_EVEN 0x1b
+
+int UART_LCR = UART_LCR_EVEN ;
+
+char InCon[1024];
+char OutCon[1024];
+
+unsigned int ConInPnt = 0;
+unsigned int ConInCur = 0;
+unsigned int ConOutPnt = 0;
+unsigned int ConOutCur = 0;
+
+
+char InCon1[1024];
+char OutCon1[1024];
+
+unsigned int ConInPnt1 = 0;
+unsigned int ConInCur1 = 0;
+unsigned int ConOutPnt1 = 0;
+unsigned int ConOutCur1 = 0;
+
+
+char InCon2[1024];
+char OutCon2[1024];
+
+unsigned int ConInPnt2 = 0;
+unsigned int ConInCur2 = 0;
+unsigned int ConOutPnt2 = 0;
+unsigned int ConOutCur2 = 0;
+
+char InCon3[1024];
+char OutCon3[1024];
+
+unsigned int ConInPnt3 = 0;
+unsigned int ConInCur3 = 0;
+unsigned int ConOutPnt3 = 0;
+unsigned int ConOutCur3 = 0;
+
+
+
+unsigned int InCon2M[16];
+unsigned int OutCon2M[16];
+
+unsigned int ConInPnt2M = 0;
+unsigned int ConInCur2M = 0;
+unsigned int ConOutPnt2M = 0;
+unsigned int ConOutCur2M = 0;
+
+unsigned int InCon3M[16];
+unsigned int OutCon3M[16];
+
+unsigned int ConInPnt3M = 0;
+unsigned int ConInCur3M = 0;
+unsigned int ConOutPnt3M = 0;
+unsigned int ConOutCur3M = 0;
+
+
+
+
+
+unsigned int OutBufConCount = 0;
+unsigned int OutBufCon1Count = 0;
+unsigned int OutBufCon2Count = 0;
+unsigned int OutBufCon3Count = 0;
+
+
+
+/*********************************************************************************************************
+** Function name: UART0_Init
+** Descriptions: °´Ä¬ÈÏÖµ³õʼ»¯´®¿Ú0µÄÒý½ÅºÍͨѶ²ÎÊý¡£ÉèÖÃΪ8λÊý¾Ý룬1λֹͣ룬ÎÞÆæÅ¼Ð£Ñé
+** input parameters: ÎÞ
+** output parameters: ÎÞ
+** Returned value: ÎÞ
+*********************************************************************************************************/
+void UART0_Init (void)
+{
+ uint16_t usFdiv;
+ LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0) */
+ LPC_UART0->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+
+ // LPC_UART0->FDR = 0x00000085; // cñì ïäô LPC17xx-User-Manual_0[1].05 íà ñòð 311
+ //óìíîæèòåëü íà 8 äåëèòåëü íà 5
+// usFdiv = 4;
+ usFdiv = (FPCLK / 16) / UART0_BPS; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART0->DLM = usFdiv / 256;
+ LPC_UART0->DLL = usFdiv % 256;
+ LPC_UART0->LCR = 0x03; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART0->FCR = 0x07;
+}
+void UART1_Init_temp (void)
+{
+ uint16_t usFdiv;
+ LPC_PINCON->PINSEL4 |= (2 << 0); /* Pin P2.0 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL4 |= (2 << 2); /* Pin P2.1 used as RXD0 (Com0) */
+ LPC_UART1->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ usFdiv = (FPCLK / 16) / UART1_BPS; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART1->DLM = usFdiv / 256;
+ LPC_UART1->DLL = usFdiv % 256;
+ LPC_UART1->LCR = 0x03; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART1->FCR = 0x07;
+}
+
+void UART2_Init (void)
+{
+ uint16_t usFdiv;
+ LPC_PINCON->PINSEL0 |= (1 << 20); /* Pin P0.10 used as TXD2 (Com2) */
+ LPC_PINCON->PINSEL0 |= (1 << 22); /* Pin P0.11 used as RXD2 (Com2) */
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<24); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+
+ LPC_UART2->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ usFdiv = (FPCLK / 16) / 9600; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART2->DLM = usFdiv / 256;
+ LPC_UART2->DLL = usFdiv % 256;
+ LPC_UART2->LCR = 0x03; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART2->FCR = 0x07;
+}
+
+
+void UART3_Init (void)
+{
+ uint16_t usFdiv;
+ /* UART0 */
+ LPC_PINCON->PINSEL1 |= (3 << 18); /* Pin P0.25 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL1 |= (3 << 20); /* Pin P0.26 used as RXD0 (Com0) */
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<25); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+
+ LPC_UART3->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ usFdiv = (FPCLK / 16) / UART3_BPS; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART3->DLM = usFdiv / 256;
+ LPC_UART3->DLL = usFdiv % 256;
+ LPC_UART3->LCR = UART_LCR;
+ LPC_UART3->FCR = 0x07;
+}
+
+void UART2_InitSet (unsigned int speed, unsigned int SetLsr)
+{
+ uint16_t usFdiv;
+
+ LPC_PINCON->PINSEL0 |= (1 << 20); /* Pin P0.10 used as TXD2 (Com2) */
+ LPC_PINCON->PINSEL0 |= (1 << 22); /* Pin P0.11 used as RXD2 (Com2) */
+
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<24); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+
+ LPC_UART2->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ usFdiv = (FPCLK / 16) / speed; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART2->DLM = usFdiv / 256;
+ LPC_UART2->DLL = usFdiv % 256;
+ LPC_UART2->LCR = SetLsr; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART2->FCR = 0x07;
+
+}
+
+
+void UART3_InitSet (unsigned int speed, unsigned int SetLsr)
+{
+ uint16_t usFdiv;
+ /* UART0 */
+ LPC_PINCON->PINSEL1 |= (3 << 18); /* Pin P0.25 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL1 |= (3 << 20); /* Pin P0.26 used as RXD0 (Com0) */
+
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<25); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+ LPC_UART3->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ usFdiv = (FPCLK / 16) / speed; /* ÉèÖò¨ÌØÂÊ */
+ LPC_UART3->DLM = usFdiv / 256;
+ LPC_UART3->DLL = usFdiv % 256;
+ LPC_UART3->LCR = SetLsr;
+ LPC_UART3->FCR = 0x07;
+}
+
+void UART_InitSet (unsigned int Num,unsigned int Speed, unsigned int SetLsr)
+{
+ uint16_t usFdiv;
+
+// usFdiv = ((FPCLK / 16) / Speed) +1;
+ usFdiv = ((FPCLK / 4) / Speed) + 1 ;
+
+ if (Num == 0)
+ {
+ LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0) */
+ LPC_UART0->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ // LPC_UART0->FDR = 0x00000085; // cñì ïäô LPC17xx-User-Manual_0[1].05 íà ñòð 311
+ //óìíîæèòåëü íà 8 äåëèòåëü íà 5
+ // usFdiv = 4;
+ LPC_UART0->DLM = usFdiv / 256;
+ LPC_UART0->DLL = usFdiv % 256;
+ LPC_UART0->LCR = SetLsr; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART0->FCR = 0x07;
+ }
+ if (Num == 1)
+ {
+ LPC_PINCON->PINSEL4 |= (2 << 0); /* Pin P2.0 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL4 |= (2 << 2); /* Pin P2.1 used as RXD0 (Com0) */
+
+ LPC_UART1->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ LPC_UART1->DLM = usFdiv / 256;
+ LPC_UART1->DLL = usFdiv % 256;
+ LPC_UART1->LCR = SetLsr; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART1->FCR = 0x07;
+ }
+ if (Num == 2)
+ {
+ LPC_PINCON->PINSEL0 |= (1 << 20); /* Pin P0.10 used as TXD2 (Com2) */
+ LPC_PINCON->PINSEL0 |= (1 << 22); /* Pin P0.11 used as RXD2 (Com2) */
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<24); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+ LPC_UART2->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ LPC_UART2->DLM = usFdiv / 256;
+ LPC_UART2->DLL = usFdiv % 256;
+ LPC_UART2->LCR = SetLsr; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART2->FCR = 0x07;
+ }
+ if (Num == 3)
+ {
+ LPC_PINCON->PINSEL1 |= (3 << 18); /* Pin P0.25 used as TXD0 (Com0) */
+ LPC_PINCON->PINSEL1 |= (3 << 20); /* Pin P0.26 used as RXD0 (Com0) */
+ LPC_SC->PCONP = LPC_SC->PCONP|(1<<25); /*´ò¿ªUART2µçÔ´¿ØÖÆÎ» */
+ LPC_UART3->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */
+ LPC_UART3->DLM = usFdiv / 256;
+ LPC_UART3->DLL = usFdiv % 256;
+ LPC_UART3->LCR = SetLsr; /* Ëø¶¨²¨ÌØÂÊ */
+ LPC_UART3->FCR = 0x07;
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*********************************************************************************************************
+** Function name: UART0_SendByte
+** Descriptions: ´Ó´®¿Ú0·¢ËÍÊý¾Ý
+** input parameters: data: ·¢Ë͵ÄÊý¾Ý
+** output parameters: ÎÞ
+** Returned value: ÎÞ
+*********************************************************************************************************/
+int UART0_SendByte (int ucData)
+{
+ while (!(LPC_UART0->LSR & 0x20));
+ return (LPC_UART0->THR = ucData);
+
+}
+
+
+
+
+
+
+/*----------------------------------------------------------------------------
+ Read character from Serial Port (blocking read)
+ *----------------------------------------------------------------------------*/
+int UART0_GetChar (void)
+{
+ while (!(LPC_UART0->LSR & 0x01));
+ return (LPC_UART0->RBR);
+}
+/*----------------------------------------------------------------------------
+ Read character from Serial Port (blocking read)
+ *----------------------------------------------------------------------------*/
+int UART1_GetChar (void)
+{
+ while (!(LPC_UART1->LSR & 0x01));
+ return (LPC_UART1->RBR);
+}
+
+/*----------------------------------------------------------------------------
+ Read character from Serial Port (blocking read)
+ *----------------------------------------------------------------------------*/
+int UART2_GetChar (void)
+{
+ while (!(LPC_UART2->LSR & 0x01));
+ return (LPC_UART2->RBR);
+}
+/*----------------------------------------------------------------------------
+ Read character from Serial Port (blocking read)
+ *----------------------------------------------------------------------------*/
+int UART3_GetChar (void)
+{
+ while (!(LPC_UART3->LSR & 0x01));
+ return (LPC_UART3->RBR);
+}
+
+int UART0_Chek (void)
+{
+ if (LPC_UART0->LSR & 0x01) return 1; else return 0;
+}
+
+int UART1_Chek (void)
+{
+ if (LPC_UART1->LSR & 0x01)return 1; else return 0;
+}
+
+
+int UART2_Chek (void)
+{
+
+ if (LPC_UART2->LSR & 0x01)return 1; else return 0;
+}
+
+int UART3_Chek (void)
+{
+ if (LPC_UART3->LSR & 0x01)return 1; else return 0;
+
+}
+
+
+
+
+
+
+void UART0_SendString (char *s)
+{
+ while (*s != 0)
+ {
+ UART0_SendByte(*s++);
+ }
+}
+
+
+
+
+
+int UART2_SendByte (int ucData)
+{
+ while (!(LPC_UART2->LSR & 0x20));
+ return (LPC_UART2->THR = ucData);
+}
+
+
+
+void UART0_SendChar(uint16_t disp)
+{
+ uint16_t dispbuf[4];
+ uint8_t i;
+
+ dispbuf[3] = disp%10 + '0';
+ dispbuf[2] = disp/10%10 + '0';
+ dispbuf[1] = disp/10/10%10 + '0';
+ dispbuf[0] = disp/10/10/10%10 + '0';
+ for(i=0;i<4;i++)
+ UART0_SendByte(dispbuf[i]);
+}
+
+
+
+void Concol (void )
+{
+ if (OutBufConCount == 0)
+ {
+
+ if (ConOutPnt != ConOutCur)
+ if (LPC_UART0->LSR & 0x20)
+ {
+ ConOutCur++;
+ ConOutCur = ConOutCur & 0x3ff;
+ SetDeUART0 ();
+ LPC_UART0->THR = OutCon[ConOutCur];
+ }
+ }
+ if (LPC_UART0->LSR & 0x01)
+ {
+ ConInCur++;
+ ConInCur = ConInCur & 0x3ff;
+ InCon[ConInCur] = (LPC_UART0->RBR);
+ }
+
+ if (!(LPC_UART0->LSR & 0x40)) SetDeUART0 (); else ClrDeUART0() ; //óïðàâëåíèå 485
+
+}
+
+
+void Concol1 (void )
+{
+ if (OutBufCon1Count == 0)
+ {
+ if (ConOutPnt1 != ConOutCur1)
+ if (LPC_UART1->LSR & 0x20)
+ {
+ ConOutCur1++;
+ ConOutCur1 = ConOutCur1 & 0x3ff;
+ LPC_UART1->THR = OutCon1[ConOutCur1];
+ }
+ }
+ if (LPC_UART1->LSR & 0x01)
+ {
+ ConInCur1++;
+ ConInCur1 = ConInCur1 & 0x3ff;
+ InCon1[ConInCur1] = (LPC_UART1->RBR);
+ }
+
+ //if (!(LPC_UART1->LSR & 0x40)) SetDeUART1 (); else ClrDeUART1() ; //óïðàâëåíèå 485
+}
+
+void Concol1Fast (void )
+{
+ if (OutBufCon1Count == 0)
+ {
+ while((ConOutPnt1 != ConOutCur1) && (LPC_UART1->LSR & 0x20))
+ {
+ ConOutCur1++;
+ ConOutCur1 = ConOutCur1 & 0x3ff;
+ SetDeUART1 ();
+ LPC_UART1->THR = OutCon1[ConOutCur1];
+ }
+ }
+ while (LPC_UART1->LSR & 0x01)
+ {
+ ConInCur1++;
+ ConInCur1 = ConInCur1 & 0x3ff;
+ InCon1[ConInCur1] = (LPC_UART1->RBR);
+ }
+ if (!(LPC_UART1->LSR & 0x40)) SetDeUART1 (); else ClrDeUART1() ; //óïðàâëåíèå 485
+}
+
+
+
+
+void Concol2 (void )
+{
+ if (OutBufCon2Count == 0)
+ {
+ if (ConOutPnt2 != ConOutCur2)
+ if (LPC_UART2->LSR & 0x20)
+ {
+ ConOutCur2++;
+ ConOutCur2 = ConOutCur2 & 0x3ff;
+ SetDeUART2 ();
+ LPC_UART2->THR = OutCon2[ConOutCur2];
+ }
+ }
+ if (LPC_UART2->LSR & 0x01)
+ {
+ ConInCur2++;
+ ConInCur2 = ConInCur2 & 0x3ff;
+ InCon2[ConInCur2] = (LPC_UART2->RBR);
+ }
+ if (!(LPC_UART2->LSR & 0x40)) SetDeUART2 (); else ClrDeUART2() ; //óïðàâëåíèå 485
+}
+
+
+
+
+
+void Concol3 (void )
+{
+ if (OutBufCon3Count == 0)
+ {
+ if (ConOutPnt3 != ConOutCur3)
+ if (LPC_UART3->LSR & 0x20)
+ {
+ ConOutCur3++;
+ ConOutCur3 = ConOutCur3 & 0x3ff;
+ SetDeUART3 ();
+ LPC_UART3->THR = OutCon3[ConOutCur3];
+ }
+ }
+ if (LPC_UART3->LSR & 0x01)
+ {
+ ConInCur3++;
+ ConInCur3 = ConInCur3 & 0x3ff;
+ InCon3[ConInCur3] = (LPC_UART3->RBR);
+ }
+
+ if (!(LPC_UART3->LSR & 0x40)) SetDeUART3 (); else ClrDeUART3() ; //óïðàâëåíèå 485
+}
+
+
+
+void Concol2M (void )
+{
+ if (OutBufCon2Count == 0)
+ {
+ if (ConOutPnt2M != ConOutCur2M)
+ if (LPC_UART2->LSR & 0x20)
+ {
+ ConOutCur2++;
+ ConOutCur2 = ConOutCur2 & 0x3ff;
+ SetDeUART2 ();
+ LPC_UART2->THR = OutCon2[ConOutCur2];
+ }
+ }
+ if (LPC_UART2->LSR & 0x01)
+ {
+ ConInCur2++;
+ ConInCur2 = ConInCur2 & 0x3ff;
+ InCon2[ConInCur2] = (LPC_UART2->RBR);
+ }
+ if (!(LPC_UART2->LSR & 0x40)) SetDeUART2 (); else ClrDeUART2() ; //óïðàâëåíèå 485
+}
+
+
+
+
+
+
+void WriteCon (char *s)
+{
+ OutBufConCount = 0;
+ while (*s != 0)
+ {
+ ConOutPnt++;
+ ConOutPnt = ConOutPnt & 0x3ff;
+ OutCon[ConOutPnt] = (*s++);
+ }
+}
+
+void WriteCon1 (char *s)
+{
+ OutBufCon1Count = 0;
+ while (*s != 0)
+ {
+ ConOutPnt1++;
+ ConOutPnt1 = ConOutPnt1 & 0x3ff;
+ OutCon1[ConOutPnt1] = (*s++);
+ }
+}
+
+void WriteConN (char *s, unsigned int N)
+{
+ OutBufConCount = 0;
+ while (N != 0)
+ {
+ N--;
+ ConOutPnt++;
+ ConOutPnt = ConOutPnt & 0x3ff;
+ OutCon[ConOutPnt] = (*s++);
+ }
+}
+
+
+void WriteCon2 (char *s)
+{
+ OutBufCon2Count = 0;
+ while (*s != 0)
+ {
+ ConOutPnt2++;
+ ConOutPnt2 = ConOutPnt2 & 0x3ff;
+ OutCon2[ConOutPnt2] = (*s++);
+ }
+}
+void WriteCon3 (char *s)
+{
+ OutBufCon3Count = 0;
+ while (*s != 0)
+ {
+ ConOutPnt3++;
+ ConOutPnt3 = ConOutPnt3 & 0x3ff;
+ OutCon3[ConOutPnt3] = (*s++);
+ }
+}
+
+
+
+
+void WriteConF (char *s, unsigned int Num)
+{
+ if (Num == 0) WriteCon(s);
+ if (Num == 1) WriteCon1(s);
+ if (Num == 2) WriteCon2(s);
+ if (Num == 2) WriteCon3(s);
+
+}
+
+
+
+
+void WriteConByte (unsigned int In)
+{
+ ConOutPnt++;
+ ConOutPnt = ConOutPnt & 0x3ff;
+ OutCon[ConOutPnt] = In;
+}
+
+void WriteCon1Byte (unsigned int In)
+{
+ ConOutPnt1++;
+ ConOutPnt1 = ConOutPnt1 & 0x3ff;
+ OutCon1[ConOutPnt1] = In;
+}
+
+
+void WriteCon2Byte (unsigned int temp)
+{
+ ConOutPnt2++;
+ ConOutPnt2 = ConOutPnt2 & 0x3ff;
+ OutCon2[ConOutPnt2] = temp;
+}
+
+void WriteCon3Byte (unsigned int temp)
+{
+ ConOutPnt3++;
+ ConOutPnt3 = ConOutPnt3 & 0x3ff;
+ OutCon3[ConOutPnt3] = temp;
+}
+
+
+
+
+
+void WriteConByteF (unsigned int In,unsigned int Num )
+{
+ if (Num == 0) WriteConByte(In);
+ if (Num == 1) WriteCon1Byte(In);
+ if (Num == 2) WriteCon2Byte(In);
+ if (Num == 3) WriteCon3Byte(In);
+
+}
+
+
+
+
+
+
+
+
+
+int ReadCon (char *s)
+{
+ int i = 0;
+ while (ConInPnt != ConInCur)
+ {
+ i++;
+ ConInPnt++;
+ ConInPnt = ConInPnt & 0x3ff;
+ (*s++) = InCon[ConInPnt] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+int ReadCon1 (char *s)
+{
+ int i = 0;
+ while (ConInPnt1 != ConInCur1)
+ {
+ i++;
+ ConInPnt1++;
+ ConInPnt1 = ConInPnt1 & 0x3ff;
+ (*s++) = InCon1[ConInPnt1] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+int ReadCon2 (char *s)
+{
+ int i = 0;
+ while (ConInPnt2 != ConInCur2)
+ {
+ i++;
+ ConInPnt2++;
+ ConInPnt2 = ConInPnt2 & 0x3ff;
+ (*s++) = InCon2[ConInPnt2] ;
+ }
+ (*s++) = 0;
+ return i;
+
+}
+
+
+int ReadCon3 (char *s)
+{
+ int i = 0;
+ while (ConInPnt3 != ConInCur3)
+ {
+ i++;
+ ConInPnt3++;
+ ConInPnt3 = ConInPnt3 & 0x3ff;
+ (*s++) = InCon3[ConInPnt3] ;
+ }
+ (*s++) = 0;
+ return i;
+
+}
+
+
+
+
+
+int ReadChekCon (char *s)
+{
+ int i = 0;
+ int ConInPntTemp = ConInPnt;
+ while (ConInPntTemp != ConInCur)
+ {
+ i++;
+ ConInPntTemp++;
+ ConInPntTemp = ConInPntTemp & 0x3ff;
+ (*s++) = InCon[ConInPntTemp] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+int ReadChekCon1 (char *s)
+{
+ int i = 0;
+ int ConInPntTemp = ConInPnt1;
+ while (ConInPntTemp != ConInCur1)
+ {
+ i++;
+ ConInPntTemp++;
+ ConInPntTemp = ConInPntTemp & 0x3ff;
+ (*s++) = InCon1[ConInPntTemp] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+
+
+
+int ReadChekCon2 (char *s)
+{
+ int i = 0;
+ int ConInPntTemp = ConInPnt2;
+ while (ConInPntTemp != ConInCur2)
+ {
+ i++;
+ ConInPntTemp++;
+ ConInPntTemp = ConInPntTemp & 0x3ff;
+ (*s++) = InCon2[ConInPntTemp] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+
+int ReadChekCon3 (char *s)
+{
+ int i = 0;
+ int ConInPntTemp = ConInPnt3;
+ while (ConInPntTemp != ConInCur3)
+ {
+ i++;
+ ConInPntTemp++;
+ ConInPntTemp = ConInPntTemp & 0x3ff;
+ (*s++) = InCon3[ConInPntTemp] ;
+ }
+ (*s++) = 0;
+ return i;
+}
+
+
+
+
+
+
+int ChekInCon ( void ) {if (ConInPnt != ConInCur) return 1; else return 0;}
+int ChekInCon1 ( void ) {if (ConInPnt1 != ConInCur1) return 1; else return 0;}
+int ChekInCon2 ( void ) {if (ConInPnt2 != ConInCur2) return 1; else return 0;}
+int ChekInCon3 ( void ) {if (ConInPnt3 != ConInCur3) return 1; else return 0;}
+
+int ChekOutCon ( void ) {if (!(LPC_UART0->LSR & 0x40)) return 1; else return 0;}
+int ChekOutCon1 ( void ) {if (!(LPC_UART1->LSR & 0x40)) return 1; else return 0;}
+int ChekOutCon2 ( void ) {if (!(LPC_UART2->LSR & 0x40)) return 1; else return 0;}
+int ChekOutCon3 ( void ) {if (!(LPC_UART3->LSR & 0x40)) return 1; else return 0;}
+
+
+
+
+void Delay(int t)
+{
+}
+
+
+void SetDeUART0 (void) {if ((PortEUART0 & (PinEUART0)) == 0) {PortEUART0 |= (PinEUART0); Delay(10);} }
+void ClrDeUART0 (void) {if ((PortEUART0 & (PinEUART0))) { Delay(10); PortEUART0 &= (~(PinEUART0));}}
+
+void SetDeUART1 (void) {if ((PortEUART1 & (PinEUART1)) == 0) {PortEUART1 |= (PinEUART1); Delay(10);} }
+void ClrDeUART1 (void) {if ((PortEUART1 & (PinEUART1))) { Delay(10); PortEUART1 &= (~(PinEUART1));}}
+
+
+
+void SetDeUART2 (void) {if ((PortEUART2 & (PinEUART2)) == 0) {PortEUART2 |= (PinEUART2); Delay(10);}}
+void ClrDeUART2 (void) {if ((PortEUART2 & (PinEUART2))) {Delay(10); PortEUART2 &= (~(PinEUART2));}}
+
+
+void SetDeUART3 (void) {if ((PortEUART3 & (PinEUART3)) == 0) {PortEUART3 |= (PinEUART3); Delay(10);}}
+void ClrDeUART3 (void) {if ((PortEUART3 & (PinEUART3))) {Delay(10);PortEUART3 &= (~(PinEUART3));}}
+
+
+
+
