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 LG by
console.c@12:74bd0ecf7f83, 2016-02-02 (annotated)
- Committer:
- igor_v
- Date:
- Tue Feb 02 14:42:57 2016 +0000
- Revision:
- 12:74bd0ecf7f83
- Parent:
- 1:f2adcae3d304
- Child:
- 21:bc8c1cec3da6
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igor_v | 12:74bd0ecf7f83 | 1 | |
igor_v | 1:f2adcae3d304 | 2 | #include "Global.h" |
igor_v | 1:f2adcae3d304 | 3 | |
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 | 1:f2adcae3d304 | 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 | 12:74bd0ecf7f83 | 76 | void SendToBuffStr1(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 | void UART0_SendString (char *s) |
igor_v | 0:8ad47e2b6f00 | 99 | { |
igor_v | 0:8ad47e2b6f00 | 100 | while (*s != 0) |
igor_v | 0:8ad47e2b6f00 | 101 | { |
igor_v | 0:8ad47e2b6f00 | 102 | InputIndex++; |
igor_v | 0:8ad47e2b6f00 | 103 | InputIndex &= 0x3ff; |
igor_v | 0:8ad47e2b6f00 | 104 | BuffOut[InputIndex]=*s++; |
igor_v | 0:8ad47e2b6f00 | 105 | } |
igor_v | 0:8ad47e2b6f00 | 106 | } |
igor_v | 0:8ad47e2b6f00 | 107 | */ |
igor_v | 0:8ad47e2b6f00 | 108 | |
igor_v | 0:8ad47e2b6f00 | 109 | void ClearBuffIn(void) |
igor_v | 0:8ad47e2b6f00 | 110 | { |
igor_v | 0:8ad47e2b6f00 | 111 | InputIndexBI=0; |
igor_v | 0:8ad47e2b6f00 | 112 | OutputIndexBI=0; |
igor_v | 0:8ad47e2b6f00 | 113 | } |
igor_v | 0:8ad47e2b6f00 | 114 | |
igor_v | 0:8ad47e2b6f00 | 115 | void BuffDataReady(void) |
igor_v | 0:8ad47e2b6f00 | 116 | { |
igor_v | 0:8ad47e2b6f00 | 117 | if((OutputIndexBI != InputIndexBI) && (!(LPC_UART0 -> LSR & 0x01))) |
igor_v | 0:8ad47e2b6f00 | 118 | { |
igor_v | 0:8ad47e2b6f00 | 119 | |
igor_v | 0:8ad47e2b6f00 | 120 | } |
igor_v | 0:8ad47e2b6f00 | 121 | } |
igor_v | 0:8ad47e2b6f00 | 122 | void ReadDataInBuff(void) |
igor_v | 0:8ad47e2b6f00 | 123 | { |
igor_v | 0:8ad47e2b6f00 | 124 | while (LPC_UART0->LSR & 0x01) |
igor_v | 0:8ad47e2b6f00 | 125 | { |
igor_v | 0:8ad47e2b6f00 | 126 | BuffIn[InputIndexBI] = LPC_UART0->RBR; |
igor_v | 0:8ad47e2b6f00 | 127 | InputIndexBI++; |
igor_v | 0:8ad47e2b6f00 | 128 | } |
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 |