| 
					
				 | 
			
			
				@@ -1,113 +1,115 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "stm32f0xx_hal.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "led.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "button.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "adc.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "tim.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "misc.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "systick.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "usart.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "pwm_out.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "pwm_in.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "gpio.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "logic.h"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include <stdio.h>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-void SystemClock_Config(void);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-void Error_Handler(void);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-int main()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    HAL_Init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    SystemClock_Config();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/*     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    gpio_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tim_pwm_out_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tim_pwm_in_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    wdt_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-*/    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    channel_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    led_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tim_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tim_warmup();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    adc_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    but_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#if 1    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    usart_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    printf("FW started...\r\n");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#endif    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    HAL_Delay(1000);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //tim_set_string_freq(1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    timer_AddFunction(10, adc_task);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    timer_AddFunction(10, button_run);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    timer_AddFunction(10, logic_cnt_task);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    timer_AddFunction(100, logic_led_freq);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //bool foo;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //foo = but_is_string();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    while(1) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        timer_Main();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //adc_print_data();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //adc_task();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //adc_task();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //printf("CNT: %u\r\n", counter++);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //HAL_Delay(1000);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //logic_main();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-void SystemClock_Config(void)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitTypeDef RCC_OscInitStruct = {0};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.HSIState = RCC_HSI_ON;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.HSI14CalibrationValue = 16;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Error_Handler();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                |RCC_CLOCKTYPE_PCLK1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Error_Handler();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-void Error_Handler(void)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    __disable_irq();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    while (1) {}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "stm32f0xx_hal.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "led.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "button.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "adc.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "tim.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "misc.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "systick.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "usart.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "pwm_out.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "pwm_in.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "gpio.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "logic.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <stdio.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void SystemClock_Config(void); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void Error_Handler(void); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+int main() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_Init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SystemClock_Config(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/*      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    gpio_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tim_pwm_out_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tim_pwm_in_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    wdt_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*/     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    channel_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    led_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tim_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tim_warmup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    adc_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    but_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#if 1     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    usart_init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printf("FW started...\r\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_Delay(1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //tim_set_string_freq(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    timer_AddFunction(10, adc_task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    timer_AddFunction(10, button_run); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    timer_AddFunction(10, logic_cnt_task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    timer_AddFunction(100, logic_led_freq); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    timer_AddFunction(500, led_battery_task); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //bool foo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //foo = but_is_string(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while(1)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        timer_Main(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //adc_print_data(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //adc_task(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //adc_task(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //printf("CNT: %u\r\n", counter++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //HAL_Delay(1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //logic_main(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void SystemClock_Config(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.HSIState = RCC_HSI_ON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.HSI14State = RCC_HSI14_ON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.HSI14CalibrationValue = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Error_Handler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                |RCC_CLOCKTYPE_PCLK1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Error_Handler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void Error_Handler(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    __disable_irq(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while (1) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |