Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: el_lin.c
- Revision:
- 1:f2adcae3d304
- Parent:
- 0:8ad47e2b6f00
- Child:
- 21:bc8c1cec3da6
--- a/el_lin.c Sat Jan 30 13:00:39 2016 +0000 +++ b/el_lin.c Sat Jan 30 13:53:19 2016 +0000 @@ -9,9 +9,9 @@ ** Version: V1.00 **-------------------------------------------------------------------------------------------------------- *********************************************************************************************************/ -#include "CyclesSync.h" -#include "CntrlGLD.h" -#include "el_lin.h" + +#include "Global.h" + #define UART1TEST #define UART1REC @@ -70,7 +70,7 @@ ** Returned value: None ** ******************************************************************************/ -int check_lcc(void) //e. CRC checking //r.ïðîâåðêà êîíòðîëüíîé ñóììû +int check_lcc(void) //e. CRC checking //r.�������� ����������� ����� { int iCRC_calc, CRC_calc = 0, CRC_real; @@ -109,12 +109,12 @@ while ((LPC_UART1->LSR & RecievBufEmpty) != 0) //e. reciever contain some information - rcv_buf[rcv_num_byt++] = LPC_UART1->RBR;//÷òåíèå èíôîðìàöèè èç áóôåðà. + rcv_buf[rcv_num_byt++] = LPC_UART1->RBR;//������ ���������� �� ������. - if (( ToWaitEnd > 25000)) //e. end part of packet is absent //r. íå äîæäàëèñü êîíöà ïàêåòà + if (( ToWaitEnd > 25000)) //e. end part of packet is absent //r. �� ��������� ����� ������ { do rcv_buf[--rcv_num_byt] = 0; @@ -142,7 +142,7 @@ return; } - if ((!ToWaitEnd) && (rcv_num_byt > 1)) //e. the header of packet has not recieved //r. îæèäàåì íà÷àëî ïàêåòà + if ((!ToWaitEnd) && (rcv_num_byt > 1)) //e. the header of packet has not recieved //r. ������� ������ ������ if ((rcv_buf[0] != 0xCC) || (( rcv_buf[1] > 2) && ( rcv_buf[1] != 0x1F))) { // L1_Rc_err (HEADER_ERR); @@ -150,14 +150,14 @@ ToWaitEnd++; return; } - // if (ErrReg != 0) //e. trying of recovering of packet //r. ñïàñåíèå ñëåäóþùåãî ïàêåòà + // if (ErrReg != 0) //e. trying of recovering of packet //r. �������� ���������� ������ // PacketSafing(); if (rcv_num_byt == 6) { if ((rcv_buf[2] == 0x0A) || (rcv_buf[2] == 0xE0) || (rcv_buf[2] == 0xE4) || (rcv_buf[2] == 0xE6) || (rcv_buf[2] == 0xE8)) - { //e. packet length is not valid, so we have the error //r. îøèáêà ðàçìåðà ïàêåòà + { //e. packet length is not valid, so we have the error //r. ������ ������� ������ ToWaitEnd++; return; } @@ -171,12 +171,12 @@ return; } } - if (check_lcc() != 0) //e. checksum is bad //r.êîíòðîëüíûå ñóììû íå ðàâíû + if (check_lcc() != 0) //e. checksum is bad //r.����������� ����� �� ����� { return; } - else //e. cheksum is not bad //r.êîíòðîëüíûå ñóììû ðàâíû + else //e. cheksum is not bad //r.����������� ����� ����� { rcv_Rdy = 1; } @@ -186,7 +186,7 @@ } /* -void L1_Rc_err (int Error) //e. error fixing and reciever restart //r. ìîäóëü ôèêñàöèè îøèáêè è ïåðåçàïóñêà ïðèåìíèêà +void L1_Rc_err (int Error) //e. error fixing and reciever restart //r. ������ �������� ������ � ����������� ��������� { int temp; line_sts |= Error; @@ -215,20 +215,20 @@ uint32_t param, param_byte, CRC; int32_t *trans_param; - if ((LPC_UART1->LSR & TRANS_SHIFT_BUF_EMPTY)) //r. ïåðåäàþùèé áóôåð ïóñò + if ((LPC_UART1->LSR & TRANS_SHIFT_BUF_EMPTY)) //r. ���������� ����� ���� if (!( LPC_GPDMACH1->CConfig & (1<<17))) LPC_GPIO2->FIOCLR |= 8; //switch off UART1 driver if (trm_ena == 0) { -// LPC_GPIO1->FIOCLR = (0x01<<30); //r.ïåðåäà÷à òðåáóåòñÿ? - return; //r. åñëè íåò, âîçâðàò +// LPC_GPIO1->FIOCLR = (0x01<<30); //r.�������� ���������? + return; //r. ���� ���, ������� } - if (!(LPC_UART1->LSR & TRANS_SHIFT_BUF_EMPTY)) //r. ïåðåäàþùèé áóôåð ïóñò + if (!(LPC_UART1->LSR & TRANS_SHIFT_BUF_EMPTY)) //r. ���������� ����� ���� return; - if ( LPC_GPDMACH1->CConfig & (1<<17)) //r. åñëè êàíàë ïåðåäà÷è çàíÿò, æäàòü + if ( LPC_GPDMACH1->CConfig & (1<<17)) //r. ���� ����� �������� �����, ����� return; //#if defined UART1TEST @@ -236,32 +236,32 @@ // LPC_GPIO2->FIOSET |= (1<<3); //e. set enable UART bit //#endif - trm_ena = 0; //r. ñáðîñèòü ôëàã ðàçðåøåíèÿ ïåðåäà÷è + trm_ena = 0; //r. �������� ���� ���������� �������� trm_num_byt = 2; - trm_buf[0] = 0x00dd; //r. çàãîëîâîê ïàêåòà - trm_buf[1] = Device_blk.Str.My_Addres; //r. àäðåñ ïðèáîðà + trm_buf[0] = 0x00dd; //r. ��������� ������ + trm_buf[1] = Device_blk.Str.My_Addres; //r. ����� ������� - CRC = trm_buf[1]; //r.èíèöèàëèçàöèÿ ñ÷åò÷èêà êîíòðîëüíîé ñóììû - for ( param = 0; param < num_of_par; param++) //r.öèêë ôîðìèðîâàíèÿ áëîêà äàííûõ ïàêåòà + CRC = trm_buf[1]; //r.������������� �������� ����������� ����� + for ( param = 0; param < num_of_par; param++) //r.���� ������������ ����� ������ ������ { - trans_param = (int32_t *)addr_param[param]; //r. ÷òåíèå àäðåñà îäíîãî èç âûäàâàåìûõ â ïàêåòå ïàðàìåòðîâ + trans_param = (int32_t *)addr_param[param]; //r. ������ ������ ������ �� ���������� � ������ ���������� for (param_byte = 0; param_byte < size_param[param]; param_byte++) { - if ( (param_byte & 0x0001) == 0 ) //r. ñ÷èòûâàåì ñòàðøèé áàéò - trm_buf[trm_num_byt] = (*trans_param >> (8/**(size_param[param]-param_byte-1)*/)) & 0x00ff; //r.ðàçìåùåíèå ïåðåäàâàåìîãî ïàðàìåòðà â ïàêåòå + if ( (param_byte & 0x0001) == 0 ) //r. ��������� ������� ���� + trm_buf[trm_num_byt] = (*trans_param >> (8/**(size_param[param]-param_byte-1)*/)) & 0x00ff; //r.���������� ������������� ��������� � ������ else { trm_buf[trm_num_byt] = *trans_param & 0x00ff; - trans_param ++; //r.ïåðåõîäèì ê ñëåäóþùåé ÿ÷åéêå ïàìÿòè + trans_param ++; //r.��������� � ��������� ������ ������ } - CRC += trm_buf[trm_num_byt]; //r. âû÷èñëåíèå òåêóùåé êîíòðîëüíîé ñóììû - trm_num_byt++; //r. êîëè÷åñòâî áèò, îòïðàâëåííûõ â ïàêåò + CRC += trm_buf[trm_num_byt]; //r. ���������� ������� ����������� ����� + trm_num_byt++; //r. ���������� ���, ������������ � ����� } } - trm_buf[trm_num_byt] = CRC >> 8; //r. çàïèñü êîíòðîëüíîé ñóììû â ïàêåò + trm_buf[trm_num_byt] = CRC >> 8; //r. ������ ����������� ����� � ����� trm_buf[trm_num_byt+1] = CRC & 0x00ff; trm_num_byt += 2;