Egor Syomin
/
LG
test fork
Fork of LG by
console.c@1:f2adcae3d304, 2016-01-30 (annotated)
- Committer:
- igor_v
- Date:
- Sat Jan 30 13:53:19 2016 +0000
- Revision:
- 1:f2adcae3d304
- Parent:
- 0:8ad47e2b6f00
- Child:
- 14:74bd0ecf7f83
123
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igor_v | 1:f2adcae3d304 | 1 | #include "Global.h" |
igor_v | 1:f2adcae3d304 | 2 | |
igor_v | 1:f2adcae3d304 | 3 | |
igor_v | 1:f2adcae3d304 | 4 | |
igor_v | 0:8ad47e2b6f00 | 5 | #define FOSC 12000000 |
igor_v | 0:8ad47e2b6f00 | 6 | |
igor_v | 0:8ad47e2b6f00 | 7 | #define FCCLK (FOSC * 8) |
igor_v | 0:8ad47e2b6f00 | 8 | |
igor_v | 0:8ad47e2b6f00 | 9 | #define FCCO (FCCLK * 3) |
igor_v | 0:8ad47e2b6f00 | 10 | |
igor_v | 0:8ad47e2b6f00 | 11 | #define FPCLK (FCCLK / 4) |
igor_v | 0:8ad47e2b6f00 | 12 | |
igor_v | 0:8ad47e2b6f00 | 13 | #define UART0_BPS 38400 |
igor_v | 0:8ad47e2b6f00 | 14 | |
igor_v | 0:8ad47e2b6f00 | 15 | |
igor_v | 0:8ad47e2b6f00 | 16 | |
igor_v | 0:8ad47e2b6f00 | 17 | unsigned int BuffOut[1024]; |
igor_v | 0:8ad47e2b6f00 | 18 | |
igor_v | 0:8ad47e2b6f00 | 19 | unsigned int InputIndexBO; |
igor_v | 0:8ad47e2b6f00 | 20 | unsigned int OutputIndexBO; |
igor_v | 0:8ad47e2b6f00 | 21 | |
igor_v | 0:8ad47e2b6f00 | 22 | |
igor_v | 0:8ad47e2b6f00 | 23 | |
igor_v | 0:8ad47e2b6f00 | 24 | unsigned int BuffIn[1024]; |
igor_v | 0:8ad47e2b6f00 | 25 | |
igor_v | 0:8ad47e2b6f00 | 26 | unsigned int InputIndexBI; |
igor_v | 0:8ad47e2b6f00 | 27 | unsigned int OutputIndexBI; |
igor_v | 0:8ad47e2b6f00 | 28 | |
igor_v | 0:8ad47e2b6f00 | 29 | //unsigned int OLD_OutputIndex; |
igor_v | 0:8ad47e2b6f00 | 30 | |
igor_v | 0:8ad47e2b6f00 | 31 | |
igor_v | 0:8ad47e2b6f00 | 32 | |
igor_v | 0:8ad47e2b6f00 | 33 | void UART0_Init_m (void)///�������������� �������� ����� |
igor_v | 1:f2adcae3d304 | 34 | { |
igor_v | 0:8ad47e2b6f00 | 35 | uint16_t usFdiv; |
igor_v | 0:8ad47e2b6f00 | 36 | /* UART0 */ |
igor_v | 0:8ad47e2b6f00 | 37 | LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */ |
igor_v | 0:8ad47e2b6f00 | 38 | LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0) */ |
igor_v | 0:8ad47e2b6f00 | 39 | |
igor_v | 0:8ad47e2b6f00 | 40 | LPC_UART0->LCR = 0x83; |
igor_v | 0:8ad47e2b6f00 | 41 | usFdiv = (FPCLK / 16) / UART0_BPS; |
igor_v | 0:8ad47e2b6f00 | 42 | LPC_UART0->DLM = usFdiv / 256; |
igor_v | 0:8ad47e2b6f00 | 43 | LPC_UART0->DLL = usFdiv % 256; |
igor_v | 0:8ad47e2b6f00 | 44 | LPC_UART0->LCR = 0x03; |
igor_v | 0:8ad47e2b6f00 | 45 | LPC_UART0->FCR = 0x06; |
igor_v | 0:8ad47e2b6f00 | 46 | } |
igor_v | 0:8ad47e2b6f00 | 47 | |
igor_v | 0:8ad47e2b6f00 | 48 | int UART0_SendByte_m (int ucData) |
igor_v | 0:8ad47e2b6f00 | 49 | { |
igor_v | 0:8ad47e2b6f00 | 50 | //while (!(LPC_UART0->LSR & 0x20)){}; |
igor_v | 0:8ad47e2b6f00 | 51 | |
igor_v | 0:8ad47e2b6f00 | 52 | return (LPC_UART0->THR = ucData); |
igor_v | 0:8ad47e2b6f00 | 53 | } |
igor_v | 0:8ad47e2b6f00 | 54 | void ClearBuffout(void) //������� ������ �� ������(����� ����������) |
igor_v | 0:8ad47e2b6f00 | 55 | { |
igor_v | 0:8ad47e2b6f00 | 56 | InputIndexBO=0; |
igor_v | 0:8ad47e2b6f00 | 57 | OutputIndexBO=0; |
igor_v | 0:8ad47e2b6f00 | 58 | } |
igor_v | 0:8ad47e2b6f00 | 59 | void SendToBuffByte(unsigned int *input) // ������ � ����� �� ������ ������ �������� ���(������������) |
igor_v | 0:8ad47e2b6f00 | 60 | { |
igor_v | 0:8ad47e2b6f00 | 61 | InputIndexBO++; |
igor_v | 0:8ad47e2b6f00 | 62 | InputIndexBO &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 63 | BuffOut[InputIndexBO]=*input; |
igor_v | 0:8ad47e2b6f00 | 64 | } |
igor_v | 0:8ad47e2b6f00 | 65 | void SendToBuff(unsigned char *input, unsigned int size)//������ ���������� �������� � ��������� ����������� ������ � ����� �� ������. |
igor_v | 0:8ad47e2b6f00 | 66 | { |
igor_v | 0:8ad47e2b6f00 | 67 | unsigned int i; |
igor_v | 0:8ad47e2b6f00 | 68 | for(i=0;i<size;i++) |
igor_v | 0:8ad47e2b6f00 | 69 | { |
igor_v | 0:8ad47e2b6f00 | 70 | InputIndexBO++; |
igor_v | 0:8ad47e2b6f00 | 71 | InputIndexBO &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 72 | BuffOut[InputIndexBO]=*input++; |
igor_v | 0:8ad47e2b6f00 | 73 | } |
igor_v | 0:8ad47e2b6f00 | 74 | } |
igor_v | 0:8ad47e2b6f00 | 75 | |
igor_v | 0:8ad47e2b6f00 | 76 | |
igor_v | 0:8ad47e2b6f00 | 77 | void SendToBuffStr(char *s)//������ ������ (����� ������������� �� ����) � ����� �� ������. |
igor_v | 0:8ad47e2b6f00 | 78 | { |
igor_v | 0:8ad47e2b6f00 | 79 | while (*s != 0) |
igor_v | 0:8ad47e2b6f00 | 80 | { |
igor_v | 0:8ad47e2b6f00 | 81 | InputIndexBO++; |
igor_v | 0:8ad47e2b6f00 | 82 | InputIndexBO &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 83 | BuffOut[InputIndexBO]=*s++; |
igor_v | 0:8ad47e2b6f00 | 84 | } |
igor_v | 0:8ad47e2b6f00 | 85 | } |
igor_v | 0:8ad47e2b6f00 | 86 | |
igor_v | 0:8ad47e2b6f00 | 87 | |
igor_v | 0:8ad47e2b6f00 | 88 | void TakeFromBuff(void)//�������� �� ������ �� ������. |
igor_v | 0:8ad47e2b6f00 | 89 | { |
igor_v | 0:8ad47e2b6f00 | 90 | if((OutputIndexBO != InputIndexBO) && (LPC_UART0 -> LSR & 0x20)) |
igor_v | 0:8ad47e2b6f00 | 91 | { |
igor_v | 0:8ad47e2b6f00 | 92 | OutputIndexBO++; |
igor_v | 0:8ad47e2b6f00 | 93 | OutputIndexBO &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 94 | LPC_UART0->THR = BuffOut[OutputIndexBO]; |
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 | /* |
igor_v | 0:8ad47e2b6f00 | 100 | void UART0_SendString (char *s) |
igor_v | 0:8ad47e2b6f00 | 101 | { |
igor_v | 0:8ad47e2b6f00 | 102 | while (*s != 0) |
igor_v | 0:8ad47e2b6f00 | 103 | { |
igor_v | 0:8ad47e2b6f00 | 104 | InputIndex++; |
igor_v | 0:8ad47e2b6f00 | 105 | InputIndex &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 106 | BuffOut[InputIndex]=*s++; |
igor_v | 0:8ad47e2b6f00 | 107 | } |
igor_v | 0:8ad47e2b6f00 | 108 | } |
igor_v | 0:8ad47e2b6f00 | 109 | */ |
igor_v | 0:8ad47e2b6f00 | 110 | |
igor_v | 0:8ad47e2b6f00 | 111 | void ClearBuffIn(void) |
igor_v | 0:8ad47e2b6f00 | 112 | { |
igor_v | 0:8ad47e2b6f00 | 113 | InputIndexBI=0; |
igor_v | 0:8ad47e2b6f00 | 114 | OutputIndexBI=0; |
igor_v | 0:8ad47e2b6f00 | 115 | } |
igor_v | 0:8ad47e2b6f00 | 116 | |
igor_v | 0:8ad47e2b6f00 | 117 | void BuffDataReady(void) |
igor_v | 0:8ad47e2b6f00 | 118 | { |
igor_v | 0:8ad47e2b6f00 | 119 | if((OutputIndexBI != InputIndexBI) && (!(LPC_UART0 -> LSR & 0x01))) |
igor_v | 0:8ad47e2b6f00 | 120 | { |
igor_v | 0:8ad47e2b6f00 | 121 | |
igor_v | 0:8ad47e2b6f00 | 122 | } |
igor_v | 0:8ad47e2b6f00 | 123 | } |
igor_v | 0:8ad47e2b6f00 | 124 | void ReadDataInBuff(void) |
igor_v | 0:8ad47e2b6f00 | 125 | { |
igor_v | 0:8ad47e2b6f00 | 126 | while (LPC_UART0->LSR & 0x01) |
igor_v | 0:8ad47e2b6f00 | 127 | { |
igor_v | 0:8ad47e2b6f00 | 128 | BuffIn[InputIndexBI] = LPC_UART0->RBR; |
igor_v | 0:8ad47e2b6f00 | 129 | InputIndexBI++; |
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 | |
igor_v | 0:8ad47e2b6f00 | 148 |