n

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
0:8ad47e2b6f00
Child:
1:f2adcae3d304
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/console.c	Sat Jan 30 13:00:39 2016 +0000
@@ -0,0 +1,147 @@
+#include "console.h"
+#include "lpc17xx.h"  
+#include "CyclesSync.h"
+#define FOSC                        12000000                            
+
+#define FCCLK                      (FOSC  * 8)                          
+                                                                       
+#define FCCO                       (FCCLK * 3)                          
+                                                                       
+#define FPCLK                      (FCCLK / 4)  
+
+#define UART0_BPS    38400
+
+
+
+unsigned int BuffOut[1024];
+
+unsigned int InputIndexBO;
+unsigned int OutputIndexBO;
+
+
+
+unsigned int BuffIn[1024];
+
+unsigned int InputIndexBI;
+unsigned int OutputIndexBI;
+
+//unsigned int OLD_OutputIndex;
+
+
+
+void UART0_Init_m (void)///�������������� �������� �����
+
+	uint16_t usFdiv;
+    /* UART0 */
+    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;                     
+    usFdiv = (FPCLK / 16) / UART0_BPS;           
+    LPC_UART0->DLM  = usFdiv / 256;
+    LPC_UART0->DLL  = usFdiv % 256; 
+    LPC_UART0->LCR  = 0x03;                      
+    LPC_UART0->FCR  = 0x06; 				   
+}
+
+int UART0_SendByte_m (int ucData)
+{
+	//while (!(LPC_UART0->LSR & 0x20)){};
+
+  return (LPC_UART0->THR = ucData);
+}
+void ClearBuffout(void) //������� ������ �� ������(����� ����������)
+{
+	InputIndexBO=0;
+	OutputIndexBO=0;
+}
+void SendToBuffByte(unsigned int *input) // ������ � ����� �� ������ ������ �������� ���(������������)
+{
+      InputIndexBO++;
+			InputIndexBO &= 0x3ff;
+	    BuffOut[InputIndexBO]=*input;
+}
+void SendToBuff(unsigned char *input, unsigned int size)//������ ���������� �������� � ��������� ����������� ������ � ����� �� ������.
+{
+	unsigned int i;
+	for(i=0;i<size;i++)
+	{
+			InputIndexBO++;
+			InputIndexBO &= 0x3ff;
+			BuffOut[InputIndexBO]=*input++;
+	}	
+}
+
+
+void SendToBuffStr(char *s)//������ ������ (����� ������������� �� ����) � ����� �� ������.
+{
+ 	while (*s != 0) 
+	{
+			InputIndexBO++;
+			InputIndexBO &= 0x3ff;
+			BuffOut[InputIndexBO]=*s++;
+	}
+}
+
+
+void TakeFromBuff(void)//�������� ��  ������ �� ������.
+{
+	if((OutputIndexBO != InputIndexBO) && (LPC_UART0 -> LSR & 0x20))
+	{
+			OutputIndexBO++;
+			OutputIndexBO &= 0x3ff;
+			LPC_UART0->THR = BuffOut[OutputIndexBO];
+	}
+}
+
+
+/*
+void UART0_SendString (char *s) 
+{
+ 	while (*s != 0) 
+	{
+			InputIndex++;
+			InputIndex &= 0x3ff;
+			BuffOut[InputIndex]=*s++;
+	}
+}
+*/
+
+void ClearBuffIn(void)
+{
+	InputIndexBI=0;
+	OutputIndexBI=0;
+}
+
+void BuffDataReady(void)
+{
+	if((OutputIndexBI != InputIndexBI) && (!(LPC_UART0 -> LSR & 0x01)))
+	{
+		
+	}
+}
+void ReadDataInBuff(void)
+{
+     while (LPC_UART0->LSR & 0x01)
+     {
+  	  BuffIn[InputIndexBI] = LPC_UART0->RBR;
+		  InputIndexBI++;
+		 }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+