123

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Wed Feb 03 10:44:42 2016 +0300
Revision:
22:12e6183f04d4
[thyz

Who changed what in which revision?

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