n

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
igor_v
Date:
Sat Jan 30 13:53:19 2016 +0000
Revision:
1:f2adcae3d304
Parent:
0:8ad47e2b6f00
Child:
12:74bd0ecf7f83
123

Who changed what in which revision?

UserRevisionLine numberNew 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