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
main.c@146:2bea299a7c4f, 2016-04-28 (annotated)
- Committer:
- Kovalev_D
- Date:
- Thu Apr 28 13:54:29 2016 +0000
- Revision:
- 146:2bea299a7c4f
- Parent:
- 145:f023b2f18b82
- Child:
- 147:1aed74f19a8f
?????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igor_v | 8:5188b1448d34 | 1 | //ssdfwewedfsfds |
igor_v | 0:8ad47e2b6f00 | 2 | /****************************************Copyright (c)**************************************************** |
igor_v | 0:8ad47e2b6f00 | 3 | **--------------File Info--------------------------------------------------------------------------------- |
igor_v | 0:8ad47e2b6f00 | 4 | ** File name: main.c |
igor_v | 0:8ad47e2b6f00 | 5 | ** Last modified Date: 2011-10-24 |
igor_v | 0:8ad47e2b6f00 | 6 | ** Last Version: V1.00 |
igor_v | 0:8ad47e2b6f00 | 7 | ** Descriptions: The main() function |
igor_v | 0:8ad47e2b6f00 | 8 | ** |
igor_v | 0:8ad47e2b6f00 | 9 | **-------------------------------------------------------------------------------------------------------- |
igor_v | 0:8ad47e2b6f00 | 10 | ** Created by: Electrooptica Incorp. |
igor_v | 0:8ad47e2b6f00 | 11 | ** Created date: 2011-08-22 |
igor_v | 0:8ad47e2b6f00 | 12 | ** Version: V1.00 |
igor_v | 3:ed8744c5f67a | 13 | ** Descriptions: |
igor_v | 3:ed8744c5f67a | 14 | **-------------------------------------------------------------------------------------------------------- |
igor_v | 30:17c84ed091b3 | 15 | последнии изменения |
igor_v | 30:17c84ed091b3 | 16 | //2016_02_03_17_47 |
igor_v | 31:c783288001b5 | 17 | //2016_02_06 igor |
igor_v | 37:bdd52117b56e | 18 | //2016_06 Dima |
Kovalev_D | 41:70d12776d1ef | 19 | //2016_02_06 21:20 Kovalev_D |
igor_v | 0:8ad47e2b6f00 | 20 | *********************************************************************************************************/ |
igor_v | 21:bc8c1cec3da6 | 21 | |
igor_v | 0:8ad47e2b6f00 | 22 | |
igor_v | 0:8ad47e2b6f00 | 23 | #include "Global.h" |
igor_v | 0:8ad47e2b6f00 | 24 | //#include <math.h> |
Diletant | 74:f4d9c3403578 | 25 | #include "Device.h" |
Kovalev_D | 130:1421dda4d7e7 | 26 | //#include "IAP.h" |
igor_v | 0:8ad47e2b6f00 | 27 | /****************************************************************************** |
igor_v | 0:8ad47e2b6f00 | 28 | ** Main Function main() |
igor_v | 0:8ad47e2b6f00 | 29 | ******************************************************************************/ |
Diletant | 138:14a0c452cf32 | 30 | extern Device device; //Single global for all device hardware-independent algorithm |
Kovalev_D | 132:2c7bec5cf6fe | 31 | #define IMG_START_SECTOR 0x00010000 /* Sector 16 */ |
Kovalev_D | 136:19b9e6abb86f | 32 | #define IMG_END_SECTOR 0x00017FFF /* Sector 20 */ |
Kovalev_D | 136:19b9e6abb86f | 33 | |
Kovalev_D | 132:2c7bec5cf6fe | 34 | /* |
Kovalev_D | 132:2c7bec5cf6fe | 35 | #define IMG_START_SECTOR 0x00030000//0x00010000 /* Sector 16 |
Kovalev_D | 132:2c7bec5cf6fe | 36 | #define IMG_END_SECTOR 0x00037FFF */ |
Kovalev_D | 136:19b9e6abb86f | 37 | unsigned int addres; |
Kovalev_D | 136:19b9e6abb86f | 38 | |
Kovalev_D | 134:caf4c9cd5052 | 39 | uint32_t Result[5]; |
igor_v | 0:8ad47e2b6f00 | 40 | extern uint32_t CMD_Mode; |
igor_v | 52:30f2e52a493f | 41 | unsigned int secPuls; |
igor_v | 52:30f2e52a493f | 42 | float DACF, K_DAC; |
Kovalev_D | 107:4d178bcc9d8a | 43 | int tempAMP; |
Kovalev_D | 139:1716152517aa | 44 | int temp; |
Kovalev_D | 136:19b9e6abb86f | 45 | //unsigned int *Add; |
Kovalev_D | 136:19b9e6abb86f | 46 | |
Kovalev_D | 136:19b9e6abb86f | 47 | unsigned int status; |
Kovalev_D | 136:19b9e6abb86f | 48 | unsigned int Para; |
igor_v | 52:30f2e52a493f | 49 | int main (void) |
igor_v | 52:30f2e52a493f | 50 | { |
igor_v | 110:6406b7ac0442 | 51 | int ttemp; |
Kovalev_D | 136:19b9e6abb86f | 52 | |
igor_v | 110:6406b7ac0442 | 53 | unsigned int TempA; |
Kovalev_D | 136:19b9e6abb86f | 54 | SystemInit1(); // Инициализация контроллера: установка тактовых частот |
Kovalev_D | 136:19b9e6abb86f | 55 | addres = 0x10000; |
Kovalev_D | 133:90d0bf0e2996 | 56 | |
Kovalev_D | 133:90d0bf0e2996 | 57 | |
Kovalev_D | 134:caf4c9cd5052 | 58 | //FlashDMA_Init(); // Загрузка параметров с флэш |
Kovalev_D | 86:398da56ef751 | 59 | SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz |
Kovalev_D | 88:b5c1d9d338d1 | 60 | |
Kovalev_D | 134:caf4c9cd5052 | 61 | |
Kovalev_D | 134:caf4c9cd5052 | 62 | |
Kovalev_D | 86:398da56ef751 | 63 | GLD_Init(); |
Kovalev_D | 92:c892f0311aa7 | 64 | ///////////старый UART |
igor_v | 91:a2bb81eaa183 | 65 | // UARTInit(); // инициализация UART0 на скорость 38400. |
igor_v | 91:a2bb81eaa183 | 66 | // UART1_Init(); // инициализация UART1 на скорость 38400. |
Kovalev_D | 88:b5c1d9d338d1 | 67 | |
igor_v | 91:a2bb81eaa183 | 68 | |
Kovalev_D | 134:caf4c9cd5052 | 69 | UART_InitSet (0, 921600, 0x03); // надо проверить, мож чо с ногам |
Kovalev_D | 129:406995a91322 | 70 | // UART_InitSet (1, 921600, 0x03); |
Kovalev_D | 129:406995a91322 | 71 | UART_InitSet (1, 115200, 0x03); |
Kovalev_D | 99:3d8f206ceac2 | 72 | |
Kovalev_D | 86:398da56ef751 | 73 | //////////// |
Kovalev_D | 90:d9b6a4bc5065 | 74 | //DAC_ADC_Exchange_Init(); // инициализация обмена АЦП и ЦАП. |
Kovalev_D | 88:b5c1d9d338d1 | 75 | |
Diletant | 46:2670fa0fcebc | 76 | IntLatch_Init(); // инициализация внутренней защелки. |
Diletant | 46:2670fa0fcebc | 77 | ExtLatch_Init(); // инициализация внешней защелки. |
igor_v | 21:bc8c1cec3da6 | 78 | LoadFlashParam(FromFLASH); //загрузка параметров. |
Kovalev_D | 89:a0d344db227e | 79 | |
Kovalev_D | 112:4a96133a1311 | 80 | // open_all_loops(); //#define open_all_loops() RgConA = 0 (Основной регистр управления устройства (0 - включить, 1 - отключить)). |
Kovalev_D | 129:406995a91322 | 81 | // Output.Str.HF_reg = Device_blk.Str.HF_min; //HFO output voltage = максивальное напряжение на ГВЧ. |
igor_v | 30:17c84ed091b3 | 82 | init_PLC(); //Инициализация СРП(регулировка периметра) |
igor_v | 30:17c84ed091b3 | 83 | init_Dither_reg(); //инициализация вибропривода |
Kovalev_D | 112:4a96133a1311 | 84 | // RgConB = RATE_VIBRO_1; // дополнительный регистр управления = разность вибросчетчиков после фильтра скольз.среднего(#define RATE_VIBRO_1 0x0001) |
Kovalev_D | 112:4a96133a1311 | 85 | // close_all_loops(); |
igor_v | 51:81f47b817071 | 86 | |
Kovalev_D | 105:bd01d8d20fb6 | 87 | Out_G_photo(200,200); //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины. |
Kovalev_D | 105:bd01d8d20fb6 | 88 | |
Kovalev_D | 47:d902ef6f7564 | 89 | WriteCon1("\n\r ...GL start programm uart ACK.... "); |
Kovalev_D | 47:d902ef6f7564 | 90 | WriteCon("\n\r ...GL start programm uart Tech.... "); |
igor_v | 15:f5191a1c3805 | 91 | sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции |
igor_v | 13:e2a1d18677b8 | 92 | WriteCon(Time); |
igor_v | 11:af609f6dee46 | 93 | |
igor_v | 127:6a7472d67804 | 94 | Gyro.PLC_Error2Mode = 10; // начальная задержка (неработает СРП) |
igor_v | 11:af609f6dee46 | 95 | |
Kovalev_D | 50:0e3d47f18a50 | 96 | while ( 1 ) { //основной цикл. |
Kovalev_D | 107:4d178bcc9d8a | 97 | |
Kovalev_D | 108:030cdde08314 | 98 | G_Photo_Exchange(); |
Kovalev_D | 108:030cdde08314 | 99 | Concol (); // Проврка 0 консоли (вход и выход) |
Kovalev_D | 93:b3803774f110 | 100 | Concol1 (); // Проврка 0 консоли (вход и выход) |
Kovalev_D | 99:3d8f206ceac2 | 101 | Read_CMD(); |
igor_v | 3:ed8744c5f67a | 102 | if (OutBufConCount) OutBufConCount--; |
Kovalev_D | 108:030cdde08314 | 103 | if (OutBufCon1Count) OutBufCon1Count--; |
Kovalev_D | 121:bbae560cdd43 | 104 | |
Kovalev_D | 95:dd51e577e114 | 105 | if (ReadCon (Time)) { |
Kovalev_D | 132:2c7bec5cf6fe | 106 | ///////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 107 | //////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 108 | //////////////////////Выбор FlashMod/////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 109 | //////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 110 | |
Kovalev_D | 136:19b9e6abb86f | 111 | if (Time[0] == 'B') { |
Kovalev_D | 132:2c7bec5cf6fe | 112 | Gyro.FlashMod=1; |
Kovalev_D | 136:19b9e6abb86f | 113 | } |
Kovalev_D | 136:19b9e6abb86f | 114 | if (Time[0] == 'W') { |
Kovalev_D | 136:19b9e6abb86f | 115 | Gyro.FlashMod=2; |
Kovalev_D | 132:2c7bec5cf6fe | 116 | } |
Kovalev_D | 132:2c7bec5cf6fe | 117 | if (Time[0] == 'R') { |
Kovalev_D | 136:19b9e6abb86f | 118 | Gyro.FlashMod=3; |
Kovalev_D | 132:2c7bec5cf6fe | 119 | } |
Kovalev_D | 132:2c7bec5cf6fe | 120 | |
Kovalev_D | 136:19b9e6abb86f | 121 | |
Kovalev_D | 132:2c7bec5cf6fe | 122 | /////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 123 | /////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 124 | //////////////////////////////////////////////////////////////// |
igor_v | 48:8697dfe679b9 | 125 | |
Kovalev_D | 141:c6de20b9b483 | 126 | if (Time[0] == 'H') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать |
igor_v | 15:f5191a1c3805 | 127 | sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции |
igor_v | 15:f5191a1c3805 | 128 | WriteCon(Time); |
igor_v | 52:30f2e52a493f | 129 | sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел |
igor_v | 15:f5191a1c3805 | 130 | WriteCon(Time); |
igor_v | 52:30f2e52a493f | 131 | } |
igor_v | 52:30f2e52a493f | 132 | if (Time[0] == 'D') { |
igor_v | 52:30f2e52a493f | 133 | Gyro.Discharg = StartDischarg; |
igor_v | 15:f5191a1c3805 | 134 | } |
igor_v | 52:30f2e52a493f | 135 | if (Time[0] == 'L') { |
igor_v | 52:30f2e52a493f | 136 | Gyro.BackLight = StartBackLight; |
igor_v | 52:30f2e52a493f | 137 | } |
Kovalev_D | 98:95b8e79f13e1 | 138 | |
Kovalev_D | 108:030cdde08314 | 139 | if (Time[0] == 'F') { // выдача технологическая |
Kovalev_D | 105:bd01d8d20fb6 | 140 | sprintf(Time,"\r\n"); |
Kovalev_D | 105:bd01d8d20fb6 | 141 | WriteCon(Time); |
Kovalev_D | 146:2bea299a7c4f | 142 | sprintf((Time)," Gyro.Termo = <%07d> Spi.ADC1 = <%07d> Spi.ADC1_Accum = <%07d>",Spi.ADC4,Spi.ADC4,Spi.ADC4_Accum ); |
Kovalev_D | 105:bd01d8d20fb6 | 143 | WriteCon(Time); |
Kovalev_D | 105:bd01d8d20fb6 | 144 | } |
Kovalev_D | 128:1e4675a36c93 | 145 | |
Kovalev_D | 128:1e4675a36c93 | 146 | if (Time[0] == 'q') { // внешняя защелка |
Kovalev_D | 128:1e4675a36c93 | 147 | Gyro.EXT_Latch=1; |
Kovalev_D | 128:1e4675a36c93 | 148 | } |
Kovalev_D | 98:95b8e79f13e1 | 149 | if (Time[0] == '1') { // выдача технологическая |
Kovalev_D | 88:b5c1d9d338d1 | 150 | sprintf(Time,"\r\n"); |
Kovalev_D | 95:dd51e577e114 | 151 | WriteCon(Time); |
Kovalev_D | 96:1c8536458119 | 152 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_1Point[i]); |
igor_v | 52:30f2e52a493f | 153 | WriteCon(Time); |
igor_v | 52:30f2e52a493f | 154 | } |
Kovalev_D | 98:95b8e79f13e1 | 155 | |
Kovalev_D | 98:95b8e79f13e1 | 156 | if (Time[0] == '2') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 157 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 158 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 159 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_8Point[i]); |
Kovalev_D | 98:95b8e79f13e1 | 160 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 161 | } |
Kovalev_D | 98:95b8e79f13e1 | 162 | if (Time[0] == '3') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 163 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 164 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 165 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16Point[i]); |
Kovalev_D | 98:95b8e79f13e1 | 166 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 167 | } |
Kovalev_D | 98:95b8e79f13e1 | 168 | |
Kovalev_D | 98:95b8e79f13e1 | 169 | if (Time[0] == '4') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 170 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 171 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 172 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16PointD[i]); |
Kovalev_D | 98:95b8e79f13e1 | 173 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 174 | } |
Kovalev_D | 108:030cdde08314 | 175 | |
Kovalev_D | 108:030cdde08314 | 176 | |
Kovalev_D | 108:030cdde08314 | 177 | |
Kovalev_D | 104:ab1cb4ff56b2 | 178 | if (Time[0] == 'z') { // выдача технологическая |
Kovalev_D | 104:ab1cb4ff56b2 | 179 | sprintf(Time,"\r\n"); |
Kovalev_D | 104:ab1cb4ff56b2 | 180 | WriteCon(Time); |
Kovalev_D | 104:ab1cb4ff56b2 | 181 | |
Kovalev_D | 104:ab1cb4ff56b2 | 182 | for (int i = 0; i < 32; i++ ) |
Kovalev_D | 104:ab1cb4ff56b2 | 183 | { |
Kovalev_D | 104:ab1cb4ff56b2 | 184 | ttemp=(Buff_16PointD[i]); |
Kovalev_D | 104:ab1cb4ff56b2 | 185 | if (ttemp < 0) WriteCon("1"); else WriteCon("0"); |
Kovalev_D | 104:ab1cb4ff56b2 | 186 | } |
Kovalev_D | 104:ab1cb4ff56b2 | 187 | |
Kovalev_D | 104:ab1cb4ff56b2 | 188 | } |
Kovalev_D | 104:ab1cb4ff56b2 | 189 | |
Kovalev_D | 104:ab1cb4ff56b2 | 190 | |
Kovalev_D | 98:95b8e79f13e1 | 191 | if (Time[0] == '5') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 192 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 193 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 194 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]); |
Kovalev_D | 98:95b8e79f13e1 | 195 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 196 | } |
Kovalev_D | 98:95b8e79f13e1 | 197 | |
Kovalev_D | 98:95b8e79f13e1 | 198 | if (Time[0] == '6') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 199 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 200 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 201 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_Restored_sin[i]); |
Kovalev_D | 98:95b8e79f13e1 | 202 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 203 | } |
Kovalev_D | 95:dd51e577e114 | 204 | |
Kovalev_D | 95:dd51e577e114 | 205 | |
Kovalev_D | 104:ab1cb4ff56b2 | 206 | |
Kovalev_D | 145:f023b2f18b82 | 207 | |
Kovalev_D | 104:ab1cb4ff56b2 | 208 | |
Kovalev_D | 104:ab1cb4ff56b2 | 209 | |
Kovalev_D | 98:95b8e79f13e1 | 210 | if (Time[0] == '7') { // выдача технологическая |
Kovalev_D | 95:dd51e577e114 | 211 | sprintf(Time,"\r\n"); |
Kovalev_D | 95:dd51e577e114 | 212 | WriteCon(Time); |
Kovalev_D | 96:1c8536458119 | 213 | for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i])); |
Kovalev_D | 95:dd51e577e114 | 214 | WriteCon(Time); |
Kovalev_D | 95:dd51e577e114 | 215 | } |
Kovalev_D | 98:95b8e79f13e1 | 216 | if (Time[0] == '9') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 217 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 218 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 219 | for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.Frq); |
Kovalev_D | 98:95b8e79f13e1 | 220 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 221 | } |
Kovalev_D | 98:95b8e79f13e1 | 222 | |
Kovalev_D | 98:95b8e79f13e1 | 223 | if (Time[0] == 'p') { // выдача технологическая |
Kovalev_D | 98:95b8e79f13e1 | 224 | sprintf(Time,"\r\n"); |
Kovalev_D | 98:95b8e79f13e1 | 225 | WriteCon(Time); |
Kovalev_D | 99:3d8f206ceac2 | 226 | for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Cur_Amp); |
Kovalev_D | 98:95b8e79f13e1 | 227 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 228 | } |
Kovalev_D | 99:3d8f206ceac2 | 229 | if (Time[0] == 'm') { // выдача технологическая |
Kovalev_D | 99:3d8f206ceac2 | 230 | sprintf(Time,"\r\n"); |
Kovalev_D | 99:3d8f206ceac2 | 231 | WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 232 | // sprintf((Time),"Cur_Amp <%07d> ", Cur_Amp); WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 233 | // sprintf((Time),"Znak_Amp <%07d> ", Znak_Amp); WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 234 | // sprintf((Time),"AD_Regul <%07d> ", AD_Regul); WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 235 | |
Kovalev_D | 128:1e4675a36c93 | 236 | sprintf((Time),"PLC_Delta <%07d> ", Gyro.PLC_Delta); WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 237 | sprintf((Time),"PLC_DeltaADD <%07d> ", Gyro.PLC_DeltaADD); WriteCon(Time); |
Kovalev_D | 109:ee0cff33ad3b | 238 | // printf((Time),"AD_Regul <%07d> ", Delta); WriteCon(Time); |
Kovalev_D | 109:ee0cff33ad3b | 239 | |
Kovalev_D | 109:ee0cff33ad3b | 240 | // sprintf((Time),"Spi.DAC_B <%07d> ",Spi.DAC_B); WriteCon(Time);*/ |
Kovalev_D | 109:ee0cff33ad3b | 241 | // sprintf((Time),"MaxAmp <%07d> ", MaxAmp); WriteCon(Time); |
Kovalev_D | 109:ee0cff33ad3b | 242 | // sprintf((Time),"CaunAddPlus <%07d> ", CaunAddPlus); WriteCon(Time); |
Kovalev_D | 109:ee0cff33ad3b | 243 | // sprintf((Time),"CaunAddMin <%07d> ", CaunAddMin); WriteCon(Time); |
Kovalev_D | 109:ee0cff33ad3b | 244 | // sprintf((Time)," Gyro.Amp <%07d> ",amp); WriteCon(Time); |
Kovalev_D | 108:030cdde08314 | 245 | |
Kovalev_D | 99:3d8f206ceac2 | 246 | } |
Kovalev_D | 98:95b8e79f13e1 | 247 | if (Time[0] == 'V') { // выдача технологическая |
Kovalev_D | 109:ee0cff33ad3b | 248 | // Gyro.Frq+=65000; |
Kovalev_D | 121:bbae560cdd43 | 249 | Spi.DAC_B += 200; |
Kovalev_D | 109:ee0cff33ad3b | 250 | |
Kovalev_D | 98:95b8e79f13e1 | 251 | } |
Kovalev_D | 98:95b8e79f13e1 | 252 | if (Time[0] == 'v') { // выдача технологическая |
Kovalev_D | 109:ee0cff33ad3b | 253 | //Gyro.Frq-=65000; |
Kovalev_D | 121:bbae560cdd43 | 254 | Spi.DAC_B -= 200; |
Kovalev_D | 98:95b8e79f13e1 | 255 | } |
Kovalev_D | 139:1716152517aa | 256 | /* |
Kovalev_D | 139:1716152517aa | 257 | if (Time[0] == 'Y') { // выдача технологическая |
Kovalev_D | 139:1716152517aa | 258 | Log=1; |
Kovalev_D | 139:1716152517aa | 259 | }*/ |
Kovalev_D | 139:1716152517aa | 260 | |
Kovalev_D | 139:1716152517aa | 261 | |
Kovalev_D | 139:1716152517aa | 262 | |
Kovalev_D | 139:1716152517aa | 263 | //////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 139:1716152517aa | 264 | /*Запись лога настройки частоты*/ |
Kovalev_D | 140:1fbf117fc120 | 265 | if (Time[0] == 'y') Gyro.LogHZ=1; //включит передачу |
Kovalev_D | 140:1fbf117fc120 | 266 | if (Time[0] == 'u') Gyro.StrayHZ_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху |
Kovalev_D | 140:1fbf117fc120 | 267 | if (Time[0] == 'i') Gyro.StrayHZ_flag = 0; //LPC_TIM1->MR0 убираем помеху |
Kovalev_D | 140:1fbf117fc120 | 268 | if (Time[0] == 'o') Gyro.LogHZ=0; //Отключить передачу |
Kovalev_D | 139:1716152517aa | 269 | //////////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 142:7a6f68601291 | 270 | /*Запись лога настройки периметра*/ |
Kovalev_D | 140:1fbf117fc120 | 271 | if (Time[0] == 'g') Gyro.LogPLC=1; //включит передачу |
Kovalev_D | 140:1fbf117fc120 | 272 | if (Time[0] == 'h') Gyro.StrayPLC_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху |
Kovalev_D | 142:7a6f68601291 | 273 | if (Time[0] == 'j') Gyro.StrayPLC_flag = 0; |
Kovalev_D | 142:7a6f68601291 | 274 | if (Time[0] == 'b') Gyro.StrayPLC_flag = 3; //LPC_TIM1->MR0-1000 вносим помеху |
Kovalev_D | 140:1fbf117fc120 | 275 | if (Time[0] == 'n') Gyro.StrayPLC_flag = 2; //LPC_TIM1->MR0 убираем помеху |
Kovalev_D | 140:1fbf117fc120 | 276 | if (Time[0] == 'k') Gyro.LogPLC=0; //Отключить передачу |
Kovalev_D | 140:1fbf117fc120 | 277 | |
Kovalev_D | 141:c6de20b9b483 | 278 | ////////////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 139:1716152517aa | 279 | |
Kovalev_D | 96:1c8536458119 | 280 | |
Kovalev_D | 98:95b8e79f13e1 | 281 | if (Time[0] == '8') { // выдача технологическая |
Kovalev_D | 96:1c8536458119 | 282 | sprintf(Time,"\r\n"); |
Kovalev_D | 96:1c8536458119 | 283 | WriteCon(Time); |
Kovalev_D | 96:1c8536458119 | 284 | // for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_AMP64P[i]-(Buff_AMP[i]*2)); |
Kovalev_D | 96:1c8536458119 | 285 | for (int i = 0; i < 32; i++ ) |
Kovalev_D | 96:1c8536458119 | 286 | { |
Kovalev_D | 96:1c8536458119 | 287 | ttemp=(Buff_AMP64P[i]-(Buff_AMP[i])); |
Kovalev_D | 96:1c8536458119 | 288 | if (ttemp < 0) WriteCon("1"); else WriteCon("0"); |
Kovalev_D | 96:1c8536458119 | 289 | } |
Kovalev_D | 96:1c8536458119 | 290 | // WriteCon(Time); |
Kovalev_D | 96:1c8536458119 | 291 | } |
Kovalev_D | 95:dd51e577e114 | 292 | |
Kovalev_D | 98:95b8e79f13e1 | 293 | if (Time[0] == 'b') { // выдача технологическая |
Kovalev_D | 92:c892f0311aa7 | 294 | sprintf(Time,"\r\n"); |
Kovalev_D | 95:dd51e577e114 | 295 | WriteCon(Time); |
Kovalev_D | 98:95b8e79f13e1 | 296 | |
Kovalev_D | 98:95b8e79f13e1 | 297 | for (int i = 0; i < 32; i++ ) |
Kovalev_D | 98:95b8e79f13e1 | 298 | { |
Kovalev_D | 98:95b8e79f13e1 | 299 | ttemp=(Buff_Restored_sin[i]); |
Kovalev_D | 98:95b8e79f13e1 | 300 | if (ttemp < 0) WriteCon("1"); else WriteCon("0"); |
Kovalev_D | 98:95b8e79f13e1 | 301 | } |
Kovalev_D | 98:95b8e79f13e1 | 302 | |
Kovalev_D | 92:c892f0311aa7 | 303 | } |
Kovalev_D | 98:95b8e79f13e1 | 304 | |
Kovalev_D | 128:1e4675a36c93 | 305 | if (Gyro.PLC_Error2Mode) { // выдача технологическая |
Kovalev_D | 128:1e4675a36c93 | 306 | sprintf(Time,"\r\nPLC_Error2Mode"); |
Kovalev_D | 128:1e4675a36c93 | 307 | WriteCon(Time); |
Kovalev_D | 128:1e4675a36c93 | 308 | } |
Kovalev_D | 121:bbae560cdd43 | 309 | |
Kovalev_D | 95:dd51e577e114 | 310 | } |
Kovalev_D | 108:030cdde08314 | 311 | |
Kovalev_D | 136:19b9e6abb86f | 312 | |
Kovalev_D | 116:66f1f0ff2dab | 313 | |
Kovalev_D | 116:66f1f0ff2dab | 314 | Event_100KHz(); |
Kovalev_D | 88:b5c1d9d338d1 | 315 | Event_1KHz(); |
Kovalev_D | 124:9ae09249f842 | 316 | Event_500Hz(); |
Kovalev_D | 116:66f1f0ff2dab | 317 | Event_1Hz(); |
Kovalev_D | 124:9ae09249f842 | 318 | |
Kovalev_D | 88:b5c1d9d338d1 | 319 | Event_Vibro(); |
Kovalev_D | 124:9ae09249f842 | 320 | |
Kovalev_D | 124:9ae09249f842 | 321 | switch(Gyro.ModeOut) { |
Kovalev_D | 124:9ae09249f842 | 322 | case 1: |
Kovalev_D | 124:9ae09249f842 | 323 | if(Gyro.Rate1_Event==1)CMD_Rate(); |
Kovalev_D | 124:9ae09249f842 | 324 | break; |
Kovalev_D | 124:9ae09249f842 | 325 | case 2: |
Kovalev_D | 124:9ae09249f842 | 326 | if(Gyro.Rate2_Event==1)CMD_Rate2(); |
Kovalev_D | 124:9ae09249f842 | 327 | break; |
Kovalev_D | 124:9ae09249f842 | 328 | case 3: |
Kovalev_D | 124:9ae09249f842 | 329 | if(Gyro.Delta500_Event==1)CMD_Delta_500Hz(); |
Kovalev_D | 128:1e4675a36c93 | 330 | break; |
Kovalev_D | 128:1e4675a36c93 | 331 | case 4: |
Kovalev_D | 128:1e4675a36c93 | 332 | if(Gyro.EXT_Latch==1){CMD_Delta_Ext();} |
Kovalev_D | 128:1e4675a36c93 | 333 | break; |
Kovalev_D | 124:9ae09249f842 | 334 | } |
igor_v | 111:8ee1ef722ba7 | 335 | if (Spi.ADC_NewData == 1) // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро |
igor_v | 110:6406b7ac0442 | 336 | { |
igor_v | 114:5cc38a53d8a7 | 337 | // можно апихнкть в функцию |
igor_v | 110:6406b7ac0442 | 338 | Spi.ADC_NewData = 0; |
Kovalev_D | 113:8be429494918 | 339 | Gyro.Termo = Spi.ADC1; |
Kovalev_D | 113:8be429494918 | 340 | Gyro.In1 = Spi.ADC2; |
Kovalev_D | 113:8be429494918 | 341 | Gyro.In2 = Spi.ADC3; |
Kovalev_D | 113:8be429494918 | 342 | Gyro.DeltaT = Spi.ADC4; |
Kovalev_D | 144:083c667ba848 | 343 | TempA = (0x7fff - Spi.ADC5) << 1; // перевернем знак и умножим на два (было 32000...0 стало 0 ...64000) |
Kovalev_D | 112:4a96133a1311 | 344 | |
igor_v | 110:6406b7ac0442 | 345 | Gyro.ADF_Accum += TempA; |
igor_v | 110:6406b7ac0442 | 346 | Gyro.ADS_Accum += TempA; |
igor_v | 110:6406b7ac0442 | 347 | Gyro.ADF_Count ++; |
igor_v | 110:6406b7ac0442 | 348 | Gyro.ADS_Count ++; |
igor_v | 110:6406b7ac0442 | 349 | |
igor_v | 111:8ee1ef722ba7 | 350 | if (Gyro.ADF_Count > 15) // если прошло 16 тактов виброподвеса |
igor_v | 110:6406b7ac0442 | 351 | { |
igor_v | 111:8ee1ef722ba7 | 352 | Gyro.AD_Fast = Gyro.ADF_Accum << 12; //обновляем данные и приводим в один масштаб |
igor_v | 110:6406b7ac0442 | 353 | Gyro.ADF_Count = 0; |
igor_v | 110:6406b7ac0442 | 354 | Gyro.ADF_Accum = 0; |
igor_v | 110:6406b7ac0442 | 355 | Gyro.ADF_NewData = 1; |
igor_v | 110:6406b7ac0442 | 356 | } |
igor_v | 111:8ee1ef722ba7 | 357 | if (Gyro.ADS_Count > 255) // если прошло 256 тактов виброподвеса |
igor_v | 110:6406b7ac0442 | 358 | { |
igor_v | 111:8ee1ef722ba7 | 359 | Gyro.AD_Slow = Gyro.ADS_Accum << 8; //обновляем данные и приводим в один масштаб |
igor_v | 110:6406b7ac0442 | 360 | Gyro.ADS_Count = 0; |
igor_v | 110:6406b7ac0442 | 361 | Gyro.ADS_Accum = 0; |
igor_v | 110:6406b7ac0442 | 362 | Gyro.ADS_NewData = 1; |
igor_v | 110:6406b7ac0442 | 363 | } |
igor_v | 110:6406b7ac0442 | 364 | } |
Kovalev_D | 112:4a96133a1311 | 365 | |
Kovalev_D | 113:8be429494918 | 366 | |
Kovalev_D | 113:8be429494918 | 367 | |
Kovalev_D | 113:8be429494918 | 368 | |
igor_v | 111:8ee1ef722ba7 | 369 | if (Gyro.ADF_NewData == 1) // был приход новых данных После быстрого фильтра AD |
igor_v | 111:8ee1ef722ba7 | 370 | { |
Kovalev_D | 112:4a96133a1311 | 371 | Gyro.ADF_NewData = 0; |
igor_v | 114:5cc38a53d8a7 | 372 | }// можно запихнкть в функцию |
igor_v | 114:5cc38a53d8a7 | 373 | |
igor_v | 114:5cc38a53d8a7 | 374 | if (Gyro.ADS_NewData == 1) // был приход новых данных После Медленного фильтра AD |
igor_v | 114:5cc38a53d8a7 | 375 | { |
Kovalev_D | 116:66f1f0ff2dab | 376 | |
igor_v | 114:5cc38a53d8a7 | 377 | Gyro.ADS_NewData = 0; |
igor_v | 114:5cc38a53d8a7 | 378 | PlcRegul();//Расчет |
Kovalev_D | 140:1fbf117fc120 | 379 | |
Kovalev_D | 141:c6de20b9b483 | 380 | |
Kovalev_D | 113:8be429494918 | 381 | |
Kovalev_D | 112:4a96133a1311 | 382 | }// можно запихнкть в функцию |
Kovalev_D | 112:4a96133a1311 | 383 | |
igor_v | 114:5cc38a53d8a7 | 384 | if(Gyro.VibroFrqRegulF == 1) //Регулеровка частоты виброподвеса |
Kovalev_D | 112:4a96133a1311 | 385 | { |
Kovalev_D | 112:4a96133a1311 | 386 | Gyro.VibroFrqRegulF = 0; |
Kovalev_D | 112:4a96133a1311 | 387 | VibroFrqRegul(); |
Kovalev_D | 112:4a96133a1311 | 388 | } |
igor_v | 114:5cc38a53d8a7 | 389 | |
igor_v | 114:5cc38a53d8a7 | 390 | if(Gyro.VibroAMPRegulF == 1) //Регулеровка Амплитуды виброподвеса |
Kovalev_D | 112:4a96133a1311 | 391 | { |
Kovalev_D | 112:4a96133a1311 | 392 | Gyro.VibroAMPRegulF = 0; |
Kovalev_D | 112:4a96133a1311 | 393 | VibroAMPRegul(); |
Kovalev_D | 112:4a96133a1311 | 394 | } |
igor_v | 114:5cc38a53d8a7 | 395 | if(Gyro.VibroNoiseF == 1) //регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды |
Kovalev_D | 112:4a96133a1311 | 396 | { |
Kovalev_D | 112:4a96133a1311 | 397 | Gyro.VibroNoiseF = 0; |
Kovalev_D | 112:4a96133a1311 | 398 | CalcAmpN(); |
Kovalev_D | 112:4a96133a1311 | 399 | } |
Kovalev_D | 113:8be429494918 | 400 | |
igor_v | 114:5cc38a53d8a7 | 401 | if(Gyro.VibroOutF== 1) // установка ног в регисторе тоже подумать , зачем отделный флаг? наверно |
Kovalev_D | 112:4a96133a1311 | 402 | { |
Kovalev_D | 112:4a96133a1311 | 403 | Gyro.VibroOutF = 0; |
Kovalev_D | 112:4a96133a1311 | 404 | VibroOut(); //Чтение ADS_SPI |
Kovalev_D | 112:4a96133a1311 | 405 | } |
Kovalev_D | 139:1716152517aa | 406 | |
Kovalev_D | 143:2b15794a6cd2 | 407 | if( (Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1)) // установка ног в регисторе тоже подумать , зачем отделный флаг? наверно |
Kovalev_D | 139:1716152517aa | 408 | { |
Kovalev_D | 143:2b15794a6cd2 | 409 | Gyro.Event_500Hz=0; |
Kovalev_D | 143:2b15794a6cd2 | 410 | |
Kovalev_D | 139:1716152517aa | 411 | sprintf((Time),"%d \r\n",LPC_TIM1->MR0); |
Kovalev_D | 139:1716152517aa | 412 | WriteCon(Time); |
Kovalev_D | 143:2b15794a6cd2 | 413 | |
Kovalev_D | 139:1716152517aa | 414 | } |
Kovalev_D | 139:1716152517aa | 415 | //&Gyro.Firmware_Version |
Kovalev_D | 132:2c7bec5cf6fe | 416 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 417 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 418 | /////////////////////////Работа с Flash////////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 419 | ///////////////////////////////////////////////////////////////////////////////////////////////////////// |
Kovalev_D | 132:2c7bec5cf6fe | 420 | if(Gyro.FlashMod == 1) |
Kovalev_D | 132:2c7bec5cf6fe | 421 | { |
Kovalev_D | 132:2c7bec5cf6fe | 422 | |
Kovalev_D | 132:2c7bec5cf6fe | 423 | /* Prepare Sectors to be flashed */ |
Kovalev_D | 134:caf4c9cd5052 | 424 | NVIC_DisableIRQ(TIMER1_IRQn); |
Kovalev_D | 134:caf4c9cd5052 | 425 | NVIC_DisableIRQ(TIMER2_IRQn); |
Kovalev_D | 134:caf4c9cd5052 | 426 | NVIC_DisableIRQ(TIMER3_IRQn); |
Kovalev_D | 134:caf4c9cd5052 | 427 | NVIC_DisableIRQ(EINT3_IRQn); |
Kovalev_D | 134:caf4c9cd5052 | 428 | //SCB->VTOR = 0x00A000; |
Kovalev_D | 136:19b9e6abb86f | 429 | |
Kovalev_D | 135:c1e30e0e8949 | 430 | |
Kovalev_D | 135:c1e30e0e8949 | 431 | SystemInitDef(); |
Kovalev_D | 135:c1e30e0e8949 | 432 | vIAP_ReinvokeISP(); |
Kovalev_D | 136:19b9e6abb86f | 433 | } |
Kovalev_D | 133:90d0bf0e2996 | 434 | |
Kovalev_D | 132:2c7bec5cf6fe | 435 | |
Kovalev_D | 134:caf4c9cd5052 | 436 | if(Gyro.FlashMod == 2) |
Kovalev_D | 132:2c7bec5cf6fe | 437 | { |
Kovalev_D | 136:19b9e6abb86f | 438 | |
Kovalev_D | 136:19b9e6abb86f | 439 | NVIC_DisableIRQ(TIMER1_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 440 | NVIC_DisableIRQ(TIMER2_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 441 | NVIC_DisableIRQ(TIMER3_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 442 | NVIC_DisableIRQ(EINT3_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 443 | |
Kovalev_D | 136:19b9e6abb86f | 444 | SystemInitDef(); |
Kovalev_D | 136:19b9e6abb86f | 445 | |
Kovalev_D | 136:19b9e6abb86f | 446 | |
Kovalev_D | 136:19b9e6abb86f | 447 | |
Kovalev_D | 136:19b9e6abb86f | 448 | WriteCon("\r\n Start Prepare Sectors"); |
Kovalev_D | 136:19b9e6abb86f | 449 | if(u32IAP_PrepareSectors(18, 21) == IAP_STA_CMD_SUCCESS) |
Kovalev_D | 136:19b9e6abb86f | 450 | { |
Kovalev_D | 136:19b9e6abb86f | 451 | WriteCon("\r\nPrepare Sectors OK"); |
Kovalev_D | 136:19b9e6abb86f | 452 | WriteCon("\r\n Start Erase"); |
Kovalev_D | 136:19b9e6abb86f | 453 | |
Kovalev_D | 136:19b9e6abb86f | 454 | u32IAP_EraseSectors(IMG_START_SECTOR, IMG_END_SECTOR); |
Kovalev_D | 136:19b9e6abb86f | 455 | |
Kovalev_D | 136:19b9e6abb86f | 456 | WriteCon("\r\n AND Erase"); |
Kovalev_D | 136:19b9e6abb86f | 457 | } |
Kovalev_D | 136:19b9e6abb86f | 458 | else WriteCon("\r\nPrepare Sectors ERROR"); |
Kovalev_D | 136:19b9e6abb86f | 459 | SystemInit1(); |
Kovalev_D | 136:19b9e6abb86f | 460 | Gyro.FlashMod = 0; |
Kovalev_D | 136:19b9e6abb86f | 461 | //boot_jump(addres); |
Kovalev_D | 136:19b9e6abb86f | 462 | } |
Kovalev_D | 136:19b9e6abb86f | 463 | |
Kovalev_D | 136:19b9e6abb86f | 464 | |
Kovalev_D | 136:19b9e6abb86f | 465 | |
Kovalev_D | 136:19b9e6abb86f | 466 | |
Kovalev_D | 136:19b9e6abb86f | 467 | /* |
Kovalev_D | 136:19b9e6abb86f | 468 | #define IAP_STA_CMD_SUCCESS 0 |
Kovalev_D | 136:19b9e6abb86f | 469 | #define IAP_STA_INVALID_COMMAND 1 |
Kovalev_D | 136:19b9e6abb86f | 470 | #define IAP_STA_SRC_ADDR_ERROR 2 |
Kovalev_D | 136:19b9e6abb86f | 471 | #define IAP_STA_DST_ADDR_ERROR 3 |
Kovalev_D | 136:19b9e6abb86f | 472 | #define IAP_STA_SRC_ADDR_NOT_MAPPED 4 |
Kovalev_D | 136:19b9e6abb86f | 473 | #define IAP_STA_DST_ADDR_NOT_MAPPED 5 |
Kovalev_D | 136:19b9e6abb86f | 474 | #define IAP_STA_COUNT_ERROR 6 |
Kovalev_D | 136:19b9e6abb86f | 475 | #define IAP_STA_INVALID_SECTOR 7 |
Kovalev_D | 136:19b9e6abb86f | 476 | #define IAP_STA_SECTOR_NOT_BLANK 8 |
Kovalev_D | 136:19b9e6abb86f | 477 | #define IAP_STA_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION 9 |
Kovalev_D | 136:19b9e6abb86f | 478 | #define IAP_STA_COMPARE_ERROR 10 |
Kovalev_D | 136:19b9e6abb86f | 479 | #define IAP_STA_BUSY 11 |
Kovalev_D | 136:19b9e6abb86f | 480 | #define IAP_STA_INVALD_PARAM 12 |
Kovalev_D | 136:19b9e6abb86f | 481 | */ |
Kovalev_D | 136:19b9e6abb86f | 482 | |
Kovalev_D | 136:19b9e6abb86f | 483 | |
Kovalev_D | 136:19b9e6abb86f | 484 | |
Kovalev_D | 136:19b9e6abb86f | 485 | |
Kovalev_D | 136:19b9e6abb86f | 486 | |
Kovalev_D | 136:19b9e6abb86f | 487 | |
Kovalev_D | 136:19b9e6abb86f | 488 | |
Kovalev_D | 136:19b9e6abb86f | 489 | |
Kovalev_D | 136:19b9e6abb86f | 490 | |
Kovalev_D | 136:19b9e6abb86f | 491 | |
Kovalev_D | 136:19b9e6abb86f | 492 | |
Kovalev_D | 136:19b9e6abb86f | 493 | |
Kovalev_D | 136:19b9e6abb86f | 494 | |
Kovalev_D | 136:19b9e6abb86f | 495 | |
Kovalev_D | 136:19b9e6abb86f | 496 | |
Kovalev_D | 136:19b9e6abb86f | 497 | |
Kovalev_D | 136:19b9e6abb86f | 498 | |
Kovalev_D | 136:19b9e6abb86f | 499 | |
Kovalev_D | 136:19b9e6abb86f | 500 | |
Kovalev_D | 136:19b9e6abb86f | 501 | |
Kovalev_D | 136:19b9e6abb86f | 502 | if(Gyro.FlashMod == 3) |
Kovalev_D | 136:19b9e6abb86f | 503 | { |
Kovalev_D | 136:19b9e6abb86f | 504 | |
Kovalev_D | 136:19b9e6abb86f | 505 | ReadFlash(); |
Kovalev_D | 136:19b9e6abb86f | 506 | // SystemInitDef(); |
Kovalev_D | 136:19b9e6abb86f | 507 | // *status=(unsigned int*)addres; |
Kovalev_D | 136:19b9e6abb86f | 508 | /*NVIC_DisableIRQ(TIMER1_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 509 | NVIC_DisableIRQ(TIMER2_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 510 | NVIC_DisableIRQ(TIMER3_IRQn); |
Kovalev_D | 136:19b9e6abb86f | 511 | NVIC_DisableIRQ(EINT3_IRQn);*/ |
Kovalev_D | 136:19b9e6abb86f | 512 | Gyro.FlashMod = 0; |
Kovalev_D | 136:19b9e6abb86f | 513 | // memdump(addres,4); |
Kovalev_D | 136:19b9e6abb86f | 514 | // addres+=0x10; |
Kovalev_D | 136:19b9e6abb86f | 515 | // p = (unsigned int *)((unsigned int)base & ~(unsigned int)0x3); |
Kovalev_D | 136:19b9e6abb86f | 516 | // WriteCon(*addres); |
Kovalev_D | 136:19b9e6abb86f | 517 | // status=*addres; |
Kovalev_D | 136:19b9e6abb86f | 518 | // SystemInit1(); |
Kovalev_D | 136:19b9e6abb86f | 519 | // WriteCon(status); |
Kovalev_D | 136:19b9e6abb86f | 520 | // addres+=0x10; |
Kovalev_D | 136:19b9e6abb86f | 521 | |
Kovalev_D | 132:2c7bec5cf6fe | 522 | } |
Kovalev_D | 132:2c7bec5cf6fe | 523 | |
Kovalev_D | 132:2c7bec5cf6fe | 524 | |
Kovalev_D | 132:2c7bec5cf6fe | 525 | |
igor_v | 114:5cc38a53d8a7 | 526 | |
igor_v | 110:6406b7ac0442 | 527 | }//while |
Kovalev_D | 132:2c7bec5cf6fe | 528 | }//main |
igor_v | 0:8ad47e2b6f00 | 529 | |
igor_v | 0:8ad47e2b6f00 | 530 | /****************************************************************************** |
igor_v | 0:8ad47e2b6f00 | 531 | ** End Of File |
igor_v | 0:8ad47e2b6f00 | 532 | ******************************************************************************/ |
igor_v | 0:8ad47e2b6f00 | 533 | |
igor_v | 0:8ad47e2b6f00 | 534 |