Преглед изворни кода

Тесты аналоговых входов.

TelenkovDmitry пре 8 месеци
родитељ
комит
67356e3dc5

+ 9 - 6
fw/modules/adc/adc_transport.c

@@ -74,7 +74,7 @@ void adc_gpio_init(void)
  
     
 //
-inline flag_status adc_get_rdy(void)
+flag_status adc_get_rdy(void)
 {
     return gpio_input_data_bit_read(GPIOE, GPIO_PINS_13);
 }
@@ -215,11 +215,14 @@ void adc_task(void *params)
     
     adc_gpio_init();
     
-    MS5192T_Reset();
-    
-    ret = MS5192T_Init();
-    
-    printf("ADC init status: %s\r\n", ret == 1 ? "OK" : "FAILED");
+    for (uint32_t i = 0; i < 100; i++) {
+        MS5192T_Reset();
+        ret = MS5192T_Init();
+        printf("ADC init status: %s\r\n", ret == 1 ? "OK" : "FAILED");
+        if (ret == 1)
+           break;
+        vTaskDelay(10);
+    }
         
     // Запрос регистра конфигурации для (0x710 - значение по умолчанию)
     value = MS5192T_GetRegisterValue(MS5192T_REG_CONF, 2, 1);

+ 1 - 9
fw/modules/io/input.c

@@ -171,15 +171,7 @@ void input_task(void *params)
             }
         }
         
-        
-#if 0        
-        uint16_t load_state[DO_NUMBER];     // состояние датчиков нагрузки
-       //uint16_t load_state_bit;
-
-        uint16_t credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
-        uint16_t credibility_state_bit;         // достоверность состояния датчиков нагрузки
-#endif
-        
+       
         for (int i = 0; i < DO_NUMBER; i++)
         {                           
             load_state[i] = (uint16_t)gpio_input_data_bit_read(load_sens[i].port, load_sens[i].pin);

+ 2 - 3
fw/modules/io/io.c

@@ -34,7 +34,7 @@ uint32_t input_cnt[DI_NUMBER];       // счетчики входов
 
 
 //
-void io_port_init(void)
+void io_port_enable(void)
 {
     crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
     crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
@@ -47,8 +47,7 @@ void io_port_init(void)
     crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
     crm_periph_clock_enable(CRM_BPR_PERIPH_CLOCK, TRUE);
     pwc_battery_powered_domain_access(TRUE);
-    
-    io_tim_init();
+
 }
 
 //

+ 2 - 2
fw/modules/io/io.h

@@ -29,10 +29,10 @@
 // -------------------------------------------------------------------------- //
 
 //
-void io_port_init(void);
+void io_port_enable(void);
 
 //
-void io_init(void);
+void io_port_init(void);
 
 //
 void io_tim_init(void);

+ 43 - 28
fw/user/main.cpp

@@ -65,19 +65,8 @@ int main(void)
     system_clock_config();
 
     delay_init();
-
                     
     xTaskCreate(init_task, "init_task", 10*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-    
-    
-#if defined (MAI_12)    
-    xTaskCreate(adc_task, "adc_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-#endif
-
-#if defined (MAO_8)    
-    xTaskCreate(dac_task, "dac_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-#endif    
-    
         
     vTaskStartScheduler();
      
@@ -118,14 +107,48 @@ void init_task(void *argument)
 // -------------------------------------------------------------------------- //    
 // Безопасный режим, входы, выходы
     
+#if defined (MDIO_88)    
     save_mode_init();
+    save_mode_set(false);   
+#endif
     
-    save_mode_set(true);   
-  
-    io_port_init();
+// -------------------------------------------------------------------------- //
+// Включить тактирование портов
     
-    //in_exint_init();    
+    io_port_enable();
+
+// -------------------------------------------------------------------------- //            
+// Цифровые входы/выходы
 
+#if defined (MDIO_88)
+    io_tim_init();
+    //in_exint_init();  
+    xTaskCreate(input_task, "input_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+#endif
+    
+#if defined (MAI_12)    
+    
+        //ai_connect_test();
+    //ai_mode_test();
+    //ai_connect_channel(V_ISO);  
+    //ai_connect_channel(AN_INP_1);  
+    //ai_connect_channel(AN_INP_7); 
+    
+    sh_init();
+      
+    // Режим зимерения напряженния
+    ai_mode_test();
+    
+    //ai_connect_channel(V_ISO_CL);
+    ai_connect_channel(V_ISO);
+    
+    xTaskCreate(adc_task, "adc_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+#endif    
+    
+#if defined (MAO_8)    
+    xTaskCreate(dac_task, "dac_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+#endif 
+    
 // -------------------------------------------------------------------------- //
 // Кнопки [SET, RESET]
     
@@ -145,18 +168,10 @@ void init_task(void *argument)
     
 // -------------------------------------------------------------------------- //    
 // Мультиплексор
-    
+#if 0    
     mux_gpio_init();
     xTaskCreate(mux_task, "mux_task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-   
-// -------------------------------------------------------------------------- //            
-// Базовая инициализация входов/выходов
-// TODO потом брать значения из настроек
-
-    io_init();
-
-    xTaskCreate(input_task, "input_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-    
+#endif    
 // -------------------------------------------------------------------------- //        
 // Modbus    
     
@@ -170,16 +185,16 @@ void init_task(void *argument)
 // -------------------------------------------------------------------------- //    
 // Ревизия платы
     
-    gpio_get_rev();
+    //gpio_get_rev();
     
 // -------------------------------------------------------------------------- //    
 // SPI flash, журнал событий, архив
-
+#if 0
     common_spi_init();
     spi_flash_init();
     
     log_init(false);
-    
+#endif    
 // -------------------------------------------------------------------------- //
 // Статистика FreeRTOS
     


Разлика између датотеке није приказан због своје велике величине
+ 420 - 439
project/ewarm/iap/iap.dep


Разлика између датотеке није приказан због своје велике величине
+ 624 - 624
project/ewarm/module_universal_io.dep


+ 1 - 1
project/ewarm/module_universal_io.ewp

@@ -225,7 +225,7 @@
                     <state>AT_START_F403A_V1</state>
                     <state>PRINTF_STDLIB</state>
                     <state>DEBUG</state>
-                    <state>MDIO_88</state>
+                    <state>MAI_12</state>
                 </option>
                 <option>
                     <name>CCPreprocFile</name>

Неке датотеке нису приказане због велике количине промена