Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: Command.c
- Revision:
- 205:775d54fdf646
- Parent:
- 197:7a05523bf588
- Child:
- 206:00341a03e05c
diff -r e7e9762bf609 -r 775d54fdf646 Command.c --- a/Command.c Fri Nov 25 06:22:37 2016 +0000 +++ b/Command.c Mon Dec 19 14:08:31 2016 +0000 @@ -16,7 +16,7 @@ int ttemp; int OLDDAC=0; - +int rr = 123; unsigned int pDestT ; GyroParam *Flash; ///////////////flah and boot/////////// @@ -41,38 +41,109 @@ } } - +/* void WriteFlash(void) { - - NVIC_DisableIRQ(TIMER1_IRQn); - NVIC_DisableIRQ(TIMER2_IRQn); - NVIC_DisableIRQ(TIMER3_IRQn); - NVIC_DisableIRQ(EINT3_IRQn); - + SystemInitDef(); WriteCon("\r\n Start Prepare Sectors"); - if(u32IAP_PrepareSectors(18, 21) == IAP_STA_CMD_SUCCESS) + if(u32IAP_PrepareSectors(5, 5) == IAP_STA_CMD_SUCCESS) { WriteCon("\r\nPrepare Sectors OK"); WriteCon("\r\n Start Erase"); u32IAP_EraseSectors(IMG_START_SECTOR, IMG_END_SECTOR); WriteCon("\r\n AND Erase"); } - else WriteCon("\r\nPrepare Sectors ERROR"); + else WriteCon("\r\nPrepare Sectors ERROR "); SystemInit1(); Gyro.FlashMod = 0; } - + */ + void EraseFlash(void) + { + Gyro.FlashMod = 0; + rr = u32IAP_PrepareSectors(8, 10); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + + rr = u32IAP_EraseSectors(8, 10); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + } + + void WriteFlash(void) + + { Gyro.FlashMod = 0; + + //SystemInitDef(); + NVIC_DisableIRQ(TIMER1_IRQn); + NVIC_DisableIRQ(TIMER2_IRQn); + NVIC_DisableIRQ(TIMER3_IRQn); + NVIC_DisableIRQ(EINT3_IRQn); + + unsigned int start_address = (unsigned int) & GyroP; + sprintf((Time)," dffddfd <%07d> ",&rr); + WriteCon(Time); + ////unsigned int address=0x0003000; + rr = u32IAP_PrepareSectors(8, 10); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + + rr = u32IAP_EraseSectors(8, 10); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + + rr = u32IAP_PrepareSectors(8, 10); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + + /// SystemInitDef(); + rr = u32IAP_CopyRAMToFlash(0x0009000, &GyroP , 1024); + sprintf((Time)," dffddfd <%07d> ",rr); + WriteCon(Time); + // SystemInit1(); // Инициализация контроллера: установка тактовых частот + //SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 103MHz + + NVIC_EnableIRQ(TIMER1_IRQn); + NVIC_EnableIRQ(TIMER2_IRQn); + NVIC_EnableIRQ(TIMER3_IRQn); + NVIC_EnableIRQ(EINT3_IRQn); + + } void ReadFlash ( void) { + NVIC_DisableIRQ(TIMER1_IRQn); + NVIC_DisableIRQ(TIMER2_IRQn); + NVIC_DisableIRQ(TIMER3_IRQn); + NVIC_DisableIRQ(EINT3_IRQn); Gyro.FlashMod = 0; WriteCon("\r\n Pirivet Flash"); - pDestT= (unsigned int) (0x10000); + + pDestT= (unsigned int) (0x9000); Flash = (GyroParam*) pDestT; GyroP = *(Flash); - sprintf((Time)," dffddfd <%07d> ", GyroP.Str.K_WP_rst_heating); - WriteCon(Time); + + NVIC_EnableIRQ(TIMER1_IRQn); + NVIC_EnableIRQ(TIMER2_IRQn); + NVIC_EnableIRQ(TIMER3_IRQn); + NVIC_EnableIRQ(EINT3_IRQn); + //char table = (char*)your_address; + /* sprintf((Time)," dffddfd <%07d> ",GyroP.Array[10]); + WriteCon(Time);*/ + + + /*int address = flash_size() - SECTOR_SIZE; //Write in last sector + + int *data = (int*)address; + printf("Starting\r\n"); + // erase_sector(address); do not erase the previous content + // int numbers[10] = {0, 1, 10, 100, 1000, 10000, 1000000, 10000000, 100000000, 1000000000}; + // program_flash(address, (char*)&numbers, 40); //dont overwrite the previous data + printf("Resulting flash: \r\n"); + for (int i = 0; i<10; i++) + printf("%d\r\n", data[i]); //display the non volatile data + + printf("Done\r\n\n");*/ } ///////////////end flah and boot/////////// void M_RateA(void) @@ -83,7 +154,7 @@ case 3: if(Gyro.Event_500Hz ) CMD_Delta_PS(); break; case 4: if(Gyro.EXT_Latch ) CMD_Delta_PS(); break; case 5: if(Gyro.Event_500Hz ) CMD_Delta_Bins(); break; - case 6: if(Gyro.B_Delta_EventEXT ) CMD_B_Delta(); break; + case 6: if(Gyro.EXT_Latch ) CMD_B_Delta(); break; case 7: if(Gyro.Event_500Hz ) CMD_B_Delta(); break; } } @@ -104,6 +175,8 @@ Check(BuffTemp, 6); WriteConN (BuffTemp,6); + /*sprintf((Time),"READ Param = <%07d> GyroP.Array[NP] = <%07d> NP= <%07d> Gyro.CaunPlus+Gyro.CaunMin-5000 <%07d> \r\n",Param, GyroP.Array[NP], NP, GyroP.Str.PLC_Lern); + WriteCon(Time);*/ } void CMD_M_Param_W(void) { @@ -120,10 +193,12 @@ BuffTemp[0] = Gyro.SOC_Out; BuffTemp[1] = Gyro.My_Addres; BuffTemp[2] = Gyro.CMD_In; - BuffTemp[3] = 0x00;//старший байт требуемого параметра + BuffTemp[3] = (GyroP.Array[NP]>> 8) & 0xff;//старший байт требуемого параметра Check(BuffTemp, 6); WriteConN (BuffTemp,6); + /* sprintf((Time),"READ Param = <%07d> GyroP.Array[NP] = <%07d> NP= <%07d> GyroP.Str.PLC_Lern = <%07d> \r\n",Param, GyroP.Array[NP], NP, GyroP.Str.PLC_Lern); + WriteCon(Time);*/ } void CMD_Maintenance(void) { @@ -141,9 +216,8 @@ } void CMD_B_Delta(void) { - //Gyro.B_Delta_Event500=0; Gyro.Event_500Hz=0; - Gyro.B_Delta_EventEXT=0; + Gyro.EXT_Latch=0; unsigned int Temp; BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; @@ -160,7 +234,6 @@ void CMD_Delta_Bins(void) { Gyro.Event_500Hz=0; - //Gyro.Delta_Bins_Event500=0; unsigned int Temp; BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; @@ -178,7 +251,6 @@ } void CMD_Delta_PS(void) { - //Gyro.Delta500_Event=0; Gyro.EXT_Latch=0; Gyro.Event_500Hz=0; unsigned int Temp; @@ -423,7 +495,7 @@ BuffTemp[22] = (Temp >> 8) & 0xff; BuffTemp[23] = (Temp >> 0) & 0xff; - Temp = Gyro.PLC_Delta >> 16; + Temp =0x0;// Gyro.PLC_Delta >> 16; BuffTemp[24] = (Temp >> 8) & 0xff; BuffTemp[25] = (Temp >> 0) & 0xff;// @@ -590,7 +662,7 @@ void Gph_W() { - Gyro.flagGph_W=3; + //Gyro.flagGph_W=3; Out_G_photo(BuffTemp[4],BuffTemp[5]); } @@ -749,25 +821,6 @@ } - - - - - - - - - - - - - - - - - - - void TechLog(void) { if (ReadCon (Time)) { @@ -776,205 +829,13 @@ //////////////////////Выбор FlashMod/////////////////////////// //////////////////////////////////////////////////////////////// - if (Time[0] == 'B') - { - // sprintf((Time),"<%015d>\r\n", ModArray[7]); - WriteCon(Time);} + if (Time[0] == 'B') Gyro.FlashMod=1; if (Time[0] == 'W') {Gyro.FlashMod=2;} if (Time[0] == 'R') {Gyro.FlashMod=3;} + if (Time[0] == 'E') {Gyro.FlashMod=4;} /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// - if (Time[0] == 'H') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать - sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции - WriteCon(Time); - sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел - WriteCon(Time); - } - if (Time[0] == 'D') { - Gyro.Discharg = StartDischarg; - } - if (Time[0] == 'L') { - Gyro.BackLight = StartBackLight; - } - if (Time[0] == 'F') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf((Time)," <%015d>", Gyro.CuruAngle); - WriteCon(Time); - } - if (Time[0] == 'q') { // внешняя защелка - Gyro.EXT_Latch=1; - } - if (Time[0] == '1') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_1Point[i]); - WriteCon(Time); - } - if (Time[0] == '2') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_32Point[CountV31]); - WriteCon(Time); - } - if (Time[0] == '3') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16Point[i]); - WriteCon(Time); - } - if (Time[0] == '4') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_8Point[i]); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_16PointD[i]); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_32Point[i]); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_Restored_sin[i]); - WriteCon(Time); - sprintf(Time,"\r\n\r\n\r\n"); - WriteCon(Time); - } - if (Time[0] == 'z'){ // выдача технологичес6кая - - sprintf(Time,"\r\n"); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp+=(Buff_Restored_sin[i]); - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_64Point[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_32Point[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_16Point[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_16PointD[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_8Point[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - - for (int i = 0; i < 32; i++ ) - { - ttemp += Buff_1Point[i]; - } - sprintf((Time)," %d ",ttemp); - WriteCon(Time); - } - if (Time[0] == '6') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ ) - { - sprintf((Time + i * 9)," <%07d>", (Buff_Restored_Mod[i]>>20)); - } - WriteCon(Time); - } - /* if (Time[0] == '7') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - - for (int i = 0; i < 32; i++ )sprintf((Time + i * 13)," <%010d>", (BuffADC_64Point[i+32]>>10)); - WriteCon(Time); - } */ - /*for (int i = 32; i < 64; i++ )sprintf((Time + i *8)," <%05d> ",Buff_ADC_5[i]); - WriteCon(Time);*/ - /* - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 64; i++ )sprintf((Time + i * 9)," <%05d> ",BuffADC_16Point[i]>>16); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 64; i++ )sprintf((Time + i * 14)," <%010d> ",BuffADC_32Point[i]); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 64; i++ )sprintf((Time + i * 14)," <%010d> ",BuffADC_64Point[i]>>16); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 64; i++ )sprintf((Time + i * 14)," <%010d> ",BuffADC_32PointD[i]); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf(Time,"\r\n"); - WriteCon(Time); - - */ - - - /* if (Time[0] == 'm') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 64; i++ )sprintf((Time + i * 10)," <%010d> ", ModArray[i]); - WriteCon(Time); - }*/ - if (Time[0] == '9') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.Frq); - WriteCon(Time); - } - /*if (Time[0] == 'p') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.MaxAmp); - WriteCon(Time); - }*/ - if (Time[0] == 'x') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf((Time)," Gyro.MaxAmp = <%07d> Gyro.CaunPlus = <%07d> Gyro.CaunMin= <%07d> Gyro.CaunPlus+Gyro.CaunMin-5000 <%07d> ",Gyro.MaxAmp, Gyro.CaunPlus, Gyro.CaunMin, ((Gyro.CaunPlus + Gyro.CaunMin)-5000)); - WriteCon(Time); - } - if (Time[0] == 'm') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - sprintf((Time),"PLC_Delta <%07d> ", Gyro.PLC_Delta); WriteCon(Time); - sprintf((Time),"PLC_DeltaADD <%07d> ", Gyro.PLC_DeltaADD); WriteCon(Time); - } if (Time[0] == 'V') { // выдача технологическая Spi.DAC_B += 200; /* sprintf(Time,"%d\r\n", Spi.DAC_B); @@ -984,62 +845,24 @@ Spi.DAC_B -= 200; /* sprintf(Time,"%d\r\n", Spi.DAC_B); WriteCon(Time);*/ - } - + } if (Time[0] == 'w') TypeMod=2; if (Time[0] == 'a') TypeMod=1; if (Time[0] == 's') TypeMod=0; //////////////////////////////////////////////////////////////////////////////// - /*Запись лога регулировки частоты*/ - if (Time[0] == 'y') Gyro.flag=1; //включит передачу - if (Time[0] == 'u') Gyro.flag=0; //LPC_TIM1->MR0+1000 вносим помеху - if (Time[0] == 'i') {Gyro.flag=2; } //LPC_TIM1->MR0 убираем помеху - if (Time[0] == 'o') Gyro.flag=3; //Отключить передачу - if (Time[0] == 'p') Gyro.LogHZ = 1; //Отключить передачу - if (Time[0] == 'l') Gyro.LogHZ = 0; //Отключить передачу - //////////////////////////////////////////////////////////////////////////////////// /*Запись лога регулировки периметра*/ if (Time[0] == 'g') Gyro.LogPLC=1; if(OLDDAC) Spi.DAC_B=OLDDAC; //включит передачу if (Time[0] == 'h') {Gyro.LogPLC=2; Spi.DAC_B=19000; Gyro.PLC_Error2Mode = 1400; OLDDAC=Spi.DAC_B; Spi.DAC_B=19000;} //десперсионка if (Time[0] == 'j') Gyro.LogPLC=0; if(OLDDAC) Spi.DAC_B=OLDDAC; //регулировка без выдачиж - if (Time[0] == 'b') Gyro.StrayPLC_flag = 3; //LPC_TIM1->MR0-1000 вносим помеху - - if (Time[0] == 'n') Gyro.StrayPLC_flag = 2; //LPC_TIM1->MR0+2500 большая помеха. + if (Time[0] == 'k') Gyro.LogPLC = 0; //Отключить передачу - if (Time[0] == 'd') {Gyro.ModJump = 1; } //прыжок на воду + - if (Time[0] == 'f') {Gyro.ModJump = 2; } //прыжок на воду - - //if (Time[0] == 'z') {Gyro.ModJump = 3; Spi.DAC_B = 0x3a98; } //прообежать по всем модам. + ////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////выдача частоты в терминал длля записи лога/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////G=1,K=0 в терменале - /* if((Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1)) //Запись для Ориджина. - { - Gyro.Event_500Hz=0; - sprintf((Time),"%d \r\n",Gyro.MaxAmp); - WriteCon(Time); - } - - */ - if (Time[0] == '8') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ ) - { - ttemp=(Buff_AMP64P[i]-(Buff_AMP[i])); - if (ttemp < 0) WriteCon("1"); else WriteCon("0"); - } - } - if (Time[0] == 'q') { // выдача технологическая - sprintf(Time,"\r\n"); - WriteCon(Time); - for (int i = 0; i < 32; i++ ) - { - ttemp=(Buff_Restored_sin[i]); - if (ttemp < 0) WriteCon("1"); else WriteCon("0"); - } - } + if (Gyro.PLC_Error2Mode) { // выдача технологическая // sprintf(Time,"\r\nPLC_Error2Mode"); WriteCon(Time);