n

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
igor_v
Date:
Sat Jan 30 13:00:39 2016 +0000
Revision:
0:8ad47e2b6f00
Child:
1:f2adcae3d304
2016_01_30;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 0:8ad47e2b6f00 1 #include "console.h"
igor_v 0:8ad47e2b6f00 2 #include "lpc17xx.h"
igor_v 0:8ad47e2b6f00 3 #include "CyclesSync.h"
igor_v 0:8ad47e2b6f00 4 #define FOSC 12000000
igor_v 0:8ad47e2b6f00 5
igor_v 0:8ad47e2b6f00 6 #define FCCLK (FOSC * 8)
igor_v 0:8ad47e2b6f00 7
igor_v 0:8ad47e2b6f00 8 #define FCCO (FCCLK * 3)
igor_v 0:8ad47e2b6f00 9
igor_v 0:8ad47e2b6f00 10 #define FPCLK (FCCLK / 4)
igor_v 0:8ad47e2b6f00 11
igor_v 0:8ad47e2b6f00 12 #define UART0_BPS 38400
igor_v 0:8ad47e2b6f00 13
igor_v 0:8ad47e2b6f00 14
igor_v 0:8ad47e2b6f00 15
igor_v 0:8ad47e2b6f00 16 unsigned int BuffOut[1024];
igor_v 0:8ad47e2b6f00 17
igor_v 0:8ad47e2b6f00 18 unsigned int InputIndexBO;
igor_v 0:8ad47e2b6f00 19 unsigned int OutputIndexBO;
igor_v 0:8ad47e2b6f00 20
igor_v 0:8ad47e2b6f00 21
igor_v 0:8ad47e2b6f00 22
igor_v 0:8ad47e2b6f00 23 unsigned int BuffIn[1024];
igor_v 0:8ad47e2b6f00 24
igor_v 0:8ad47e2b6f00 25 unsigned int InputIndexBI;
igor_v 0:8ad47e2b6f00 26 unsigned int OutputIndexBI;
igor_v 0:8ad47e2b6f00 27
igor_v 0:8ad47e2b6f00 28 //unsigned int OLD_OutputIndex;
igor_v 0:8ad47e2b6f00 29
igor_v 0:8ad47e2b6f00 30
igor_v 0:8ad47e2b6f00 31
igor_v 0:8ad47e2b6f00 32 void UART0_Init_m (void)///�������������� �������� �����
igor_v 0:8ad47e2b6f00 33
igor_v 0:8ad47e2b6f00 34 uint16_t usFdiv;
igor_v 0:8ad47e2b6f00 35 /* UART0 */
igor_v 0:8ad47e2b6f00 36 LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */
igor_v 0:8ad47e2b6f00 37 LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0) */
igor_v 0:8ad47e2b6f00 38
igor_v 0:8ad47e2b6f00 39 LPC_UART0->LCR = 0x83;
igor_v 0:8ad47e2b6f00 40 usFdiv = (FPCLK / 16) / UART0_BPS;
igor_v 0:8ad47e2b6f00 41 LPC_UART0->DLM = usFdiv / 256;
igor_v 0:8ad47e2b6f00 42 LPC_UART0->DLL = usFdiv % 256;
igor_v 0:8ad47e2b6f00 43 LPC_UART0->LCR = 0x03;
igor_v 0:8ad47e2b6f00 44 LPC_UART0->FCR = 0x06;
igor_v 0:8ad47e2b6f00 45 }
igor_v 0:8ad47e2b6f00 46
igor_v 0:8ad47e2b6f00 47 int UART0_SendByte_m (int ucData)
igor_v 0:8ad47e2b6f00 48 {
igor_v 0:8ad47e2b6f00 49 //while (!(LPC_UART0->LSR & 0x20)){};
igor_v 0:8ad47e2b6f00 50
igor_v 0:8ad47e2b6f00 51 return (LPC_UART0->THR = ucData);
igor_v 0:8ad47e2b6f00 52 }
igor_v 0:8ad47e2b6f00 53 void ClearBuffout(void) //������� ������ �� ������(����� ����������)
igor_v 0:8ad47e2b6f00 54 {
igor_v 0:8ad47e2b6f00 55 InputIndexBO=0;
igor_v 0:8ad47e2b6f00 56 OutputIndexBO=0;
igor_v 0:8ad47e2b6f00 57 }
igor_v 0:8ad47e2b6f00 58 void SendToBuffByte(unsigned int *input) // ������ � ����� �� ������ ������ �������� ���(������������)
igor_v 0:8ad47e2b6f00 59 {
igor_v 0:8ad47e2b6f00 60 InputIndexBO++;
igor_v 0:8ad47e2b6f00 61 InputIndexBO &= 0x3ff;
igor_v 0:8ad47e2b6f00 62 BuffOut[InputIndexBO]=*input;
igor_v 0:8ad47e2b6f00 63 }
igor_v 0:8ad47e2b6f00 64 void SendToBuff(unsigned char *input, unsigned int size)//������ ���������� �������� � ��������� ����������� ������ � ����� �� ������.
igor_v 0:8ad47e2b6f00 65 {
igor_v 0:8ad47e2b6f00 66 unsigned int i;
igor_v 0:8ad47e2b6f00 67 for(i=0;i<size;i++)
igor_v 0:8ad47e2b6f00 68 {
igor_v 0:8ad47e2b6f00 69 InputIndexBO++;
igor_v 0:8ad47e2b6f00 70 InputIndexBO &= 0x3ff;
igor_v 0:8ad47e2b6f00 71 BuffOut[InputIndexBO]=*input++;
igor_v 0:8ad47e2b6f00 72 }
igor_v 0:8ad47e2b6f00 73 }
igor_v 0:8ad47e2b6f00 74
igor_v 0:8ad47e2b6f00 75
igor_v 0:8ad47e2b6f00 76 void SendToBuffStr(char *s)//������ ������ (����� ������������� �� ����) � ����� �� ������.
igor_v 0:8ad47e2b6f00 77 {
igor_v 0:8ad47e2b6f00 78 while (*s != 0)
igor_v 0:8ad47e2b6f00 79 {
igor_v 0:8ad47e2b6f00 80 InputIndexBO++;
igor_v 0:8ad47e2b6f00 81 InputIndexBO &= 0x3ff;
igor_v 0:8ad47e2b6f00 82 BuffOut[InputIndexBO]=*s++;
igor_v 0:8ad47e2b6f00 83 }
igor_v 0:8ad47e2b6f00 84 }
igor_v 0:8ad47e2b6f00 85
igor_v 0:8ad47e2b6f00 86
igor_v 0:8ad47e2b6f00 87 void TakeFromBuff(void)//�������� �� ������ �� ������.
igor_v 0:8ad47e2b6f00 88 {
igor_v 0:8ad47e2b6f00 89 if((OutputIndexBO != InputIndexBO) && (LPC_UART0 -> LSR & 0x20))
igor_v 0:8ad47e2b6f00 90 {
igor_v 0:8ad47e2b6f00 91 OutputIndexBO++;
igor_v 0:8ad47e2b6f00 92 OutputIndexBO &= 0x3ff;
igor_v 0:8ad47e2b6f00 93 LPC_UART0->THR = BuffOut[OutputIndexBO];
igor_v 0:8ad47e2b6f00 94 }
igor_v 0:8ad47e2b6f00 95 }
igor_v 0:8ad47e2b6f00 96
igor_v 0:8ad47e2b6f00 97
igor_v 0:8ad47e2b6f00 98 /*
igor_v 0:8ad47e2b6f00 99 void UART0_SendString (char *s)
igor_v 0:8ad47e2b6f00 100 {
igor_v 0:8ad47e2b6f00 101 while (*s != 0)
igor_v 0:8ad47e2b6f00 102 {
igor_v 0:8ad47e2b6f00 103 InputIndex++;
igor_v 0:8ad47e2b6f00 104 InputIndex &= 0x3ff;
igor_v 0:8ad47e2b6f00 105 BuffOut[InputIndex]=*s++;
igor_v 0:8ad47e2b6f00 106 }
igor_v 0:8ad47e2b6f00 107 }
igor_v 0:8ad47e2b6f00 108 */
igor_v 0:8ad47e2b6f00 109
igor_v 0:8ad47e2b6f00 110 void ClearBuffIn(void)
igor_v 0:8ad47e2b6f00 111 {
igor_v 0:8ad47e2b6f00 112 InputIndexBI=0;
igor_v 0:8ad47e2b6f00 113 OutputIndexBI=0;
igor_v 0:8ad47e2b6f00 114 }
igor_v 0:8ad47e2b6f00 115
igor_v 0:8ad47e2b6f00 116 void BuffDataReady(void)
igor_v 0:8ad47e2b6f00 117 {
igor_v 0:8ad47e2b6f00 118 if((OutputIndexBI != InputIndexBI) && (!(LPC_UART0 -> LSR & 0x01)))
igor_v 0:8ad47e2b6f00 119 {
igor_v 0:8ad47e2b6f00 120
igor_v 0:8ad47e2b6f00 121 }
igor_v 0:8ad47e2b6f00 122 }
igor_v 0:8ad47e2b6f00 123 void ReadDataInBuff(void)
igor_v 0:8ad47e2b6f00 124 {
igor_v 0:8ad47e2b6f00 125 while (LPC_UART0->LSR & 0x01)
igor_v 0:8ad47e2b6f00 126 {
igor_v 0:8ad47e2b6f00 127 BuffIn[InputIndexBI] = LPC_UART0->RBR;
igor_v 0:8ad47e2b6f00 128 InputIndexBI++;
igor_v 0:8ad47e2b6f00 129 }
igor_v 0:8ad47e2b6f00 130 }
igor_v 0:8ad47e2b6f00 131
igor_v 0:8ad47e2b6f00 132
igor_v 0:8ad47e2b6f00 133
igor_v 0:8ad47e2b6f00 134
igor_v 0:8ad47e2b6f00 135
igor_v 0:8ad47e2b6f00 136
igor_v 0:8ad47e2b6f00 137
igor_v 0:8ad47e2b6f00 138
igor_v 0:8ad47e2b6f00 139
igor_v 0:8ad47e2b6f00 140
igor_v 0:8ad47e2b6f00 141
igor_v 0:8ad47e2b6f00 142
igor_v 0:8ad47e2b6f00 143
igor_v 0:8ad47e2b6f00 144
igor_v 0:8ad47e2b6f00 145
igor_v 0:8ad47e2b6f00 146
igor_v 0:8ad47e2b6f00 147