diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.cproject b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.cproject
new file mode 100644
index 0000000..949a211
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.cproject
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.mxproject b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.mxproject
new file mode 100644
index 0000000..7552706
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.mxproject
@@ -0,0 +1,40 @@
+[PreviousLibFiles]
+LibFiles=Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_adc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_adc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_adc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Middlewares\Third_Party\FreeRTOS\Source\include\croutine.h;Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h;Middlewares\Third_Party\FreeRTOS\Source\include\event_groups.h;Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h;Middlewares\Third_Party\FreeRTOS\Source\include\list.h;Middlewares\Third_Party\FreeRTOS\Source\include\message_buffer.h;Middlewares\Third_Party\FreeRTOS\Source\include\mpu_prototypes.h;Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h;Middlewares\Third_Party\FreeRTOS\Source\include\portable.h;Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h;Middlewares\Third_Party\FreeRTOS\Source\include\queue.h;Middlewares\Third_Party\FreeRTOS\Source\include\semphr.h;Middlewares\Third_Party\FreeRTOS\Source\include\stack_macros.h;Middlewares\Third_Party\FreeRTOS\Source\include\StackMacros.h;Middlewares\Third_Party\FreeRTOS\Source\include\stream_buffer.h;Middlewares\Third_Party\FreeRTOS\Source\include\task.h;Middlewares\Third_Party\FreeRTOS\Source\include\timers.h;Middlewares\Third_Party\FreeRTOS\Source\include\atomic.h;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.h;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\portmacro.h;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;Middlewares\Third_Party\FreeRTOS\Source\croutine.c;Middlewares\Third_Party\FreeRTOS\Source\event_groups.c;Middlewares\Third_Party\FreeRTOS\Source\list.c;Middlewares\Third_Party\FreeRTOS\Source\queue.c;Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c;Middlewares\Third_Party\FreeRTOS\Source\tasks.c;Middlewares\Third_Party\FreeRTOS\Source\timers.c;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.c;Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\port.c;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_adc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_adc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_adc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_spi.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_usart.h;Middlewares\Third_Party\FreeRTOS\Source\include\croutine.h;Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h;Middlewares\Third_Party\FreeRTOS\Source\include\event_groups.h;Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h;Middlewares\Third_Party\FreeRTOS\Source\include\list.h;Middlewares\Third_Party\FreeRTOS\Source\include\message_buffer.h;Middlewares\Third_Party\FreeRTOS\Source\include\mpu_prototypes.h;Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h;Middlewares\Third_Party\FreeRTOS\Source\include\portable.h;Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h;Middlewares\Third_Party\FreeRTOS\Source\include\queue.h;Middlewares\Third_Party\FreeRTOS\Source\include\semphr.h;Middlewares\Third_Party\FreeRTOS\Source\include\stack_macros.h;Middlewares\Third_Party\FreeRTOS\Source\include\StackMacros.h;Middlewares\Third_Party\FreeRTOS\Source\include\stream_buffer.h;Middlewares\Third_Party\FreeRTOS\Source\include\task.h;Middlewares\Third_Party\FreeRTOS\Source\include\timers.h;Middlewares\Third_Party\FreeRTOS\Source\include\atomic.h;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.h;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\portmacro.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f413xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Drivers\CMSIS\Include\cachel1_armv7.h;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv81mml.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm35p.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm55.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_cm85.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\core_starmc1.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\pac_armv81.h;Drivers\CMSIS\Include\pmu_armv8.h;Drivers\CMSIS\Include\tz_context.h;
+
+[PreviousUsedCubeIDEFiles]
+SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\freertos.c;Core\Src\adc.c;Core\Src\dma.c;Core\Src\spi.c;Core\Src\tim.c;Core\Src\usart.c;Core\Src\stm32f4xx_it.c;Core\Src\stm32f4xx_hal_msp.c;Core\Src\stm32f4xx_hal_timebase_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;Middlewares\Third_Party\FreeRTOS\Source\croutine.c;Middlewares\Third_Party\FreeRTOS\Source\event_groups.c;Middlewares\Third_Party\FreeRTOS\Source\list.c;Middlewares\Third_Party\FreeRTOS\Source\queue.c;Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c;Middlewares\Third_Party\FreeRTOS\Source\tasks.c;Middlewares\Third_Party\FreeRTOS\Source\timers.c;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.c;Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\port.c;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Core\Src\system_stm32f4xx.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_adc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c;Middlewares\Third_Party\FreeRTOS\Source\croutine.c;Middlewares\Third_Party\FreeRTOS\Source\event_groups.c;Middlewares\Third_Party\FreeRTOS\Source\list.c;Middlewares\Third_Party\FreeRTOS\Source\queue.c;Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c;Middlewares\Third_Party\FreeRTOS\Source\tasks.c;Middlewares\Third_Party\FreeRTOS\Source\timers.c;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.c;Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\port.c;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Core\Src\system_stm32f4xx.c;;;Middlewares\Third_Party\FreeRTOS\Source\croutine.c;Middlewares\Third_Party\FreeRTOS\Source\event_groups.c;Middlewares\Third_Party\FreeRTOS\Source\list.c;Middlewares\Third_Party\FreeRTOS\Source\queue.c;Middlewares\Third_Party\FreeRTOS\Source\stream_buffer.c;Middlewares\Third_Party\FreeRTOS\Source\tasks.c;Middlewares\Third_Party\FreeRTOS\Source\timers.c;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS\cmsis_os.c;Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang\heap_4.c;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\port.c;
+HeaderPath=Drivers\STM32F4xx_HAL_Driver\Inc;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;Middlewares\Third_Party\FreeRTOS\Source\include;Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS;Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F;Drivers\CMSIS\Device\ST\STM32F4xx\Include;Drivers\CMSIS\Include;Core\Inc;
+CDefines=USE_HAL_DRIVER;STM32F413xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
+[PreviousGenFiles]
+AdvancedFolderStructure=true
+HeaderFileListSize=10
+HeaderFiles#0=..\Core\Inc\gpio.h
+HeaderFiles#1=..\Core\Inc\FreeRTOSConfig.h
+HeaderFiles#2=..\Core\Inc\adc.h
+HeaderFiles#3=..\Core\Inc\dma.h
+HeaderFiles#4=..\Core\Inc\spi.h
+HeaderFiles#5=..\Core\Inc\tim.h
+HeaderFiles#6=..\Core\Inc\usart.h
+HeaderFiles#7=..\Core\Inc\stm32f4xx_it.h
+HeaderFiles#8=..\Core\Inc\stm32f4xx_hal_conf.h
+HeaderFiles#9=..\Core\Inc\main.h
+HeaderFolderListSize=1
+HeaderPath#0=..\Core\Inc
+HeaderFiles=;
+SourceFileListSize=11
+SourceFiles#0=..\Core\Src\gpio.c
+SourceFiles#1=..\Core\Src\freertos.c
+SourceFiles#2=..\Core\Src\adc.c
+SourceFiles#3=..\Core\Src\dma.c
+SourceFiles#4=..\Core\Src\spi.c
+SourceFiles#5=..\Core\Src\tim.c
+SourceFiles#6=..\Core\Src\usart.c
+SourceFiles#7=..\Core\Src\stm32f4xx_it.c
+SourceFiles#8=..\Core\Src\stm32f4xx_hal_msp.c
+SourceFiles#9=..\Core\Src\stm32f4xx_hal_timebase_tim.c
+SourceFiles#10=..\Core\Src\main.c
+SourceFolderListSize=1
+SourcePath#0=..\Core\Src
+SourceFiles=;
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.project b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.project
new file mode 100644
index 0000000..3db9fbb
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.project
@@ -0,0 +1,32 @@
+
+
+ ICD_0.1_100pin_07082025
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ com.st.stm32cube.ide.mcu.MCUProjectNature
+ com.st.stm32cube.ide.mcu.MCUCubeProjectNature
+ org.eclipse.cdt.core.cnature
+ com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
+ com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
+ com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
+ com.st.stm32cube.ide.mcu.MCURootProjectNature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
new file mode 100644
index 0000000..98a69fc
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/language.settings.xml b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/language.settings.xml
new file mode 100644
index 0000000..e31154d
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/language.settings.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.core.prefs b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.core.prefs
new file mode 100644
index 0000000..0911253
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,189 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.cdt.core.formatter.alignment_for_assignment=16
+org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80
+org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.cdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34
+org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18
+org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0
+org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16
+org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48
+org.eclipse.cdt.core.formatter.alignment_for_expression_list=0
+org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.cdt.core.formatter.alignment_for_lambda_expression=20
+org.eclipse.cdt.core.formatter.alignment_for_member_access=0
+org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16
+org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_linkage_declaration=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false
+org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1
+org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true
+org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true
+org.eclipse.cdt.core.formatter.comment_formatter_off_tag=@formatter\:off
+org.eclipse.cdt.core.formatter.comment_formatter_on_tag=@formatter\:on
+org.eclipse.cdt.core.formatter.compact_else_if=true
+org.eclipse.cdt.core.formatter.continuation_indentation=2
+org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.cdt.core.formatter.format_block_comment=true
+org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.cdt.core.formatter.format_header_comment=true
+org.eclipse.cdt.core.formatter.format_line_comment=true
+org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false
+org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0
+org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true
+org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_linkage=false
+org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false
+org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false
+org.eclipse.cdt.core.formatter.indent_empty_lines=false
+org.eclipse.cdt.core.formatter.indent_label_compare_to_statements=true
+org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.cdt.core.formatter.indentation.size=4
+org.eclipse.cdt.core.formatter.insert_new_line_after_colon_in_constructor_initializer_list=insert
+org.eclipse.cdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_structured_binding_name_list=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_lambda_return=insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_structured_binding_name_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_declarator_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_structured_binding_name_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_structured_binding_name_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_lambda_return=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_linkage_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_structured_binding_name_list=insert
+org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_declarator_list=insert
+org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_method_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_before_ref_qualifier_in_structured_binding=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.join_wrapped_lines=true
+org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.cdt.core.formatter.lineSplit=120
+org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.cdt.core.formatter.tabulation.char=tab
+org.eclipse.cdt.core.formatter.tabulation.size=4
+org.eclipse.cdt.core.formatter.use_comment_formatter_tag=true
+org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.ui.prefs b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.ui.prefs
new file mode 100644
index 0000000..7f343d6
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.cdt.ui.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+formatter_profile=_MY
+formatter_settings_version=1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.core.resources.prefs b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/stm32cubeide.project.prefs b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/stm32cubeide.project.prefs
new file mode 100644
index 0000000..1ca2930
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/.settings/stm32cubeide.project.prefs
@@ -0,0 +1,5 @@
+635E684B79701B039C64EA45C3F84D30=360292FCCDDAFCFDCC0A9C26D625E746
+66BE74F758C12D739921AEA421D593D3=2
+8DF89ED150041C4CBC7CB9A9CAA90856=4D88E89513CFAB4A49CA30CB8ABB58E8
+DC22A860405A8BF2F2C095E5B6529F12=4D88E89513CFAB4A49CA30CB8ABB58E8
+eclipse.preferences.version=1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/FreeRTOSConfig.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/FreeRTOSConfig.h
new file mode 100644
index 0000000..4a09d13
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/FreeRTOSConfig.h
@@ -0,0 +1,142 @@
+/* USER CODE BEGIN Header */
+/*
+ * FreeRTOS Kernel V10.3.1
+ * Portion Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Portion Copyright (C) 2019 StMicroelectronics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://www.FreeRTOS.org
+ * http://aws.amazon.com/freertos
+ *
+ * 1 tab == 4 spaces!
+ */
+/* USER CODE END Header */
+
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
+
+/*-----------------------------------------------------------
+ * Application specific definitions.
+ *
+ * These definitions should be adjusted for your particular hardware and
+ * application requirements.
+ *
+ * These parameters and more are described within the 'configuration' section of the
+ * FreeRTOS API documentation available on the FreeRTOS.org web site.
+ *
+ * See http://www.freertos.org/a00110.html
+ *----------------------------------------------------------*/
+
+/* USER CODE BEGIN Includes */
+/* Section where include file can be added */
+/* USER CODE END Includes */
+
+/* Ensure definitions are only used by the compiler, and not by the assembler. */
+#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
+ #include
+ extern uint32_t SystemCoreClock;
+#endif
+#define configENABLE_FPU 1
+#define configENABLE_MPU 0
+
+#define configUSE_PREEMPTION 1
+#define configSUPPORT_STATIC_ALLOCATION 1
+#define configSUPPORT_DYNAMIC_ALLOCATION 1
+#define configUSE_IDLE_HOOK 0
+#define configUSE_TICK_HOOK 0
+#define configCPU_CLOCK_HZ ( SystemCoreClock )
+#define configTICK_RATE_HZ ((TickType_t)1000)
+#define configMAX_PRIORITIES ( 7 )
+#define configMINIMAL_STACK_SIZE ((uint16_t)128)
+#define configTOTAL_HEAP_SIZE ((size_t)60000)
+#define configMAX_TASK_NAME_LEN ( 16 )
+#define configUSE_16_BIT_TICKS 0
+#define configUSE_MUTEXES 1
+#define configQUEUE_REGISTRY_SIZE 8
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
+/* USER CODE BEGIN MESSAGE_BUFFER_LENGTH_TYPE */
+/* Defaults to size_t for backward compatibility, but can be changed
+ if lengths will always be less than the number of bytes in a size_t. */
+#define configMESSAGE_BUFFER_LENGTH_TYPE size_t
+/* USER CODE END MESSAGE_BUFFER_LENGTH_TYPE */
+
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 0
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
+
+/* The following flag must be enabled only when using newlib */
+#define configUSE_NEWLIB_REENTRANT 1
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+#define INCLUDE_vTaskPrioritySet 1
+#define INCLUDE_uxTaskPriorityGet 1
+#define INCLUDE_vTaskDelete 1
+#define INCLUDE_vTaskCleanUpResources 0
+#define INCLUDE_vTaskSuspend 1
+#define INCLUDE_vTaskDelayUntil 0
+#define INCLUDE_vTaskDelay 1
+#define INCLUDE_xTaskGetSchedulerState 1
+
+/* Cortex-M specific definitions. */
+#ifdef __NVIC_PRIO_BITS
+ /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
+ #define configPRIO_BITS __NVIC_PRIO_BITS
+#else
+ #define configPRIO_BITS 4
+#endif
+
+/* The lowest interrupt priority that can be used in a call to a "set priority"
+function. */
+#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
+
+/* The highest interrupt priority that can be used by any interrupt service
+routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
+INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
+PRIORITY THAN THIS! (higher priorities are lower numeric values. */
+#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
+
+/* Interrupt priorities used by the kernel port layer itself. These are generic
+to all Cortex-M ports, and do not rely on any particular library functions. */
+#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
+/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
+See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
+
+/* Normal assert() semantics without relying on the provision of an assert.h
+header file. */
+/* USER CODE BEGIN 1 */
+#define configASSERT( x ) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );}
+/* USER CODE END 1 */
+
+/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
+standard names. */
+#define vPortSVCHandler SVC_Handler
+#define xPortPendSVHandler PendSV_Handler
+
+/* IMPORTANT: This define is commented when used with STM32Cube firmware, when the timebase source is SysTick,
+ to prevent overwriting SysTick_Handler defined within STM32Cube HAL */
+
+#define xPortSysTickHandler SysTick_Handler
+
+/* USER CODE BEGIN Defines */
+/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
+/* USER CODE END Defines */
+
+#endif /* FREERTOS_CONFIG_H */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/adc.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/adc.h
new file mode 100644
index 0000000..ae14afa
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/adc.h
@@ -0,0 +1,79 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file adc.h
+ * @brief This file contains all the function prototypes for
+ * the adc.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __ADC_H__
+#define __ADC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+#include
+
+#define Critical_volt 3500//напряжение при котором выключаемся
+#define Low_volt 3600//Низкое напряжение сигнализируем об этом
+#define High_volt 4100//высокое напряжение считаем, что 100%
+#define ADC_WAIT 80//20*сек сколько не возвращать флаг назад
+/* USER CODE END Includes */
+
+extern ADC_HandleTypeDef hadc1;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_ADC1_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+typedef struct adc_struct
+{
+ HAL_StatusTypeDef error;//флаг говорящий об ошибке во время работы
+
+ uint16_t ecg_1_raw;//RA
+ uint16_t ecg_2_raw;//RV
+ uint16_t ecg_3_raw;//LV
+
+ uint16_t bat_raw;
+ uint16_t bat_volt;//напряжение в сотых вольта
+ uint8_t bat_pers;
+
+ uint16_t hv_raw;
+ uint16_t hv_volt;
+
+ uint16_t rv_comp_raw;
+ uint16_t ra_comp_raw;
+ uint16_t lv_comp_raw;
+
+ bool drdy_trigger;//Флаг говорящий о том что готова новая пачка данных
+}adc_struct;
+
+void adc_read(adc_struct* adc);//чтение всего в структуру
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ADC_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/control.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/control.h
new file mode 100644
index 0000000..20f1d39
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/control.h
@@ -0,0 +1,167 @@
+#ifndef _CONTROL
+#define _CONTROL
+#include "main.h"
+
+
+//#include "usart.h"
+#include "adc.h"
+#include "gpio.h"
+#include
+
+#define TYPE_ECG 0
+#define TYPE_WATCH 1
+#define DEV_TYPE TYPE_WATCH
+
+#define MEM_ADR FLASH_MEM_ADDR//адрес куда пишем данные со всеми настройками.
+#define APP_ADR FLASH_BOOT_ADDR//проги куда прыгать, правда это бессмысленно
+
+#define BUT_CNT 30
+#define DISP_CNT 30
+
+//////////////////////////////////////////////////////////////
+//базовые значения основных параметров
+#define BASE_SERIAL_NUM 0x4001
+#define BASE_MASTER_ADR 0x1001
+#define BASE_MESH_ADR BASE_SERIAL_NUM//пока он совпадает с серийным номером
+#define BASE_MESH_ID 0x1313
+#define BASE_PASSWORD 777777
+
+//максимальный и минимальный серийник
+#define MIN_SERIAL_NUM 0x4000
+#define MAX_SERIAL_NUM 0x4FFF
+//максимальный и минимальный id сети
+#define MIN_MESH_ID 0x0000
+#define MAX_MESH_ID 0xFFFF
+//максимальный и минимальный адрес мастера(адрес куда мы шлём сообщения) сети
+#define MIN_MESH_MASTER_ID 0x0000
+#define MAX_MESH_MASTER_ID 0xFFFF
+//минимально и максимально возможный пароль
+#define MIN_PASS 0
+#define MAX_PASS 999999
+//////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////
+//базовые значения ФПГ
+#define HAND_WAIT 1000//100 5c примерно ждем устаканивания сигнала
+#define HR_HIGH 16000
+#define HR_LOW 4000
+#define HR_WAIT 600//600 3c примерно ждем устаканивания сигнала
+#define AFE_AMB_TRESHOLD -10000 //пороговое значение, выше которого мы считаем что часы сняты.
+
+//максимальные и минимальные значения верхнего порога чсс
+#define HR_HIGH_MIN 10000 //100-240 уд\мин
+#define HR_HIGH_MAX 24000
+//максимальные и минимальные значения нижнего порога чсс
+#define HR_LOW_MIN 4000 //40-99 уд\мин
+#define HR_LOW_MAX 9900
+//максимальные и минимальные значения времени тревоги по поводу ЧСС
+#define HR_WAIT_MIN 0 //0-10 сек
+#define HR_WAIT_MAX 2000
+//////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////
+//пороги акселерометра базовые
+#define LOW_G_TRES 300 //порог от которого считаем падении
+#define LOW_G_TIME 12 //0.05сек сколько должно длится это состояние
+#define LOW_G_ALARM_TIME 750 //3сек сколько сигналим о тревоге*/
+
+#define HIGH_G_TRES 8000 //порог от которого считаем удар
+#define HIGH_G_ALARM_TIME 750 //3сек сколько сигналим о тревоге
+
+//максимальные и минимальные значения порога свободного падения
+#define LOW_G_TRES_MIN 10//10-1000mg
+#define LOW_G_TRES_MAX 1000
+//максимальные и минимальные значения времени свободного падения для срабатывания тревоги
+#define LOW_G_TIME_MIN 2//10мс-500мс
+#define LOW_G_TIME_MAX 100
+//максимальные и минимальные значения времени тревоги по поводу свободного падения
+#define LOW_G_ALARM_TIME_MIN 0//0-10 сек
+#define LOW_G_ALARM_TIME_MAX 2000
+//максимальные и минимальные значения порога высокого ускорения (удара)
+#define HIGH_G_TRES_MIN 2000//2000-12000mg
+#define HIGH_G_TRES_MAX 12000
+//максимальные и минимальные значения времени тревоги по поводу высокого ускорения (удара)
+#define HIGH_G_ALARM_TIME_MIN 0//0-10 сек
+#define HIGH_G_ALARM_TIME_MAX 2000
+//////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////
+//пороги термометра базовые
+#define TEMP_LOW 3000//20*сек
+#define TEMP_HIGH 3400//20*сек
+#define TEMP_WAIT 2//20*сек
+//максимальные и минимальные значения низкой температуры
+#define TEMP_LOW_MIN 2800//28-33.5гр
+#define TEMP_LOW_MAX 3350
+//максимальные и минимальные значения высокой температуры
+#define TEMP_HIGH_MIN 3360//33.6-38гр
+#define TEMP_HIGH_MAX 3800
+//максимальные и минимальные значения времени тревоги
+#define TEMP_WAIT_MIN 0//20*сек
+#define TEMP_WAIT_MAX 200
+
+//////////////////////////////////////////////////////////////
+
+
+
+
+
+//режим работы
+typedef enum
+{
+ None = 0x0,//технический когда ничего не загрузилось
+ StartUP = 0x1,//технический режим включения инициализация всего и вся, проверка оборудования
+ Stream = 0x2,//потоковая передача данных без анализа тупо 3 канала как сейчас можно со счётчиком
+ Sleep = 0x3 // технический режим требуется для прехода в сон и всё
+} work_mode;
+
+
+//режим BLE
+typedef enum
+{
+ ble_off = 0x0,//выключен4300
+ ble_raw = 0x1,//передаем сырые данные
+ ble_mesh = 0x2,//обмен сообщениями в mesh сети медлено, но надежно
+} ble_mode;
+
+typedef struct Contr
+{
+ work_mode set_mode; //какой режим выставлен
+ work_mode now_mode; //какой режим сейчас
+ bool btn_1_state;//состояние кнопки 1
+ int btn_1_cnt; //счетчик кнопки 1
+ //это по идее не нужно
+ int Ecount; //подсчёт ошибок
+ int timer;
+ bool interupt; //флаг
+ uint32_t rf_counter; //подсчёт отправленных сообщений
+ uint8_t mesh_counter;//подсчёт отправленных сообщений
+ //new
+
+ bool DATA_write; //флаг что вообще нужно данные писать.
+ ble_mode ble_mode_set; //режим работы BLE
+ ble_mode ble_mode_now; //режим работы BLE
+
+ //по идее от сюда идет только настройка параметров выше нет смысла записывать данные
+ //настройки внутренних параметров
+ bool dev_type; //что это за устройство неизменяемый параметр 0 ЭКГ 1 часы
+ int serial_number; //серийный номер устройства
+ int password; //пароль нужен для серийного режима.
+ int mesh_netid; //номер сети для MESH режима
+ int mesh_adr; //адрес в сети при режиме mesh
+ int master_adr; //адрес куда отправлять данные в сети при режиме mesh
+ bool ble_ask; //мужно ли подтвержденеи отпрваки в режиме mesh
+} ctrl_struct;
+
+void control_init(void);
+void control_init_var(ctrl_struct * control);
+void lets_sleep(void);
+void FL_read_str(ctrl_struct * control);
+void FL_write_str(ctrl_struct * control);
+uint8_t FL_read_byte(uint32_t addr);
+
+int update_str(ctrl_struct * buf_str,ctrl_struct * main_str);
+int scan_str_USB(char* mess);
+
+void new_app_start();//go to usb msd
+#endif
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/delay.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/delay.h
new file mode 100644
index 0000000..5265cde
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/delay.h
@@ -0,0 +1,15 @@
+#ifndef _DELAY
+#define _DELAY
+
+#define SYSCLK 24 //Частота SYSCLK в МГц. Необходима для работы функций delay_us() и delay_ms()
+//#include "stm32f4xx_wwdg.h"
+
+// Прототипы функций
+void delay_us(unsigned int t);
+void delay_ms(unsigned int t);
+
+
+void delay_us_wd(unsigned int t);
+void delay_ms_wd(unsigned int t);
+
+#endif
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/dma.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/dma.h
new file mode 100644
index 0000000..493d98e
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/dma.h
@@ -0,0 +1,52 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file dma.h
+ * @brief This file contains all the function prototypes for
+ * the dma.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __DMA_H__
+#define __DMA_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* DMA memory to memory transfer handles -------------------------------------*/
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_DMA_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DMA_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/filter.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/filter.h
new file mode 100644
index 0000000..1721b6b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/filter.h
@@ -0,0 +1,9 @@
+#ifndef _FILTER_H
+#define _FILTER_H
+
+float iir_50hz_2or(float NewSample);//50hz 2 order
+float iir_50hz_1or(float NewSample);//50hz 1 order
+float iir_hp(float NewSample);//hifh pass 1 order 1hz shit
+float iir_4060(float NewSample);
+float iir_lp30(float NewSample);
+#endif
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/gpio.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/gpio.h
new file mode 100644
index 0000000..9ac4857
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/gpio.h
@@ -0,0 +1,49 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file gpio.h
+ * @brief This file contains all the function prototypes for
+ * the gpio.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __GPIO_H__
+#define __GPIO_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_GPIO_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__ GPIO_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/icd.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/icd.h
new file mode 100644
index 0000000..333a3a5
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/icd.h
@@ -0,0 +1,390 @@
+#ifndef _ICD
+#define _ICD
+#include "main.h"
+#include
+#include "cmsis_os.h"
+#include "adc.h"
+//Глобальные настройки, делаем их неизменными
+#define F103 0
+#define F412 1
+#define MK_TYPE F412
+
+#define LAMP false//увеличенное время разряда
+#define SPI_MODE false//с фронт энда берём данные
+#define ACTIVE_CH 3//с фронт энда берём данные
+#define CAP_VOLT_CTRL true//нужен ли контроль реального напряжения на конденсаторе
+
+#define CAPACITY 0.000200
+#define FORCE_DELAY 100 //Задержка МС после зарядки конденсатора в принудительном режиме
+#define DANGER_HV true //чтобы риту не ёбнуло если 1 значит по реальному заряжаем
+
+
+#define RG 1000.0//сопротивление резистора в омах
+
+#define VOLT_COEF 3300.0/(4096*(1 + 100000.0/RG))
+#define VOLT_COEF_MAX30003 0.000005
+//по даташиту G = 1 + (100 kΩ / RG(1000 у нас)) G = 101
+//перевод остч тов в вольты 3.3/4096
+// Х*3.3/(4096*(1 + 100000.0/RG)) это сколько вольт у нас
+#define MOV_AV_COEF 0.02//коэффициет скользящего среднего
+
+#define MIN_TRES 0.5
+#define MAX_TRES 3.0
+
+#define DATA_RATE 200
+//время для стабилизации сигналов когда ничего не происходит
+#define ALL_TIME_MS 1500
+#define START_UP_TIME_MS 2000
+#define SEARCH_BASE_TIME_MS 700
+#define SEARCH_MAX_TIME_MS 125
+#define SQUARE_TIME_MS 400
+#define TRIANGLE_TIME_MS 300
+#define TRIANGLE_STEP_TIME_MS 50
+#define LV_TIME_MS 500
+#define LV_START_TIME_MS 5
+#define LV_STOP_TIME_MS 50
+
+#define SQUARE_COEF 0.5
+#define TRIANGLE_COEF 0.85
+
+#define TERAPY_TRES 10//сколько нужно единичных фибриляций для терапии
+
+// Период 0 - FIBR_PERIOD считаем фибриляцией
+#define FIBR_PERIOD 250
+#define FIBR_PERIOD_MIN 250
+#define FIBR_PERIOD_MAX 350
+// Период FIBR_PERIOD - TACHY_2_PERIOD считаем тахикардией глубокой
+#define TACHY_2_PERIOD 350
+#define TACHY_2_PERIOD_MIN 300
+#define TACHY_2_PERIOD_MAX 400
+// Период TACHY_2_PERIOD - TACHY_1_PERIOD считаем тахикардией неглубокой
+#define TACHY_1_PERIOD 400
+#define TACHY_1_PERIOD_MIN 350
+#define TACHY_1_PERIOD_MAX 450
+
+// в десятых джоуля
+#define MIN_ENERGY 10
+#define MAX_ENERGY 100
+//сколько шагов должно быть в терапии
+#define HV_STEP_NUM 1
+//время в мс когда мы слепы
+#define HV_BLIND_TIME_MS 1500
+// размер буффера редетекции
+#define REDET_BUF_LEN 8
+// сколько нужно плохих периодов для продолжения терапии
+#define REDET_BAD_MAX 4
+
+#define STANDBY_TIME_MS 10*1000//пусть будет 1 минут
+
+
+#define CHARDE_TONE 120
+#define READY_TONE 100
+#define SHOCK_TONE 80
+#define NO_TONE 0
+typedef enum
+{
+ Monitor = 0, // Тупо смотрим
+ Normal = 1, // поиск порогов и терапия
+ Force = 2 // только терапия похуй на сигнал
+} main_mode;
+
+
+typedef enum
+{
+ low = 0, // активен нижний ключ
+ high = 1, // активен верхний ключ
+ z_state = 2 // оба неактивны
+} half_br;
+
+
+//режим поиска пиков 3 байта
+typedef enum
+{
+ Mode_start_UP = 0, // тупо накапливаем среднее секунды 3 чтоб никого случайно током не ударить
+ Mode_search_BASE = 1, // поиск по нижнему порогу из памяти
+ Mode_search_SQUARE = 2, // поиск 300-400 мс по прошлый порог*коэффициент
+ Mode_search_TRIANGLE = 3, // поиск в режиме треугольников
+ Mode_search_MAX = 4, // режим поиска максимума Vsense
+ Mode_stimulation_LV = 5, // нет пиков стимулируем низким напряжением и не анализируем заданное время в Mode_search_BASE?
+ Mode_stimulation_HV = 6 // отключаем вход чтобы не улетела скользящее среднее
+// Mode_stimulation_HV = 6 // Обнаружили фибриляцию начали заряжать конденсатор(возможно это над режим т.к. в нём мы тоже ищем пики)
+} search_mode;
+
+//режимы терапии 2 байта
+typedef enum
+{
+ Terapy_off = 0, // активна при тупом поиске корзин
+ Terapy_fibr = 1, // терапия фибриляции
+ Terapy_tachy_2 = 2, // терапия сильной тахикардии
+ Terapy_tachy_1 = 3 // терапия слабой тахикардии
+} terapy_mode;
+
+//подрежимы терапии 3 байта
+typedef enum
+{
+ sub_off = 0, // неактивный
+ sub_cap_ch = 1, // зарядка конденсатора
+ sub_redet = 2, // редетекция
+ sub_shock = 3, // удар током + время слепоты
+ sub_stim_fail = 4 // провели стимуляцию, но не помогло
+} terapy_sub_mode;
+
+
+//тип для события, каким он может быть 2 байта
+typedef enum
+{
+ Vsense = 0, // нормальное сокращение
+ Vpace = 1, // пришлось стимулировать сейчас не используем
+ Vnoise = 2, // шумы в QRS комплексе(пока не реализовали)
+} QRS_type;
+
+//конфигурация высоковольтных электродов
+typedef enum
+{
+ rv_neg_scv_poz = 0, // Электрод RV отрицательный SCV положительный
+ rv_neg_can_poz = 1, // Электрод RV отрицательный корпус прибора положительный
+ rv_neg_scv_can_poz = 2, // Электрод RV отрицательный SCV и корпус прибора положительный
+} hv_polarity;
+
+//тип высоковольтной стимуляции
+typedef enum
+{
+ hv_mode_fixed = 0, // стимуляция идёт согласно заданному времени
+ hv_mode_adaptive = 1, // стимуляция идёт согласно заданным процентам, но не более 2 длительностей фаз
+ hv_mode_mixed = 2, // Электрод RV отрицательный SCV и корпус прибора положительный//fixme надо подумать
+} hv_mode;
+
+//полярность низковольтной стимуляции
+typedef enum
+{
+ lv_mono = 0, // стимуляция идёт между выводами tip-can
+ lv_bipolar = 1 // стимуляция идёт между выводами tip-coil
+} lv_polarity;
+
+//режим низковольтной стимуляции
+typedef enum
+{
+ lv_mode_none = 0, //без стимуляции
+ lv_mode_BURST = 1, //режим для вызова фибрилляции после отработки пачки сбрасывается в lv_mode_none
+ lv_mode_VOO = 2, //стимуляция идёт независимо от активности сердца
+ lv_mode_VVI = 3 //стимуляция ингибируется при активности сердца
+} lv_mode;
+
+//подрежим низковольтной стимуляции
+typedef enum
+{
+ lv_sub_free = 0, //Свободный без всякого вмешательства tip и coil свободны разряда\заряда не происходит
+ lv_sub_charge = 1, //Заряд без всякого вмешательства tip и coil идёт заряд
+ lv_sub_shock = 2, //Разряд coil на землю притягиваем tip к конденсатору заряда нет
+ lv_sub_relax = 3, //Релаксация tip и coil притянуты к земле
+ lv_sub_discharge = 4 //Разряд без всякого вмешательства tip и coil свободны идёт разряд(необязательный режим)
+} lv_sub_mode;
+
+
+//тип для RR интервала
+typedef struct icd_str
+{
+ main_mode work_set_mode; //режим
+ main_mode work_now_mode; //режим
+
+ search_mode search_set_mode; //режим
+ search_mode search_now_mode; //режим
+ bool filter_on;//фильтр активен
+ uint8_t active_ch;//какой канал используем 0-3 0 это spi
+ bool sd_card;//используем ли мы SD карту?
+ bool dc_cut;//стираем ли мы постоянную составляющую
+ bool rr_now;//сейчас сокращение сердца
+ //минимальный и максимальный пороги с плав. точкой и инт в десятых миливольта
+ float min_tres;
+ uint8_t min_tres_d;
+ float max_tres;
+ uint8_t max_tres_d;
+ // коэффициент на который умножается сигнал при переход в режим квадратов
+ float square_coef;
+ uint8_t square_coef_d;
+ // коэффициент на который умножается сигнал на каждой ступени в режиме треугольников
+ float triangle_coef;
+ uint8_t triangle_coef_d;
+
+// счётчик режимов чтобы не задерживаться слишком долго в одном режиме
+ uint16_t mode_cnt;
+// время слепоты при включении
+ uint16_t start_up_time;
+// время поиска в базовом режиме с минимальным порогом
+ uint16_t base_time;
+// Время в мс которое алгоритм ищет максимум
+ uint16_t max_search_time;
+
+// Время в мс нахождения в режиме поиска квадратов
+ uint16_t square_time;
+
+// время на весь режим треугольников
+ uint16_t triangle_time;
+// время каждой ступени в режиме треугольников
+ uint16_t triangle_step_time;
+
+ //новое про низкое напряжение
+ bool lv_start; //начало стимуляции
+ ////////////////////////////////////////////////////////////////////////////////////////////
+ lv_polarity lv_polarity;//полярность низковольтной стимуляции
+ lv_mode lv_mode;//режим низковольтной стимуляции
+
+ uint8_t lv_shock_time;//время импульса низковольной стимуляции 1-20(0,1-2мс) одна единица 0,1мс шаг 0.1мс
+ uint8_t lv_relax_time;//время стабилизации после удара низковольной стимуляции 0-20(0-20мс) одна единица 1мс шаг 1мс
+ uint8_t lv_voltage;//какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+
+ //bool BURST_active;//параметр вводящий нас в режим burst посылка пачки импульсов для вызова фибрилляции
+ uint8_t BURST_cnt;//сколько импульсов в одной пачке 5-50 одна единица 1 импульс шаг 1 импульс
+ uint8_t BURST_voltage;//какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ uint16_t BURST_period;//период следования импульсов в мс 150-500мс одна единица 1мс шаг 10 мс на ползунке
+
+
+ // Время в мс которое длится режим стимуляции низким напряжением
+ uint16_t lv_mode_time;
+ // это во моногом эрзац.
+ uint16_t lv_start_time; //во сколько начали выдавать импульс
+ uint16_t lv_stop_time; //во сколько закончили выдавать импульс
+
+ uint16_t max_time; //сколько отведено на весь QRS комплекс
+
+// тип последнего определённого события
+ QRS_type last_QRS;
+// время между последним и предпоследним событием
+ uint16_t last_period;
+
+
+ float last_RR_amp;// переменная в которой храним амплитуды начала QRS#
+ int32_t last_RR_poz;//переменная в котором храним положение начала QRS#
+ int16_t last_RR_poz_rel;//переменная в которой храним относительное положение начала QRS
+
+// Счётчики нужны для алгоритма терапии Михаила
+ uint32_t Vs_cnt;//счётчик собственных сокращений сердца
+ uint32_t Vn_cnt;//счётчик собственных сокращений которые в шуме(не детектируется пока fixme)
+ uint32_t Vp_cnt;//счётчик принудительных стимуляций сердца низким напряжением(низковольтная стимуляция)
+
+ bool LV_on;// реально стимулируем низковольтно
+ bool HV_on;// реально стимулируем высоковольтно
+
+ int32_t counter;
+ float ecg_rv_filt; //экг в миливольтах для врачей
+ float ecg_rv_mov_av; //скользящее среднее для вычитания постоянной составляющей из сигнала
+ float ecg_rv_pos_sig; //сигнал из которого вычтена постоянная сост. и взят модуль
+ float ecg_rv_din_treshold;//динамический порог
+
+ // тут уже корзины
+ //порог периода фибриляции если период меньше, чем это число это фибриляция
+ uint16_t fibr_tres;
+ //порог периода Тахикардии 2 если период меньше, чем это число это Тахикардия 2
+ uint16_t tachy_2_tres;
+ //порог периода Тахикардии 1 если период меньше, чем это число это Тахикардия 1
+ uint16_t tachy_1_tres;
+
+ uint32_t vs_cnt_last;//сбрасываемый счётчик Vs событий
+ uint16_t filt_period;//фильтрованный скользящим средним период
+ uint8_t fibr_cnt; //счётчик фибриляции при обнаружении короткого RR он растёт
+ uint8_t tachy_2_cnt; //счётчик Тахикардии 2 при обнаружении короткого RR он растёт
+ uint8_t tachy_1_cnt; //счётчик Тахикардии 1 при обнаружении короткого RR он растёт
+ uint8_t norm_cnt; //счётчик событий c нормальным ЧСС при достижении 5 сбрасываем все корзины
+
+ uint32_t vp_cnt_last;//сбрасываемый счётчик Vs событий нужен при редетекции сергей сказал что Vp достаточно для выхода из режима
+ uint8_t fibr_max_tres; //порог счётчика фибриляций при котором начинаем терапию
+
+ /////////////////////////////////////////////////////
+ ///// терапия /////
+ /////////////////////////////////////////////////////
+ terapy_mode terapy_set;//заданный режим терапии
+ terapy_mode terapy_now;//текущий режим терапии
+
+ terapy_sub_mode sub_mode;//подрежим для индикации
+
+ uint8_t hv_step_number;//сколько шагов ВВ терапии?
+ uint8_t hv_step_cnt;// какой сейчас шаг?
+
+ //новое про высокое напряжение
+ //режимы стимуляции
+ bool hv_sound_accomp;//нужно ли звуковое сопровождение при заряде и ударе
+ hv_polarity hv_polarity;//полярность стимуляции
+ hv_mode hv_mode;//тип способа задания длительности импульса
+ //время константы времени стимуляции
+ uint8_t hv_phase_1_duration;// время в десятых мс приходящееся на 1 фазу 30-120(3-12мс) одна единица 0,1мс
+ uint8_t hv_phase_2_duration;// время в десятых мс приходящееся на 2 фазу 20-100(2-10мс) одна единица 0,1мс
+ uint8_t hv_switch_duration;// время в десятых мс приходящееся на переключение между фазами 10-30(1-3мс) одна единица 0,1мс
+ //процентные параметры стимуляции
+ uint8_t hv_switching_voltage;//процент напряжения при котором происходит завешение 1 фазы при адаптивном режиме (20-80) одна единица 1%
+ uint8_t hv_cutoff_voltage;//процент напряжения при котором происходит завешение 2 фазы при адаптивном режиме (5-50) одна единица 1%
+
+ uint16_t hv_step_energy;//сколько джоулей в одном шаге считаем в зависимости от минимума и максимума.
+ uint16_t min_energy;
+ uint16_t now_energy;
+ uint16_t max_energy;
+
+
+ uint16_t hv_blind_time;//время которое мы слепы после HV разряда
+
+ uint8_t redet_num; //какой длинны мы заполныем буффер при редетекции
+ uint8_t redet_bad; //сколько нам нужно плохих событий для запуска терапии
+ uint8_t redet_cnt; //сколько всего событий в редетекции
+ uint8_t redet_bad_cnt; //сколько реально плохих событий
+
+ uint32_t standby_timer;//сколько отдыхать после неудачного подавления фибриляции
+
+ uint8_t com_buf[20];
+
+ uint8_t spi_pot_set;//spi резистор для задания КУ
+ uint8_t spi_pot_now;//spi резистор для задания КУ
+} icd_str;
+
+
+
+
+
+float my_abs(float a);
+void get_data(icd_str * icd_str,uint16_t input);
+void get_data_max30003(icd_str * icd_str,int32_t input);
+
+void init_icd(icd_str * icd_str);
+bool mode_start(icd_str * icd_str);
+bool check_mode_len(icd_str * icd_str,uint16_t base_time, search_mode mode_to_set);
+bool check_tres(icd_str * icd_str);
+void search_alg(icd_str * icd_str);
+uint16_t moving_avarage(uint16_t data);
+void basket_alg(icd_str * icd_str);
+bool quick_analyse(icd_str * icd_str);
+
+
+void hv_charge(icd_str * icd_str);
+//функция плавного разряда Конденсатора
+void hv_discharge(bool state);
+//функция резкого разряда
+void hv_shock(icd_str * icd_str);
+
+void terapy_algorithm(icd_str * icd_str);
+void hv_pwm(bool state);
+void hv_sound(uint32_t presc);
+
+//управление защитными реле
+void relay_all_control(bool RV_safe,bool RA_safe,bool CAN_safe);
+void relay_ra_control(bool RA_safe);
+void relay_rv_control(bool RV_safe);
+void relay_can_control(bool CAN_safe);
+//управление ключами
+void hv_ll_control(half_br state_RV, half_br state_SCV, half_br state_CAN);
+void hv_power(bool state);
+void hv_ll_rv_control(half_br state);
+void hv_ll_scv_control(half_br state);
+void hv_ll_can_control(half_br state);
+
+
+void ll_h_off(void);
+void ll_h_1_side(half_br state);
+void ll_h_2_side(half_br state);
+void ll_bi_dis(void);
+
+void ra_lv_control(icd_str * icd_str,lv_sub_mode mode);
+void rv_lv_control(icd_str * icd_str,lv_sub_mode mode);
+
+void hv_en_control(bool en_RV, bool en_SCV, bool en_CAN);
+void hv_en_rv(bool state);
+void hv_en_scv(bool state);
+void hv_en_can(bool state);
+#endif
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/main.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/main.h
new file mode 100644
index 0000000..2bbcc68
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/main.h
@@ -0,0 +1,197 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.h
+ * @brief : Header for main.c file.
+ * This file contains the common defines of the application.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Exported types ------------------------------------------------------------*/
+/* USER CODE BEGIN ET */
+
+/* USER CODE END ET */
+
+/* Exported constants --------------------------------------------------------*/
+/* USER CODE BEGIN EC */
+
+/* USER CODE END EC */
+
+/* Exported macro ------------------------------------------------------------*/
+/* USER CODE BEGIN EM */
+
+/* USER CODE END EM */
+
+/* Exported functions prototypes ---------------------------------------------*/
+void Error_Handler(void);
+
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+/* Private defines -----------------------------------------------------------*/
+#define RV_LV_COIL_TO_GND_Pin GPIO_PIN_2
+#define RV_LV_COIL_TO_GND_GPIO_Port GPIOE
+#define RV_LV_TIP_TO_GND_Pin GPIO_PIN_3
+#define RV_LV_TIP_TO_GND_GPIO_Port GPIOE
+#define V12_PWR_Pin GPIO_PIN_4
+#define V12_PWR_GPIO_Port GPIOE
+#define BUZ_PWM_Pin GPIO_PIN_6
+#define BUZ_PWM_GPIO_Port GPIOE
+#define RV_COMP_ADC_Pin GPIO_PIN_1
+#define RV_COMP_ADC_GPIO_Port GPIOC
+#define RA_COMP_ADC_Pin GPIO_PIN_2
+#define RA_COMP_ADC_GPIO_Port GPIOC
+#define LV_COMP_ADC_Pin GPIO_PIN_3
+#define LV_COMP_ADC_GPIO_Port GPIOC
+#define BUT_1_Pin GPIO_PIN_0
+#define BUT_1_GPIO_Port GPIOA
+#define RV_PWM_1_Pin GPIO_PIN_1
+#define RV_PWM_1_GPIO_Port GPIOA
+#define RV_PWM_2_Pin GPIO_PIN_2
+#define RV_PWM_2_GPIO_Port GPIOA
+#define RV_PWM_3_Pin GPIO_PIN_3
+#define RV_PWM_3_GPIO_Port GPIOA
+#define RA_ADC_Pin GPIO_PIN_4
+#define RA_ADC_GPIO_Port GPIOA
+#define RV_ADC_Pin GPIO_PIN_5
+#define RV_ADC_GPIO_Port GPIOA
+#define LV_ADC_Pin GPIO_PIN_6
+#define LV_ADC_GPIO_Port GPIOA
+#define RA_LV_SHOCK_Pin GPIO_PIN_7
+#define RA_LV_SHOCK_GPIO_Port GPIOA
+#define HV_ADC_Pin GPIO_PIN_4
+#define HV_ADC_GPIO_Port GPIOC
+#define BAT_ADC_Pin GPIO_PIN_5
+#define BAT_ADC_GPIO_Port GPIOC
+#define RA_LV_DIS_Pin GPIO_PIN_0
+#define RA_LV_DIS_GPIO_Port GPIOB
+#define RA_LV_COIL_TO_GND_Pin GPIO_PIN_1
+#define RA_LV_COIL_TO_GND_GPIO_Port GPIOB
+#define RA_LV_TIP_TO_GND_Pin GPIO_PIN_2
+#define RA_LV_TIP_TO_GND_GPIO_Port GPIOB
+#define INA_PWR_Pin GPIO_PIN_7
+#define INA_PWR_GPIO_Port GPIOE
+#define COMP_PWR_Pin GPIO_PIN_8
+#define COMP_PWR_GPIO_Port GPIOE
+#define RED_PWM_Pin GPIO_PIN_9
+#define RED_PWM_GPIO_Port GPIOE
+#define DOP_PWR_Pin GPIO_PIN_10
+#define DOP_PWR_GPIO_Port GPIOE
+#define GREEN_PWM_Pin GPIO_PIN_11
+#define GREEN_PWM_GPIO_Port GPIOE
+#define BLUE_PWM_Pin GPIO_PIN_13
+#define BLUE_PWM_GPIO_Port GPIOE
+#define HV_PWM_Pin GPIO_PIN_14
+#define HV_PWM_GPIO_Port GPIOE
+#define HV_DIS_Pin GPIO_PIN_15
+#define HV_DIS_GPIO_Port GPIOE
+#define CAN_LV_TO_GND_Pin GPIO_PIN_10
+#define CAN_LV_TO_GND_GPIO_Port GPIOB
+#define POT_CS_1_Pin GPIO_PIN_12
+#define POT_CS_1_GPIO_Port GPIOB
+#define POT_PWR_Pin GPIO_PIN_14
+#define POT_PWR_GPIO_Port GPIOB
+#define POT_CS_4_Pin GPIO_PIN_8
+#define POT_CS_4_GPIO_Port GPIOD
+#define POT_CS_5_Pin GPIO_PIN_9
+#define POT_CS_5_GPIO_Port GPIOD
+#define POT_CS_6_Pin GPIO_PIN_10
+#define POT_CS_6_GPIO_Port GPIOD
+#define RA_RELAY_Pin GPIO_PIN_11
+#define RA_RELAY_GPIO_Port GPIOD
+#define RV_RELAY_Pin GPIO_PIN_12
+#define RV_RELAY_GPIO_Port GPIOD
+#define CAN_RELAY_Pin GPIO_PIN_13
+#define CAN_RELAY_GPIO_Port GPIOD
+#define LV_LV_TIP_TO_GND_Pin GPIO_PIN_14
+#define LV_LV_TIP_TO_GND_GPIO_Port GPIOD
+#define LV_LV_DIS_Pin GPIO_PIN_15
+#define LV_LV_DIS_GPIO_Port GPIOD
+#define LV_PWM_1_Pin GPIO_PIN_6
+#define LV_PWM_1_GPIO_Port GPIOC
+#define LV_PWM_2_Pin GPIO_PIN_7
+#define LV_PWM_2_GPIO_Port GPIOC
+#define LV_PWM_3_Pin GPIO_PIN_8
+#define LV_PWM_3_GPIO_Port GPIOC
+#define LV_LV_SHOCK_Pin GPIO_PIN_9
+#define LV_LV_SHOCK_GPIO_Port GPIOC
+#define LV_LV_COIL_TO_GND_Pin GPIO_PIN_8
+#define LV_LV_COIL_TO_GND_GPIO_Port GPIOA
+#define BLE_PWRC_Pin GPIO_PIN_11
+#define BLE_PWRC_GPIO_Port GPIOA
+#define BLE_PWR_Pin GPIO_PIN_12
+#define BLE_PWR_GPIO_Port GPIOA
+#define ADXL_PWR_Pin GPIO_PIN_15
+#define ADXL_PWR_GPIO_Port GPIOA
+#define ADXL_CS_Pin GPIO_PIN_0
+#define ADXL_CS_GPIO_Port GPIOD
+#define ADXL_INT_1_Pin GPIO_PIN_1
+#define ADXL_INT_1_GPIO_Port GPIOD
+#define HV_HS_CAN_Pin GPIO_PIN_2
+#define HV_HS_CAN_GPIO_Port GPIOD
+#define HV_EN_CAN_Pin GPIO_PIN_3
+#define HV_EN_CAN_GPIO_Port GPIOD
+#define HV_LS_CAN_Pin GPIO_PIN_4
+#define HV_LS_CAN_GPIO_Port GPIOD
+#define HV_HS_SCV_Pin GPIO_PIN_5
+#define HV_HS_SCV_GPIO_Port GPIOD
+#define HV_EN_SCV_Pin GPIO_PIN_6
+#define HV_EN_SCV_GPIO_Port GPIOD
+#define HV_LS_SCV_Pin GPIO_PIN_7
+#define HV_LS_SCV_GPIO_Port GPIOD
+#define HV_HS_RV_Pin GPIO_PIN_3
+#define HV_HS_RV_GPIO_Port GPIOB
+#define HV_EN_RV_Pin GPIO_PIN_4
+#define HV_EN_RV_GPIO_Port GPIOB
+#define HV_LS_RV_Pin GPIO_PIN_5
+#define HV_LS_RV_GPIO_Port GPIOB
+#define RA_PWM_1_Pin GPIO_PIN_6
+#define RA_PWM_1_GPIO_Port GPIOB
+#define RA_PWM_2_Pin GPIO_PIN_7
+#define RA_PWM_2_GPIO_Port GPIOB
+#define RA_PWM_3_Pin GPIO_PIN_8
+#define RA_PWM_3_GPIO_Port GPIOB
+#define RV_LV_SHOCK_Pin GPIO_PIN_9
+#define RV_LV_SHOCK_GPIO_Port GPIOB
+#define HV_LOGIC_PWR_Pin GPIO_PIN_0
+#define HV_LOGIC_PWR_GPIO_Port GPIOE
+#define RV_LV_DIS_Pin GPIO_PIN_1
+#define RV_LV_DIS_GPIO_Port GPIOE
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MAIN_H */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/parse.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/parse.h
new file mode 100644
index 0000000..41cb8ec
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/parse.h
@@ -0,0 +1,5 @@
+#ifndef _PARSE_H
+#define _PARSE_H
+#include "icd.h"
+void parse_command(uint8_t* buf, icd_str * icd_str);
+#endif
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/spi.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/spi.h
new file mode 100644
index 0000000..d8e632e
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/spi.h
@@ -0,0 +1,56 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file spi.h
+ * @brief This file contains all the function prototypes for
+ * the spi.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __SPI_H__
+#define __SPI_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+extern SPI_HandleTypeDef hspi2;
+
+extern SPI_HandleTypeDef hspi3;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_SPI2_Init(void);
+void MX_SPI3_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+void POT_set(uint8_t val);
+void POT_cheek(uint8_t* set, uint8_t* now);
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SPI_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_hal_conf.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_hal_conf.h
new file mode 100644
index 0000000..4d3475a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_hal_conf.h
@@ -0,0 +1,495 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_conf_template.h
+ * @author MCD Application Team
+ * @brief HAL configuration template file.
+ * This file should be copied to the application folder and renamed
+ * to stm32f4xx_hal_conf.h.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_HAL_CONF_H
+#define __STM32F4xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+#define HAL_MODULE_ENABLED
+
+ /* #define HAL_CRYP_MODULE_ENABLED */
+#define HAL_ADC_MODULE_ENABLED
+/* #define HAL_CAN_MODULE_ENABLED */
+/* #define HAL_CRC_MODULE_ENABLED */
+/* #define HAL_CAN_LEGACY_MODULE_ENABLED */
+/* #define HAL_DAC_MODULE_ENABLED */
+/* #define HAL_DCMI_MODULE_ENABLED */
+/* #define HAL_DMA2D_MODULE_ENABLED */
+/* #define HAL_ETH_MODULE_ENABLED */
+/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
+/* #define HAL_NAND_MODULE_ENABLED */
+/* #define HAL_NOR_MODULE_ENABLED */
+/* #define HAL_PCCARD_MODULE_ENABLED */
+/* #define HAL_SRAM_MODULE_ENABLED */
+/* #define HAL_SDRAM_MODULE_ENABLED */
+/* #define HAL_HASH_MODULE_ENABLED */
+/* #define HAL_I2C_MODULE_ENABLED */
+/* #define HAL_I2S_MODULE_ENABLED */
+/* #define HAL_IWDG_MODULE_ENABLED */
+/* #define HAL_LTDC_MODULE_ENABLED */
+/* #define HAL_RNG_MODULE_ENABLED */
+/* #define HAL_RTC_MODULE_ENABLED */
+/* #define HAL_SAI_MODULE_ENABLED */
+/* #define HAL_SD_MODULE_ENABLED */
+/* #define HAL_MMC_MODULE_ENABLED */
+#define HAL_SPI_MODULE_ENABLED
+#define HAL_TIM_MODULE_ENABLED
+#define HAL_UART_MODULE_ENABLED
+/* #define HAL_USART_MODULE_ENABLED */
+/* #define HAL_IRDA_MODULE_ENABLED */
+/* #define HAL_SMARTCARD_MODULE_ENABLED */
+/* #define HAL_SMBUS_MODULE_ENABLED */
+/* #define HAL_WWDG_MODULE_ENABLED */
+/* #define HAL_PCD_MODULE_ENABLED */
+/* #define HAL_HCD_MODULE_ENABLED */
+/* #define HAL_DSI_MODULE_ENABLED */
+/* #define HAL_QSPI_MODULE_ENABLED */
+/* #define HAL_QSPI_MODULE_ENABLED */
+/* #define HAL_CEC_MODULE_ENABLED */
+/* #define HAL_FMPI2C_MODULE_ENABLED */
+/* #define HAL_FMPSMBUS_MODULE_ENABLED */
+/* #define HAL_SPDIFRX_MODULE_ENABLED */
+/* #define HAL_DFSDM_MODULE_ENABLED */
+/* #define HAL_LPTIM_MODULE_ENABLED */
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+#define HAL_FLASH_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_CORTEX_MODULE_ENABLED
+
+/* ########################## HSE/HSI Values adaptation ##################### */
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/
+#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature.*/
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief External clock source for I2S peripheral
+ * This value is used by the I2S HAL module to compute the I2S clock source
+ * frequency, this source is inserted directly through I2S_CKIN pad.
+ */
+#if !defined (EXTERNAL_CLOCK_VALUE)
+ #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External audio frequency in Hz*/
+#endif /* EXTERNAL_CLOCK_VALUE */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE 3300U /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */
+#define USE_RTOS 0U
+#define PREFETCH_ENABLE 1U
+#define INSTRUCTION_CACHE_ENABLE 1U
+#define DATA_CACHE_ENABLE 1U
+
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
+#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
+#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
+#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
+#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
+#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
+#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
+#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
+#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
+#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
+#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
+#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
+#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */
+#define USE_HAL_FMPSMBUS_REGISTER_CALLBACKS 0U /* FMPSMBUS register callback disabled */
+#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
+#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
+#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
+#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
+#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
+#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
+#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
+#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
+#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
+#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
+#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
+#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
+#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
+#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
+#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
+#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
+#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
+#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
+#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
+#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
+#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
+#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+ #define USE_FULL_ASSERT 1U
+
+/* ################## Ethernet peripheral configuration ##################### */
+
+/* Section 1 : Ethernet peripheral configuration */
+
+/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
+#define MAC_ADDR0 2U
+#define MAC_ADDR1 0U
+#define MAC_ADDR2 0U
+#define MAC_ADDR3 0U
+#define MAC_ADDR4 0U
+#define MAC_ADDR5 0U
+
+/* Definition of the Ethernet driver buffers size and count */
+#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
+#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
+#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
+#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
+
+/* Section 2: PHY configuration section */
+
+/* DP83848_PHY_ADDRESS Address*/
+#define DP83848_PHY_ADDRESS
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+#define PHY_RESET_DELAY 0x000000FFU
+/* PHY Configuration delay */
+#define PHY_CONFIG_DELAY 0x00000FFFU
+
+#define PHY_READ_TO 0x0000FFFFU
+#define PHY_WRITE_TO 0x0000FFFFU
+
+/* Section 3: Common PHY Registers */
+
+#define PHY_BCR ((uint16_t)0x0000U) /*!< Transceiver Basic Control Register */
+#define PHY_BSR ((uint16_t)0x0001U) /*!< Transceiver Basic Status Register */
+
+#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */
+#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */
+#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */
+#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */
+#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */
+#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */
+#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */
+#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */
+#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */
+#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */
+
+#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */
+#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */
+#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
+
+/* Section 4: Extended PHY Registers */
+#define PHY_SR ((uint16_t)) /*!< PHY status register Offset */
+
+#define PHY_SPEED_STATUS ((uint16_t)) /*!< PHY Speed mask */
+#define PHY_DUPLEX_STATUS ((uint16_t)) /*!< PHY Duplex mask */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+* Activated: CRC code is present inside driver
+* Deactivated: CRC code cleaned from driver
+*/
+
+#define USE_SPI_CRC 0U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32f4xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+ #include "stm32f4xx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32f4xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32f4xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CAN_MODULE_ENABLED
+ #include "stm32f4xx_hal_can.h"
+#endif /* HAL_CAN_MODULE_ENABLED */
+
+#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
+ #include "stm32f4xx_hal_can_legacy.h"
+#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32f4xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32f4xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DMA2D_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma2d.h"
+#endif /* HAL_DMA2D_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+ #include "stm32f4xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_DCMI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dcmi.h"
+#endif /* HAL_DCMI_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+ #include "stm32f4xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_ETH_LEGACY_MODULE_ENABLED
+ #include "stm32f4xx_hal_eth_legacy.h"
+#endif /* HAL_ETH_LEGACY_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+ #include "stm32f4xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+ #include "stm32f4xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_PCCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pccard.h"
+#endif /* HAL_PCCARD_MODULE_ENABLED */
+
+#ifdef HAL_SDRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sdram.h"
+#endif /* HAL_SDRAM_MODULE_ENABLED */
+
+#ifdef HAL_HASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_hash.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32f4xx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LTDC_MODULE_ENABLED
+ #include "stm32f4xx_hal_ltdc.h"
+#endif /* HAL_LTDC_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32f4xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32f4xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32f4xx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+ #include "stm32f4xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32f4xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32f4xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32f4xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_hcd.h"
+#endif /* HAL_HCD_MODULE_ENABLED */
+
+#ifdef HAL_DSI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dsi.h"
+#endif /* HAL_DSI_MODULE_ENABLED */
+
+#ifdef HAL_QSPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_qspi.h"
+#endif /* HAL_QSPI_MODULE_ENABLED */
+
+#ifdef HAL_CEC_MODULE_ENABLED
+ #include "stm32f4xx_hal_cec.h"
+#endif /* HAL_CEC_MODULE_ENABLED */
+
+#ifdef HAL_FMPI2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_fmpi2c.h"
+#endif /* HAL_FMPI2C_MODULE_ENABLED */
+
+#ifdef HAL_FMPSMBUS_MODULE_ENABLED
+ #include "stm32f4xx_hal_fmpsmbus.h"
+#endif /* HAL_FMPSMBUS_MODULE_ENABLED */
+
+#ifdef HAL_SPDIFRX_MODULE_ENABLED
+ #include "stm32f4xx_hal_spdifrx.h"
+#endif /* HAL_SPDIFRX_MODULE_ENABLED */
+
+#ifdef HAL_DFSDM_MODULE_ENABLED
+ #include "stm32f4xx_hal_dfsdm.h"
+#endif /* HAL_DFSDM_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+
+#ifdef HAL_MMC_MODULE_ENABLED
+ #include "stm32f4xx_hal_mmc.h"
+#endif /* HAL_MMC_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(uint8_t* file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_HAL_CONF_H */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_it.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_it.h
new file mode 100644
index 0000000..64584d4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/stm32f4xx_it.h
@@ -0,0 +1,68 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.h
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_IT_H
+#define __STM32F4xx_IT_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Exported types ------------------------------------------------------------*/
+/* USER CODE BEGIN ET */
+
+/* USER CODE END ET */
+
+/* Exported constants --------------------------------------------------------*/
+/* USER CODE BEGIN EC */
+
+/* USER CODE END EC */
+
+/* Exported macro ------------------------------------------------------------*/
+/* USER CODE BEGIN EM */
+
+/* USER CODE END EM */
+
+/* Exported functions prototypes ---------------------------------------------*/
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void MemManage_Handler(void);
+void BusFault_Handler(void);
+void UsageFault_Handler(void);
+void DebugMon_Handler(void);
+void USART1_IRQHandler(void);
+void TIM8_BRK_TIM12_IRQHandler(void);
+void TIM6_DAC_IRQHandler(void);
+void DMA2_Stream2_IRQHandler(void);
+void DMA2_Stream7_IRQHandler(void);
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_IT_H */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/tim.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/tim.h
new file mode 100644
index 0000000..61a3e82
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/tim.h
@@ -0,0 +1,72 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file tim.h
+ * @brief This file contains all the function prototypes for
+ * the tim.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __TIM_H__
+#define __TIM_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+extern TIM_HandleTypeDef htim1;
+
+extern TIM_HandleTypeDef htim2;
+
+extern TIM_HandleTypeDef htim3;
+
+extern TIM_HandleTypeDef htim4;
+
+extern TIM_HandleTypeDef htim6;
+
+extern TIM_HandleTypeDef htim9;
+
+extern TIM_HandleTypeDef htim14;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_TIM1_Init(void);
+void MX_TIM2_Init(void);
+void MX_TIM3_Init(void);
+void MX_TIM4_Init(void);
+void MX_TIM6_Init(void);
+void MX_TIM9_Init(void);
+void MX_TIM14_Init(void);
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TIM_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/usart.h b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/usart.h
new file mode 100644
index 0000000..1a4718a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Inc/usart.h
@@ -0,0 +1,64 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file usart.h
+ * @brief This file contains all the function prototypes for
+ * the usart.c file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __USART_H__
+#define __USART_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+#include
+#include
+#include
+#include
+
+#include "control.h"
+#include "icd.h"
+/* USER CODE END Includes */
+
+extern UART_HandleTypeDef huart1;
+
+/* USER CODE BEGIN Private defines */
+#define TX_PLOAD_WIDTH 32
+#define MESH_PLOAD_WIDTH 28
+/* USER CODE END Private defines */
+
+void MX_USART1_UART_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+void print_usart(const char *pFormat, ...);
+void ble_init(bool on_off);
+void ble_control(ctrl_struct* control);
+void ble_deinit(void);
+void ble_HEX(ctrl_struct* control, adc_struct* adc,bool send);
+void ble_HEX_new(ctrl_struct* control, icd_str * icd_str, adc_struct* adc,bool send);
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USART_H__ */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/adc.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/adc.c
new file mode 100644
index 0000000..f3499ee
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/adc.c
@@ -0,0 +1,274 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file adc.c
+ * @brief This file provides code for the configuration
+ * of the ADC instances.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "adc.h"
+
+/* USER CODE BEGIN 0 */
+adc_struct adc_str;//структура ацп
+/* USER CODE END 0 */
+
+ADC_HandleTypeDef hadc1;
+
+/* ADC1 init function */
+void MX_ADC1_Init(void)
+{
+
+ /* USER CODE BEGIN ADC1_Init 0 */
+
+ /* USER CODE END ADC1_Init 0 */
+
+ ADC_ChannelConfTypeDef sConfig = {0};
+
+ /* USER CODE BEGIN ADC1_Init 1 */
+
+ /* USER CODE END ADC1_Init 1 */
+
+ /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
+ */
+ hadc1.Instance = ADC1;
+ hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
+ hadc1.Init.Resolution = ADC_RESOLUTION_12B;
+ hadc1.Init.ScanConvMode = ENABLE;
+ hadc1.Init.ContinuousConvMode = DISABLE;
+ hadc1.Init.DiscontinuousConvMode = ENABLE;
+ hadc1.Init.NbrOfDiscConversion = 1;
+ hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
+ hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
+ hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
+ hadc1.Init.NbrOfConversion = 8;
+ hadc1.Init.DMAContinuousRequests = DISABLE;
+ hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
+ if (HAL_ADC_Init(&hadc1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_4;
+ sConfig.Rank = 1;
+ sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_5;
+ sConfig.Rank = 2;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_6;
+ sConfig.Rank = 3;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_11;
+ sConfig.Rank = 4;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_12;
+ sConfig.Rank = 5;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_13;
+ sConfig.Rank = 6;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_14;
+ sConfig.Rank = 7;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_15;
+ sConfig.Rank = 8;
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN ADC1_Init 2 */
+
+ /* USER CODE END ADC1_Init 2 */
+
+}
+
+void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(adcHandle->Instance==ADC1)
+ {
+ /* USER CODE BEGIN ADC1_MspInit 0 */
+
+ /* USER CODE END ADC1_MspInit 0 */
+ /* ADC1 clock enable */
+ __HAL_RCC_ADC1_CLK_ENABLE();
+
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ /**ADC1 GPIO Configuration
+ PC1 ------> ADC1_IN11
+ PC2 ------> ADC1_IN12
+ PC3 ------> ADC1_IN13
+ PA4 ------> ADC1_IN4
+ PA5 ------> ADC1_IN5
+ PA6 ------> ADC1_IN6
+ PC4 ------> ADC1_IN14
+ PC5 ------> ADC1_IN15
+ */
+ GPIO_InitStruct.Pin = RV_COMP_ADC_Pin|RA_COMP_ADC_Pin|LV_COMP_ADC_Pin|HV_ADC_Pin
+ |BAT_ADC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = RA_ADC_Pin|RV_ADC_Pin|LV_ADC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN ADC1_MspInit 1 */
+
+ /* USER CODE END ADC1_MspInit 1 */
+ }
+}
+
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
+{
+
+ if(adcHandle->Instance==ADC1)
+ {
+ /* USER CODE BEGIN ADC1_MspDeInit 0 */
+
+ /* USER CODE END ADC1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_ADC1_CLK_DISABLE();
+
+ /**ADC1 GPIO Configuration
+ PC1 ------> ADC1_IN11
+ PC2 ------> ADC1_IN12
+ PC3 ------> ADC1_IN13
+ PA4 ------> ADC1_IN4
+ PA5 ------> ADC1_IN5
+ PA6 ------> ADC1_IN6
+ PC4 ------> ADC1_IN14
+ PC5 ------> ADC1_IN15
+ */
+ HAL_GPIO_DeInit(GPIOC, RV_COMP_ADC_Pin|RA_COMP_ADC_Pin|LV_COMP_ADC_Pin|HV_ADC_Pin
+ |BAT_ADC_Pin);
+
+ HAL_GPIO_DeInit(GPIOA, RA_ADC_Pin|RV_ADC_Pin|LV_ADC_Pin);
+
+ /* USER CODE BEGIN ADC1_MspDeInit 1 */
+
+ /* USER CODE END ADC1_MspDeInit 1 */
+ }
+}
+
+/* USER CODE BEGIN 1 */
+
+uint8_t volt_to_pers(uint32_t vin)
+{
+ if(vin < Low_volt)
+ {
+ return 0;
+ }
+ if(vin > High_volt)
+ {
+ return 100;
+ }
+ else
+ {
+ uint8_t vout = (uint8_t)((vin-3600)/5);
+ return vout;
+ }
+}
+
+void adc_read(adc_struct* adc)
+{
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->ecg_1_raw = HAL_ADC_GetValue(&hadc1);//Небольшой псевдо фильтр цифровой K - 0.1
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->ecg_2_raw = HAL_ADC_GetValue(&hadc1);
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->ecg_3_raw = HAL_ADC_GetValue(&hadc1);
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->rv_comp_raw = HAL_ADC_GetValue(&hadc1);//Небольшой псевдо фильтр цифровой K - 0.1
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->ra_comp_raw = HAL_ADC_GetValue(&hadc1);
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->lv_comp_raw = HAL_ADC_GetValue(&hadc1);
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->hv_raw = HAL_ADC_GetValue(&hadc1);
+ adc->hv_volt = ((uint32_t)(adc->hv_raw) * 9700)/4095;//40 миливольт падение на идеальном диоде
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ adc->bat_raw = HAL_ADC_GetValue(&hadc1);
+ adc->bat_volt = ((uint32_t)(adc->bat_raw) * 6600)/4095 + 40;//40 миливольт падение на идеальном диоде
+ adc->bat_pers = volt_to_pers(adc->bat_volt);//40 миливольт падение на идеальном диоде
+
+
+ adc->error = HAL_ADC_Stop(&hadc1);
+ adc->drdy_trigger = true;
+}
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/control.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/control.c
new file mode 100644
index 0000000..88d95f3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/control.c
@@ -0,0 +1,46 @@
+#include "control.h"
+
+ctrl_struct Control; //FLASH (rx)
+
+void control_init(void)
+{
+ Control.dev_type = DEV_TYPE;
+ Control.ble_mode_set = ble_raw;
+ Control.ble_mode_now = ble_off;
+ Control.serial_number = BASE_SERIAL_NUM;
+ Control.password = BASE_PASSWORD;
+ Control.mesh_netid = BASE_MESH_ID;
+ Control.mesh_adr = BASE_MESH_ADR;
+ Control.master_adr = BASE_MASTER_ADR;
+ Control.ble_ask = false;
+}
+
+void control_init_var(ctrl_struct * control)
+{
+ control->dev_type = DEV_TYPE;
+ control->ble_mode_set = ble_off;
+ control->ble_mode_set = ble_off;
+ control->serial_number = BASE_SERIAL_NUM;
+ control->password = BASE_PASSWORD;
+ control->mesh_netid = BASE_MESH_ID;
+ control->mesh_adr = BASE_MESH_ADR;
+ control->master_adr = BASE_MASTER_ADR;
+ control->ble_ask = false;
+}
+
+
+void lets_sleep(void)
+{
+ //Выключили питание АЦП
+ HAL_GPIO_WritePin(INA_PWR_GPIO_Port, INA_PWR_Pin, RESET);
+ //Выключили питание потенциометра
+ HAL_GPIO_WritePin(POT_PWR_GPIO_Port, POT_PWR_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+
+ HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);
+ //Сейчас второй кнопки нет!!
+ //HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);//если вторая кнопка тоже подключена PC0
+ __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
+ HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
+ HAL_PWR_EnterSTANDBYMode();
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/delay.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/delay.c
new file mode 100644
index 0000000..5b3e5ae
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/delay.c
@@ -0,0 +1,62 @@
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+//***************************************************************************
+//
+// Переделанная библиотека задержек - теперь не ругается
+//
+//***************************************************************************
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+
+#include "delay.h"
+
+//===============================================================
+// Задержка времени в мкс
+//===============================================================
+void delay_us(unsigned int t)
+{
+ unsigned long i;
+ i = t*SYSCLK;
+ while(i--);
+}
+
+//===============================================================
+// Задержка времени в мс
+//===============================================================
+void delay_ms(unsigned int t)
+{
+ unsigned long i;
+ i = t*SYSCLK*100;
+ while(i--);
+}
+
+//===============================================================
+// Задержка времени в мкс со сбросом вотчдога
+//===============================================================
+void delay_us_wd(unsigned int t)
+{
+ unsigned long i;
+ i = t*SYSCLK;
+ while(i--);
+ /*{
+ if(i%10000 == 0)
+ WWDG_SetCounter(0x7F);//новое перезагрузка таймера вотчдога;
+ };*/
+}
+
+//===============================================================
+// Задержка времени в мкс со сбросом вотчдога
+//===============================================================
+void delay_ms_wd(unsigned int t)
+{
+ unsigned long i;
+ i = t*SYSCLK*100;
+ while(i--);
+ /*{
+ if(i%10000 == 0)
+ WWDG_SetCounter(0x7F);//новое перезагрузка таймера вотчдога;
+ }*/
+}
+
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/dma.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/dma.c
new file mode 100644
index 0000000..a17a325
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/dma.c
@@ -0,0 +1,58 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file dma.c
+ * @brief This file provides code for the configuration
+ * of all the requested memory to memory DMA transfers.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "dma.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/*----------------------------------------------------------------------------*/
+/* Configure DMA */
+/*----------------------------------------------------------------------------*/
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+
+/**
+ * Enable DMA controller clock
+ */
+void MX_DMA_Init(void)
+{
+
+ /* DMA controller clock enable */
+ __HAL_RCC_DMA2_CLK_ENABLE();
+
+ /* DMA interrupt init */
+ /* DMA2_Stream2_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
+ /* DMA2_Stream7_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
+
+}
+
+/* USER CODE BEGIN 2 */
+
+/* USER CODE END 2 */
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/filter.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/filter.c
new file mode 100644
index 0000000..8bc19a0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/filter.c
@@ -0,0 +1,177 @@
+#include "filter.h"
+
+#define NCoef_50hz_2or 4
+
+float iir_50hz_2or(float NewSample)
+{
+ float ACoef[NCoef_50hz_2or+1] = {
+ 0.88238733633963495000,
+ 0.00000000000000000000,
+ 1.76477467267926990000,
+ 0.00000000000000000000,
+ 0.88238733633963495000
+ };
+
+ float BCoef[NCoef_50hz_2or+1] = {
+ 1.00000000000000000000,
+ 0.00000000002797958790,
+ 1.73472576874776110000,
+ -0.00000000003972608856,
+ 0.76600660085864003000
+ };
+
+ static float y[NCoef_50hz_2or+1]; //output samples
+ static float x[NCoef_50hz_2or+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoef_50hz_2or; n>0; n--) {
+ x[n] = x[n-1];
+ y[n] = y[n-1];
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ y[0] = ACoef[0] * x[0];
+ for(n=1; n<=NCoef_50hz_2or; n++)
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+
+ return y[0];
+}
+
+#define NCoef_50hz_1or 2
+float iir_50hz_1or(float NewSample) {
+ float ACoef[NCoef_50hz_1or+1] = {
+ 0.90906873056553772000,
+ 0.00000000000000000000,
+ 0.90906873056553772000
+ };
+
+ float BCoef[NCoef_50hz_1or+1] = {
+ 1.00000000000000000000,
+ -0.00000000003423416752,
+ 0.82727194590455844000
+ };
+
+ static float y[NCoef_50hz_1or+1]; //output samples
+ static float x[NCoef_50hz_1or+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoef_50hz_1or; n>0; n--) {
+ x[n] = x[n-1];
+ y[n] = y[n-1];
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ y[0] = ACoef[0] * x[0];
+ for(n=1; n<=NCoef_50hz_1or; n++)
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+
+ return y[0];
+}
+
+#define NCoefhp 1
+float iir_hp(float NewSample) {
+ float ACoef[NCoefhp+1] = {
+ 0.98452866335087641000,
+ -0.98452866335087641000
+ };
+
+ float BCoef[NCoefhp+1] = {
+ 1.00000000000000000000,
+ -0.96906741719524436000
+ };
+
+ static float y[NCoefhp+1]; //output samples
+ static float x[NCoefhp+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoefhp; n>0; n--) {
+ x[n] = x[n-1];
+ y[n] = y[n-1];
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ y[0] = ACoef[0] * x[0];
+ for(n=1; n<=NCoefhp; n++)
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+
+ return y[0];
+}
+#define NCoef_4060 4
+float iir_4060(float NewSample) {
+ float ACoef[NCoef_4060+1] = {
+ 0.63878443277987573000,
+ 0.00000000000000000000,
+ 1.27756886555975150000,
+ 0.00000000000000000000,
+ 0.63878443277987573000
+ };
+
+ float BCoef[NCoef_4060+1] = {
+ 1.00000000000000000000,
+ 0.00000000001085573304,
+ 1.14298050252887370000,
+ -0.00000000003731445864,
+ 0.41280159805878519000
+ };
+
+ static float y[NCoef_4060+1]; //output samples
+ static float x[NCoef_4060+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoef_4060; n>0; n--) {
+ x[n] = x[n-1];
+ y[n] = y[n-1];
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ y[0] = ACoef[0] * x[0];
+ for(n=1; n<=NCoef_4060; n++)
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+
+ return y[0];
+}
+
+#define NCoef_lp 4
+float iir_lp30(float NewSample) {
+ float ACoef[NCoef_lp+1] = {
+ 0.01856343837888402300,
+ 0.07425375351553609200,
+ 0.11138063027330414000,
+ 0.07425375351553609200,
+ 0.01856343837888402300
+ };
+
+ float BCoef[NCoef_lp+1] = {
+ 1.00000000000000000000,
+ -1.57039885122817170000,
+ 1.27561332498327910000,
+ -0.48440336833508529000,
+ 0.07619706461033234900
+ };
+
+ static float y[NCoef_lp+1]; //output samples
+ static float x[NCoef_lp+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoef_lp; n>0; n--) {
+ x[n] = x[n-1];
+ y[n] = y[n-1];
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ y[0] = ACoef[0] * x[0];
+ for(n=1; n<=NCoef_lp; n++)
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+
+ return y[0];
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/freertos.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/freertos.c
new file mode 100644
index 0000000..cb697c2
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/freertos.c
@@ -0,0 +1,305 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * File Name : freertos.c
+ * Description : Code for freertos applications
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "FreeRTOS.h"
+#include "task.h"
+#include "main.h"
+#include "cmsis_os.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "adc.h"
+#include "usart.h"
+#include "control.h"
+#include "icd.h"
+#include "parse.h"
+#include "spi.h"
+#include "gpio.h"
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN PTD */
+extern adc_struct adc_str;//структура ацп
+extern ctrl_struct Control; //FLASH (rx)
+extern icd_str ICD; //
+/* USER CODE END PTD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN Variables */
+
+/* USER CODE END Variables */
+osThreadId defaultTaskHandle;
+uint32_t defaultTaskBuffer[ 300 ];
+osStaticThreadDef_t defaultTaskControlBlock;
+osThreadId OprosTaskHandle;
+uint32_t OprosTaskBuffer[ 300 ];
+osStaticThreadDef_t OprosTaskControlBlock;
+osThreadId ControlTaskHandle;
+uint32_t ControlTaskBuffer[ 300 ];
+osStaticThreadDef_t ControlTaskControlBlock;
+osThreadId LowSpeedTaskHandle;
+uint32_t LowSpeedTaskBuffer[ 300 ];
+osStaticThreadDef_t LowSpeedTaskControlBlock;
+osThreadId ButTaskHandle;
+uint32_t ButTaskBuffer[ 300 ];
+osStaticThreadDef_t ButTaskControlBlock;
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN FunctionPrototypes */
+
+/* USER CODE END FunctionPrototypes */
+
+void StartDefaultTask(void const * argument);
+void StartOprosTask(void const * argument);
+void StartControlTask(void const * argument);
+void StartLowSpeedTask(void const * argument);
+void StartButTask(void const * argument);
+
+void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
+
+/* GetIdleTaskMemory prototype (linked to static allocation support) */
+void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
+
+/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
+static StaticTask_t xIdleTaskTCBBuffer;
+static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
+
+void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
+{
+ *ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
+ *ppxIdleTaskStackBuffer = &xIdleStack[0];
+ *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
+ /* place for user code */
+}
+/* USER CODE END GET_IDLE_TASK_MEMORY */
+
+/**
+ * @brief FreeRTOS initialization
+ * @param None
+ * @retval None
+ */
+void MX_FREERTOS_Init(void) {
+ /* USER CODE BEGIN Init */
+ init_icd(&ICD);
+ /* USER CODE END Init */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadStaticDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 300, defaultTaskBuffer, &defaultTaskControlBlock);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* definition and creation of OprosTask */
+ osThreadStaticDef(OprosTask, StartOprosTask, osPriorityNormal, 0, 300, OprosTaskBuffer, &OprosTaskControlBlock);
+ OprosTaskHandle = osThreadCreate(osThread(OprosTask), NULL);
+
+ /* definition and creation of ControlTask */
+ osThreadStaticDef(ControlTask, StartControlTask, osPriorityIdle, 0, 300, ControlTaskBuffer, &ControlTaskControlBlock);
+ ControlTaskHandle = osThreadCreate(osThread(ControlTask), NULL);
+
+ /* definition and creation of LowSpeedTask */
+ osThreadStaticDef(LowSpeedTask, StartLowSpeedTask, osPriorityIdle, 0, 300, LowSpeedTaskBuffer, &LowSpeedTaskControlBlock);
+ LowSpeedTaskHandle = osThreadCreate(osThread(LowSpeedTask), NULL);
+
+ /* definition and creation of ButTask */
+ osThreadStaticDef(ButTask, StartButTask, osPriorityIdle, 0, 300, ButTaskBuffer, &ButTaskControlBlock);
+ ButTaskHandle = osThreadCreate(osThread(ButTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+}
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* USER CODE BEGIN StartDefaultTask */
+ /* Infinite loop */
+ for (;;)
+ {
+ if(ICD.lv_start == true)
+ {
+ rv_lv_control(&ICD,lv_sub_charge);
+ rv_lv_control(&ICD,lv_sub_shock);
+ rv_lv_control(&ICD,lv_sub_relax);
+// rv_lv_control(&ICD,lv_sub_free);
+ rv_lv_control(&ICD,lv_sub_discharge);
+ ICD.lv_start = false;
+// rv_lv_control(icd_str,lv_sub_free);
+ }
+ osDelay(5);
+ }
+ /* USER CODE END StartDefaultTask */
+}
+
+/* USER CODE BEGIN Header_StartOprosTask */
+/**
+* @brief Function implementing the OprosTask thread.
+* @param argument: Not used
+* @retval None
+*/
+/* USER CODE END Header_StartOprosTask */
+void StartOprosTask(void const * argument)
+{
+ /* USER CODE BEGIN StartOprosTask */
+ /* Infinite loop */
+ for(;;)
+ {
+ if (ICD.active_ch == 0)
+ {
+
+ }
+ else
+ {
+ if(adc_str.drdy_trigger)
+ {
+ adc_str.drdy_trigger = false;//сбросили флаг
+ if(ICD.active_ch == 1)
+ get_data(&ICD,adc_str.ecg_1_raw);
+ if(ICD.active_ch == 2)
+ get_data(&ICD,adc_str.ecg_2_raw);
+ if(ICD.active_ch == 3)
+ get_data(&ICD,adc_str.ecg_3_raw);
+ //обычный алгоритм поиска
+ search_alg(&ICD);
+ ble_HEX_new(&Control,&ICD, &adc_str,true);
+ }
+ }
+ osDelay(1);
+ }
+ /* USER CODE END StartOprosTask */
+}
+
+/* USER CODE BEGIN Header_StartControlTask */
+/**
+* @brief Function implementing the ControlTask thread.
+* @param argument: Not used
+* @retval None
+*/
+/* USER CODE END Header_StartControlTask */
+void StartControlTask(void const * argument)
+{
+ /* USER CODE BEGIN StartControlTask */
+ /* Infinite loop */
+ for (;;)
+ {
+ terapy_algorithm(&ICD);
+ osDelay(100);
+ }
+ /* USER CODE END StartControlTask */
+}
+
+/* USER CODE BEGIN Header_StartLowSpeedTask */
+/**
+* @brief Function implementing the LowSpeedTask thread.
+* @param argument: Not used
+* @retval None
+*/
+/* USER CODE END Header_StartLowSpeedTask */
+void StartLowSpeedTask(void const * argument)
+{
+ /* USER CODE BEGIN StartLowSpeedTask */
+ static uint8_t buff[16];
+
+ HAL_StatusTypeDef status;
+
+ HAL_GPIO_WritePin(POT_PWR_GPIO_Port, POT_PWR_Pin, GPIO_PIN_SET);
+ osDelay(100);
+ /* Infinite loop */
+ for (;;)
+ {
+ POT_cheek(&ICD.spi_pot_set, &ICD.spi_pot_now);
+ status = HAL_UART_Receive_DMA(&huart1, (uint8_t*) buff, 7);
+ osDelay(10);
+ if (status == HAL_OK)
+ parse_command(buff, &ICD);
+ }
+ /* USER CODE END StartLowSpeedTask */
+}
+
+/* USER CODE BEGIN Header_StartButTask */
+/**
+* @brief Function implementing the ButTask thread.
+* @param argument: Not used
+* @retval None
+*/
+/* USER CODE END Header_StartButTask */
+void StartButTask(void const * argument)
+{
+ /* USER CODE BEGIN StartButTask */
+ /* Infinite loop */
+ for (;;)
+ {
+ if (HAL_GPIO_ReadPin(BUT_1_GPIO_Port, BUT_1_Pin) == GPIO_PIN_SET)
+ {
+ Control.btn_1_state = true;
+ Control.btn_1_cnt++;
+ if (Control.btn_1_cnt > BUT_CNT)
+ {
+ Control.set_mode = Sleep; //идем вверх по режимам
+ osDelay(4000);
+ lets_sleep();
+ }
+ }
+ else
+ {
+ Control.btn_1_state = false;
+ Control.btn_1_cnt = 0;
+ }
+ }
+ /* USER CODE END StartButTask */
+}
+
+/* Private application code --------------------------------------------------*/
+/* USER CODE BEGIN Application */
+
+/* USER CODE END Application */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/gpio.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/gpio.c
new file mode 100644
index 0000000..0b6cc5f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/gpio.c
@@ -0,0 +1,186 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file gpio.c
+ * @brief This file provides code for the configuration
+ * of all used GPIO pins.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "gpio.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/*----------------------------------------------------------------------------*/
+/* Configure GPIO */
+/*----------------------------------------------------------------------------*/
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+
+/** Configure pins as
+ * Analog
+ * Input
+ * Output
+ * EVENT_OUT
+ * EXTI
+ * Free pins are configured automatically as Analog (this feature is enabled through
+ * the Code Generation settings)
+*/
+void MX_GPIO_Init(void)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RV_LV_COIL_TO_GND_Pin|RV_LV_TIP_TO_GND_Pin|INA_PWR_Pin|COMP_PWR_Pin
+ |DOP_PWR_Pin|HV_DIS_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, V12_PWR_Pin|HV_LOGIC_PWR_Pin|RV_LV_DIS_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOB, RA_LV_DIS_Pin|HV_EN_RV_Pin|RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOB, RA_LV_COIL_TO_GND_Pin|RA_LV_TIP_TO_GND_Pin|CAN_LV_TO_GND_Pin|POT_CS_1_Pin
+ |POT_PWR_Pin|HV_HS_RV_Pin|HV_LS_RV_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, POT_CS_4_Pin|POT_CS_5_Pin|POT_CS_6_Pin|LV_LV_TIP_TO_GND_Pin
+ |ADXL_CS_Pin|HV_HS_CAN_Pin|HV_LS_CAN_Pin|HV_HS_SCV_Pin
+ |HV_LS_SCV_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RA_RELAY_Pin|RV_RELAY_Pin|CAN_RELAY_Pin|LV_LV_DIS_Pin
+ |HV_EN_CAN_Pin|HV_EN_SCV_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(LV_LV_SHOCK_GPIO_Port, LV_LV_SHOCK_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOA, LV_LV_COIL_TO_GND_Pin|BLE_PWRC_Pin|BLE_PWR_Pin|ADXL_PWR_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : PEPin PEPin PEPin PEPin
+ PEPin PEPin PEPin */
+ GPIO_InitStruct.Pin = RV_LV_COIL_TO_GND_Pin|RV_LV_TIP_TO_GND_Pin|INA_PWR_Pin|COMP_PWR_Pin
+ |DOP_PWR_Pin|HV_LOGIC_PWR_Pin|RV_LV_DIS_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PEPin PEPin */
+ GPIO_InitStruct.Pin = V12_PWR_Pin|HV_DIS_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PE5 PE12 */
+ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_12;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PC13 PC0 */
+ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_0;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = RA_LV_SHOCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(RA_LV_SHOCK_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PBPin PBPin PBPin PBPin
+ PBPin PBPin PBPin PBPin
+ PBPin */
+ GPIO_InitStruct.Pin = RA_LV_DIS_Pin|RA_LV_COIL_TO_GND_Pin|RA_LV_TIP_TO_GND_Pin|CAN_LV_TO_GND_Pin
+ |POT_PWR_Pin|HV_HS_RV_Pin|HV_EN_RV_Pin|HV_LS_RV_Pin
+ |RV_LV_SHOCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = POT_CS_1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(POT_CS_1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PDPin PDPin PDPin PDPin
+ PDPin PDPin */
+ GPIO_InitStruct.Pin = POT_CS_4_Pin|POT_CS_5_Pin|POT_CS_6_Pin|LV_LV_TIP_TO_GND_Pin
+ |LV_LV_DIS_Pin|ADXL_CS_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PDPin PDPin PDPin PDPin
+ PDPin PDPin PDPin PDPin
+ PDPin */
+ GPIO_InitStruct.Pin = RA_RELAY_Pin|RV_RELAY_Pin|CAN_RELAY_Pin|HV_HS_CAN_Pin
+ |HV_EN_CAN_Pin|HV_LS_CAN_Pin|HV_HS_SCV_Pin|HV_EN_SCV_Pin
+ |HV_LS_SCV_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = LV_LV_SHOCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(LV_LV_SHOCK_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : PAPin PAPin PAPin PAPin */
+ GPIO_InitStruct.Pin = LV_LV_COIL_TO_GND_Pin|BLE_PWRC_Pin|BLE_PWR_Pin|ADXL_PWR_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : PtPin */
+ GPIO_InitStruct.Pin = ADXL_INT_1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(ADXL_INT_1_GPIO_Port, &GPIO_InitStruct);
+
+}
+
+/* USER CODE BEGIN 2 */
+
+/* USER CODE END 2 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/icd.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/icd.c
new file mode 100644
index 0000000..e885d98
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/icd.c
@@ -0,0 +1,1086 @@
+#include "icd.h"
+#include "filter.h"
+#include "parse.h"
+#include "delay.h"
+#if MK_TYPE==F412
+ #include
+#endif
+
+
+icd_str ICD;
+extern adc_struct adc_str;//структура ацп
+void init_icd(icd_str * icd_str)
+{
+ icd_str->work_set_mode = Monitor;
+
+ icd_str->search_set_mode = Mode_search_BASE; //режим
+ icd_str->search_now_mode = Mode_start_UP; //режим
+ icd_str->filter_on = true;//фильтр активен
+
+ icd_str->active_ch = 2;//используемый канал
+ icd_str->sd_card = false;//использование SD карты
+ icd_str->dc_cut = true;//вычитание постоянной составляющей
+
+ //минимальный и максимальный пороги с плав. точкой и инт в десятых миливольта
+ icd_str->min_tres = MIN_TRES;
+ icd_str->max_tres = MAX_TRES;
+ // время на весь qrs rjvgktrc
+ icd_str->max_time = (ALL_TIME_MS * DATA_RATE)/1000;
+ // время слепоты при включении
+ icd_str->start_up_time = (START_UP_TIME_MS * DATA_RATE)/1000;
+ // время поиска в базовом режиме с минимальным порогом
+ icd_str->base_time = (SEARCH_BASE_TIME_MS * DATA_RATE)/1000;
+ // Время в мс которое алгоритм ищет максимум
+ icd_str->max_search_time = (SEARCH_MAX_TIME_MS * DATA_RATE)/1000;
+ // Время в мс нахождения в режиме поиска квадратов
+ icd_str->square_time = (SQUARE_TIME_MS * DATA_RATE)/1000;
+ // Время в мс нахождения в режиме поиска треугольников
+ icd_str->triangle_time = (TRIANGLE_TIME_MS * DATA_RATE)/1000;
+ // время каждой ступени в режиме треугольников
+ icd_str->triangle_step_time = (TRIANGLE_STEP_TIME_MS * DATA_RATE)/1000;
+ // Время в мс которое длится режим стимуляции низким напряжением
+ icd_str->lv_mode_time = (LV_TIME_MS * DATA_RATE)/1000;
+ // это во моногом эрзац.
+ icd_str->lv_start_time = (LV_START_TIME_MS * DATA_RATE)/1000; //во сколько начали выдавать импульс
+ icd_str->lv_stop_time = (LV_STOP_TIME_MS* DATA_RATE)/1000; //во сколько закончили выдавать импульс
+
+ // коэффициент на который умножается сигнал при переход в режим квадратов
+ icd_str->square_coef = SQUARE_COEF;
+ // коэффициент на который умножается сигнал на каждой ступени в режиме треугольников
+ icd_str->triangle_coef = TRIANGLE_COEF;
+
+ icd_str->lv_polarity = lv_bipolar;//полярность низковольтной стимуляции
+ icd_str->lv_mode = lv_mode_VVI;//режим низковольтной стимуляции
+
+ icd_str->lv_shock_time = 13;//время импульса низковольной стимуляции 1-20(0,1-2мс) одна единица 0,1мс шаг 0.1мс
+ icd_str->lv_relax_time = 14;//время стабилизации после удара низковольной стимуляции 0-20(0-20мс) одна единица 1мс шаг 1мс
+ icd_str->lv_voltage = 35;//какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+
+ //bool BURST_active;//параметр вводящий нас в режим burst посылка пачки импульсов для вызова фибрилляции
+ icd_str->BURST_cnt = 33;//сколько импульсов в одной пачке 5-50 одна единица 1 импульс шаг 1 импульс
+ icd_str->BURST_voltage =34;//какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ icd_str->BURST_period = 333;//период следования импульсов в мс 150-500мс одна единица 1мс шаг 10 мс на ползунке
+
+
+
+ // тип последнего определённого события
+ icd_str->last_QRS = Vsense;
+ // время между последним и предпоследним событием
+ icd_str->last_period = 1000;
+ icd_str->counter = 0;
+
+ icd_str->last_RR_amp = MIN_TRES; // переменная в которой храним амплитуды начала QRS
+ icd_str->last_RR_poz = 0; //переменная в котором храним положение начала QRS
+ icd_str->last_RR_poz_rel = 0; //переменная в которой храним относительное положение начала QRS
+
+ // Счётчики нужны для алгоритма терапии Михаила
+ icd_str->Vs_cnt = 0; //счётчик собственных сокращений сердца
+ icd_str->Vn_cnt = 0; //счётчик собственных сокращений которые в шуме(не детектируется пока fixme)
+ icd_str->Vp_cnt = 0; //счётчик принудительных стимуляций сердца низким напряжением(низковольтная стимуляция)
+
+ icd_str->fibr_cnt = 0; //счётчик фибриляции при обнаружении короткого RR он растёт
+ icd_str->fibr_max_tres = TERAPY_TRES; //порог счётчика фибриляций при котором начинаем терапию
+
+ icd_str->LV_on = true; // реально стимулируем низковольтно
+ icd_str->HV_on = false; // реально стимулируем низковольтно
+
+ icd_str->ecg_rv_din_treshold = 0.0; //динамический порог
+
+
+ // тут уже корзины
+ //порог периода фибриляции если период меньше, чем это число это фибриляция
+ icd_str->fibr_tres = (FIBR_PERIOD * DATA_RATE)/1000;
+ //порог периода Тахикардии 2 если период меньше, чем это число это Тахикардия 2
+ icd_str->tachy_2_tres = (TACHY_2_PERIOD * DATA_RATE)/1000;
+ //порог периода Тахикардии 1 если период меньше, чем это число это Тахикардия 1
+ icd_str->tachy_1_tres = (TACHY_1_PERIOD * DATA_RATE)/1000;
+
+ icd_str->vs_cnt_last = 0;//сбрасываемый счётчик нормальных событий
+ icd_str->fibr_cnt = 0; //счётчик фибриляции при обнаружении короткого RR он растёт
+ icd_str->tachy_2_cnt = 0; //счётчик Тахикардии 2 при обнаружении короткого RR он растёт
+ icd_str->tachy_1_cnt = 0; //счётчик Тахикардии 1 при обнаружении короткого RR он растёт
+ icd_str->norm_cnt = 0;//счётчик нормальных сокращений подряд
+
+ icd_str->vp_cnt_last = 0;//сбрасываемый счётчик нормальных событий
+
+ icd_str->terapy_set = sub_off;//заданный режим терапии
+ icd_str->terapy_now = sub_off;//текущий режим терапии
+
+ icd_str->sub_mode = sub_off;//подрежим для индикации
+
+ icd_str->hv_step_number = HV_STEP_NUM;//сколько шагов ВВ терапии?
+ icd_str->hv_step_cnt = 0;// какой сейчас шаг?
+
+ icd_str->min_energy = MIN_ENERGY;
+ icd_str->max_energy = MAX_ENERGY;
+
+ icd_str->hv_blind_time = HV_BLIND_TIME_MS;//время которое мы слепы после HV разряда
+
+ icd_str->redet_num = REDET_BUF_LEN; //какой длинны мы заполныем буффер при редетекции
+ icd_str->redet_bad = REDET_BAD_MAX; //сколько нам нужно плохих событий для запуска терапии
+
+ icd_str->standby_timer = STANDBY_TIME_MS;//сколько отдыхать после неудачного подавления фибриляции
+ icd_str->spi_pot_set = 6;
+}
+
+float my_abs(float a)
+{
+ return (a<0)? -a:a;
+}
+
+// первичный заход в режим fixme обернуть в функцию
+bool mode_start(icd_str * icd_str)
+{
+ if (icd_str->search_now_mode != icd_str->search_set_mode)
+ {
+ icd_str->search_now_mode = icd_str->search_set_mode;
+ // обнулили счётчик режима
+ icd_str->mode_cnt = 0;
+ return true;
+ }
+ return false;
+}
+
+void get_data(icd_str * icd_str,uint16_t input)
+{
+ float raw = ((float)input) * VOLT_COEF;//перевод в милливольты
+// icd_str->ecg_rv_filt = iir_50hz_2or(raw);
+// icd_str->ecg_rv_filt = iir_4060(raw);
+
+ if(icd_str->filter_on)
+ icd_str->ecg_rv_filt = iir_lp30(raw);
+ else
+ icd_str->ecg_rv_filt = raw;
+ icd_str->ecg_rv_mov_av = (1 - MOV_AV_COEF)*icd_str->ecg_rv_mov_av + MOV_AV_COEF * icd_str->ecg_rv_filt;
+ icd_str->ecg_rv_pos_sig = my_abs(icd_str->ecg_rv_filt-icd_str->ecg_rv_mov_av);
+}
+
+void get_data_max30003(icd_str * icd_str,int32_t input)
+{
+//перрвичная обработка сигналов
+ float raw = ((float)input/256.0)* VOLT_COEF_MAX30003;//перевод в милливольты
+ icd_str->ecg_rv_filt = iir_50hz_2or(raw);
+ icd_str->ecg_rv_mov_av = (1 - MOV_AV_COEF)*icd_str->ecg_rv_mov_av + MOV_AV_COEF * icd_str->ecg_rv_filt;
+ icd_str->ecg_rv_pos_sig = my_abs(icd_str->ecg_rv_filt-icd_str->ecg_rv_mov_av);
+}
+
+// проверка длительности определённого режима
+// указваем какой режим выставить
+bool check_mode_len(icd_str * icd_str,uint16_t base_time, search_mode mode_to_set)
+{
+ // Проверка превышения времени на режим
+ //if(icd_str->mode_cnt > base_time)//fixme так было раньше
+ if(icd_str->mode_cnt > base_time || icd_str->last_RR_poz_rel > icd_str->max_time)
+ {
+ icd_str->mode_cnt = 0;
+ // перешли в режим низковольтной стимуляции
+ icd_str->search_set_mode = mode_to_set;
+ if(mode_to_set == Mode_stimulation_LV)
+ {
+ icd_str->vp_cnt_last++;
+ // период чсс равен времени с прошлого события
+ icd_str->last_period = icd_str->last_RR_poz_rel;
+ // стёрли счётчик до прошлого события т.к. оно только что произошло
+ icd_str->last_RR_poz_rel = 0;
+
+ icd_str->last_QRS = Vpace;
+ // стёрли счётчик до прошлого события т.к. оно только что произошло
+ icd_str->last_RR_poz_rel = 0;
+ // инкримент счётчика Vpace событий
+ icd_str->Vp_cnt++;
+ }
+ return true;
+ }
+ else
+ return false;
+}
+
+// проверка пересечения порога
+bool check_tres(icd_str * icd_str)
+{
+ // Проверка превышения порога
+ if((icd_str->ecg_rv_pos_sig >= icd_str->ecg_rv_din_treshold) && icd_str->work_set_mode != Monitor
+ && (icd_str->lv_mode == lv_mode_VVI || icd_str->lv_mode == lv_mode_none))//&& icd_str->lv_mode == lv_mode_VVI
+ {
+ // перешли в режим поисков пиков
+ icd_str->search_set_mode = Mode_search_MAX;
+ // событие нормальное
+ icd_str->last_QRS = Vsense;
+ // тетрарная операция находим не выходит ли за границы наш экг сигнал
+ icd_str->last_RR_amp = icd_str->ecg_rv_pos_sig >= icd_str->max_tres ? icd_str->max_tres : icd_str->ecg_rv_pos_sig;
+ icd_str->ecg_rv_din_treshold = icd_str->last_RR_amp;//fixme новое борьба с неправильным динамическим порогом
+ // период чсс равен времени с прошлого события
+ icd_str->last_period = icd_str->last_RR_poz_rel;
+ // стёрли счётчик до прошлого события т.к. оно только что произошло
+ icd_str->last_RR_poz_rel = 0;
+
+ // инкримент счётчика Vsense событий
+ icd_str->Vs_cnt++;
+ icd_str->vs_cnt_last++;
+ //сейчас сокращение сердца
+ icd_str->rr_now = true;
+ // Если мы в нормальном режиме не терапии
+ if(icd_str->terapy_now == Terapy_off)
+ {
+ icd_str->filt_period = moving_avarage(icd_str->last_period);
+ if(icd_str->vs_cnt_last >= 10)
+ {
+ basket_alg(icd_str);
+ }
+ return true;
+ }
+ else if(icd_str->terapy_now == Terapy_fibr && icd_str->sub_mode == sub_redet)
+ {
+ //инкрементируем счётчик Vs
+ icd_str->redet_cnt++;
+ //если период меньше положенного
+ if(icd_str->last_period< icd_str->tachy_1_tres)
+ {
+ icd_str->redet_bad_cnt++;
+ }
+ }
+ return true;
+ }
+ else
+ return false;
+}
+//алгоритм поиска QRS комплексов
+//алгоритм поиска QRS комплексов
+void search_alg(icd_str * icd_str)
+{
+ //инкрементируем глобальный счётчик
+ icd_str->counter++;//
+ icd_str->last_RR_poz_rel++;//новое fixme
+ //сейчас не сокращение сердца
+ icd_str->rr_now = false;
+ switch (icd_str->search_set_mode)
+ {
+ case Mode_start_UP:
+ {
+
+ }
+ break;
+ case Mode_search_BASE:
+ {
+ // первичный заход в режим
+ if(mode_start(icd_str))
+ icd_str->ecg_rv_din_treshold = icd_str->min_tres;
+
+ // проверка длительности режима функцией если превышена вывалиться из функции
+ if(check_mode_len(icd_str,icd_str->base_time,Mode_stimulation_LV))
+ return;
+ // проверка пересечения порога
+ if(check_tres(icd_str))
+ return;
+ icd_str->mode_cnt++;
+ }
+ break;
+ case Mode_search_SQUARE:
+ {
+ // первичный заход в режим fixme обернуть в функцию
+ if(mode_start(icd_str))
+ icd_str->ecg_rv_din_treshold = icd_str->ecg_rv_din_treshold * icd_str->square_coef > icd_str->min_tres ?
+ icd_str->ecg_rv_din_treshold * icd_str->square_coef : icd_str->min_tres;
+ // проверка длительности режима функцией если превышена вывалиться из функции
+ if (check_mode_len(icd_str, icd_str->square_time, Mode_search_TRIANGLE))
+ return;
+ // проверка пересечения порога
+ if (check_tres(icd_str))
+ return;
+ icd_str->mode_cnt++;
+ }
+ break;
+ case Mode_search_TRIANGLE:
+ {
+ // первичный заход в режим
+ mode_start(icd_str);
+ // если время шага прошло
+ if((icd_str->mode_cnt % icd_str->triangle_step_time) == 0)
+ {
+ icd_str->ecg_rv_din_treshold = icd_str->ecg_rv_din_treshold * icd_str->triangle_coef > icd_str->min_tres ?
+ icd_str->ecg_rv_din_treshold * icd_str->triangle_coef : icd_str->min_tres;
+ }
+
+ // проверка длительности режима функцией если превышена вывалиться из функции
+ if (check_mode_len(icd_str, icd_str->triangle_time, Mode_search_BASE))
+ return;
+ // проверка пересечения порога
+ if (check_tres(icd_str))
+ return;
+ icd_str->mode_cnt++;
+ }
+ break;
+ case Mode_search_MAX://FIXME криво считаем!!!!!!!!!!!!!!!
+ {
+ // первичный заход в режим
+ if(mode_start(icd_str))
+ {
+ }
+ //если сигнал выше найденного максимума
+ if(icd_str->ecg_rv_pos_sig > icd_str->last_RR_amp)
+ {
+ //выше верхнего порога//fixme тут косяк
+ //if(icd_str->ecg_rv_pos_sig > icd_str->ecg_rv_din_treshold) fixme вроде тут косяк был
+ if(icd_str->ecg_rv_pos_sig > icd_str->max_tres)
+ {
+ icd_str->ecg_rv_din_treshold = icd_str->max_tres;
+ icd_str->last_RR_amp = icd_str->max_tres;
+ }
+ //в норм границах
+ else
+ {
+ icd_str->ecg_rv_din_treshold = icd_str->ecg_rv_pos_sig;
+ icd_str->last_RR_amp = icd_str->ecg_rv_pos_sig;
+ }
+ }
+
+ if(icd_str->mode_cnt > icd_str->max_search_time)
+ {
+ // сбросили счётчик
+ icd_str->mode_cnt = 0;
+ // перешли в режим поиска квадратный
+ icd_str->search_set_mode = Mode_search_SQUARE;
+ }
+ icd_str->mode_cnt++;
+ }
+ break;
+ case Mode_stimulation_LV:
+ {
+ // первичный заход в режим
+ if(mode_start(icd_str))
+ {
+ //сбросили параметр так как не было события сердца
+ icd_str->norm_cnt = 0;
+ //сейчас сокращение сердца
+ icd_str->rr_now = true;
+ if(icd_str->LV_on && icd_str->lv_mode != lv_mode_none)//тут должны производить низковольтную стимуляцию
+ {
+ icd_str->lv_start = true;//надо начинать стимуляцию
+ }
+ }
+
+ // второе условие добавил для burst режима
+ if(icd_str->mode_cnt > icd_str->lv_mode_time && icd_str->lv_start == false)
+ {
+ // сбросили счётчик
+ icd_str->mode_cnt = 0;//по идее не нужно всё равно сбросим при первичном заходе
+ // перешли в режим поиска квадратный
+ icd_str->search_set_mode = Mode_search_SQUARE;
+ }
+ icd_str->mode_cnt++;
+ }
+ break;
+ case Mode_stimulation_HV:
+ {
+ if(mode_start(icd_str))
+ {
+ //сбросили параметр так как не было события сердца
+ icd_str->norm_cnt = 0;
+ }
+ icd_str->ecg_rv_pos_sig = 0.0;
+ }
+ break;
+ }
+}
+
+uint16_t moving_avarage(uint16_t data)
+{
+ static uint16_t buf[10];
+ static uint8_t b_pointer = 0;
+
+ buf[b_pointer] = data;
+ b_pointer++;
+ if(b_pointer >= 10)
+ {
+ b_pointer = 0;
+ }
+ uint16_t sum = 0;
+ for(int i =0; i<10; i++)
+ sum += buf[i];
+ return sum/10;
+}
+
+// Алгоритм корзин по идее должен вызываться при обнаружении новго события
+// Едиственный смысл в нём это переход в другой режим не простого поиска а стимуляции
+void basket_alg(icd_str * icd_str)
+{
+ if(icd_str->filt_period < icd_str->fibr_tres)
+ {
+ icd_str->fibr_cnt++;
+ icd_str->norm_cnt = 0;
+ if(icd_str->fibr_cnt > icd_str->fibr_max_tres)
+ {
+ //fixme по идее тоже обнуляем т.к. уже в жопном режиме
+ icd_str->fibr_cnt = 0;
+ icd_str->tachy_2_cnt = 0;
+ icd_str->tachy_1_cnt = 0;
+ // перешли в режим терапии
+ icd_str->terapy_set = Terapy_fibr;
+ }
+ }
+ else if((icd_str->filt_period >= icd_str->fibr_tres)&&(icd_str->last_period < icd_str->tachy_2_tres))
+ {
+ icd_str->tachy_2_cnt++;
+ icd_str->norm_cnt = 0;
+ }
+ else if((icd_str->filt_period >= icd_str->tachy_2_tres)&&(icd_str->last_period < icd_str->tachy_1_tres))
+ {
+ icd_str->tachy_1_cnt++;
+ icd_str->norm_cnt = 0;
+ }
+ else
+ {
+ icd_str->norm_cnt++;
+ //5 нормальных сокращений подряд можно сбросить корзины
+ if(icd_str->norm_cnt >= 5)
+ {
+ icd_str->fibr_cnt = 0;
+ icd_str->tachy_2_cnt = 0;
+ icd_str->tachy_1_cnt = 0;
+ }
+ }
+}
+
+
+bool terapy_start(icd_str * icd_str)
+{
+ if (icd_str->terapy_now != icd_str->terapy_set)
+ {
+ icd_str->terapy_now = icd_str->terapy_set;
+ return true;
+ }
+ return false;
+}
+
+
+void hv_pwm(bool state)
+{
+ if (state) //Если хотим генерировать
+ {
+ #if (MK_TYPE == F412)
+ TIM1->CCR4 = 60;
+ //TIM1->CCR4 = 60;
+ // TIM3->CCR1 = 150;так было в начале
+ // TIM3->CCR1 = 675;
+ #endif
+ }
+ else
+ {
+ #if (MK_TYPE == F412)
+ TIM1->CCR4 = 0;
+ #endif
+ }
+}
+
+void hv_sound(uint32_t presc)
+{
+ if (presc == 0) //без звука
+ {
+ TIM9->PSC = 100;
+ TIM9->CCR2 = 0;
+ }
+ else //задаём частоту
+ {
+ TIM9->PSC = presc;
+ TIM9->CCR2 = 100;
+ }
+
+}
+
+
+//функция заряда Конденсатора
+void hv_charge(icd_str *icd_str)
+{
+ //отключение высоковольтной части
+ hv_ll_control(z_state, z_state, z_state);
+ //подали питание на высоковольтную часть
+ hv_power(true);
+ //выставили подрежим
+ icd_str->sub_mode = sub_cap_ch;
+ //плавный разряд выключен
+ hv_discharge(false);
+ //подали питание на плату только если не в режиме мониторинга
+ hv_sound(CHARDE_TONE); //включили звук заряда конденсатора
+ if (icd_str->work_set_mode == Monitor)
+ {
+
+ }
+ else
+ {
+ if (DANGER_HV)
+ {
+ hv_pwm(true); //включили шим для заряда конденсатора
+ }
+ else//эмуляция
+ {
+ }
+ }
+ //заряд через транзистор
+ //включили шим 32кГц выключили любой разряд
+ //энергия заряда пропорциональна времени
+ //40 джоулей в нашем случае 400 т.к у нас десятые доли джоулей можно задавать
+ //набирает примерно за 15 сек 40 Дж при 560мкФ соответственно 2.667 дж в сек округлим до 2.7 потом поправить
+ //т.к. энергия в десятых джоулях 40дж = 400 т=(400/10)*(1000/2.667) и если упростить, нам просто нужно умножать на 37
+ //время для заряда до 40 дж = (E*1000/k)
+ // 5дж наберутся за 1850 мс, что норм.
+//если плата с новым мк
+#if (CAP_VOLT_CTRL)
+ {
+ int i = 0;
+ float voltage = sqrt(icd_str->now_energy * 0.2 / CAPACITY);
+ uint16_t voltage_i = (uint16_t) (voltage * 10.2);//умножаем на 10.2 а не на 10 т.к. напряжение после выключения заряда слегка просаживается.
+ while (i < 80)
+ {
+// if (adc_str.hv_volt > 3500)
+// {
+// TIM1->CCR4 = 50;
+// }
+// else if(adc_str.hv_volt > 5000)
+// {
+// TIM1->ARR = 300;
+// }
+ i++;
+ osDelay(icd_str->now_energy);
+ if (adc_str.hv_volt > voltage_i)
+ break;
+ }
+ }
+#else
+ osDelay(icd_str->now_energy*40);
+ #endif
+ //отключили шим
+ hv_pwm(false);
+ hv_sound(READY_TONE); //включили звук готовности к разряду
+}
+
+
+//функция резкого разряда
+void hv_shock(icd_str * icd_str)
+{
+ icd_str->sub_mode = sub_shock;
+ icd_str->search_set_mode = Mode_stimulation_HV;
+
+ hv_sound(SHOCK_TONE); //включили звук разряда
+ //включили режим слепоты
+ osDelay(10);
+ //подали питание на плату только если не в режиме мониторинга
+ if(icd_str->work_set_mode != Monitor)//fixme
+ {
+ ll_bi_dis();
+ }
+ else
+ {
+
+ }
+ // ничего не анализируем сколько-то времени
+ osDelay(icd_str->hv_blind_time);
+ //отключили режим слепоты
+ icd_str->search_set_mode = Mode_search_SQUARE;
+ hv_sound(NO_TONE); //включили звук разряда
+ hv_power(false);
+}
+
+//быстрое определение нужно ли бить током
+bool quick_analyse(icd_str * icd_str)
+{
+ osDelay(icd_str->hv_blind_time);
+ //сбросили счётчики редетекции
+ //icd_str->Vs_cnt = 0;
+ icd_str->redet_cnt = 0;
+ icd_str->redet_bad_cnt = 0;
+
+ icd_str->sub_mode = sub_redet;
+ icd_str->vs_cnt_last = 0;//сбросили количество нормальных событий перед анализом
+ icd_str->vp_cnt_last = 0;//сбросили количество НЕнормальных событий перед анализом
+
+ //если у нас принудителная стимуляция ждём чуть-чуть и фигачим
+ if(icd_str->work_set_mode == Force)
+ {
+ osDelay(FORCE_DELAY);
+ return true;
+ }
+
+ //очистка всех событий из памяти
+// ожидание с периодом 10мс нет ли достаточного кол-ва событий
+ // Тут по идее можно добавить счётчик времени вдруг Vs нет.
+// fixme раньше учитывали только Vs события
+ while((icd_str->vs_cnt_last + icd_str->vp_cnt_last) < icd_str->redet_num)
+ {
+ //do nothing
+ osDelay(10);
+ }
+
+ //проверка не превысили ли мы порог плохих сокращений
+ if(icd_str->redet_bad_cnt > icd_str->redet_bad)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+void fibr_terapy(icd_str * icd_str)
+{
+ for(icd_str->hv_step_cnt = 0; icd_str->hv_step_cnt < icd_str->hv_step_number; )
+ {
+ icd_str->hv_step_cnt++;
+ //расчёт энергии шага
+ //icd_str->hv_step_energy = (icd_str->max_energy-icd_str->min_energy)/(icd_str->hv_step_number-1);
+ icd_str->now_energy = icd_str->max_energy;
+ //активировать терапию низковольтную если задана (у нас такого пока нет) fixme
+
+ //затем производим зарядку конденсатора
+ hv_charge(icd_str);
+ osDelay(1000);//fixme для того чтобы было видно кончное напряжение.
+ //ждём пока наберётся Х событий для анализа
+ if(!quick_analyse(icd_str))//если всё ОК
+ {
+ hv_discharge(true);
+ //сброс параметров и переход в режим
+ icd_str->terapy_set = Terapy_off;
+ //выходим нафиг из цикла
+ icd_str->sub_mode = sub_off;
+ icd_str->now_energy = 0;
+ icd_str->hv_step_cnt = 0;
+ hv_power(false);
+ hv_sound(NO_TONE); //включили звук разряда
+ return;
+ }
+ else
+ {
+ //должны ещё вырубить анализ с АЦП и пихать в него среднее чтоб скользящее нахер не улетело
+ hv_shock(icd_str);
+ //опять проверяем на нормальность цикла если всё ок возвращаемся в норм режим
+ if(!quick_analyse(icd_str))//если всё ОК
+ {
+ hv_discharge(true);
+ //сброс параметров и переход в режим
+ icd_str->terapy_set = Terapy_off;
+ //выходим нафиг из цикла
+ icd_str->sub_mode = sub_off;
+ icd_str->now_energy = 0;
+ icd_str->hv_step_cnt = 0;
+ hv_power(false);
+ hv_sound(NO_TONE); //включили звук разряда
+ return;
+ }
+ }
+ }
+ //если прошлись по всем шагам а ритм всё равно говно
+ if(icd_str->hv_step_cnt >= icd_str->hv_step_number)
+ {
+ icd_str->sub_mode = sub_stim_fail;
+ icd_str->now_energy = 0;
+ icd_str->hv_step_cnt = 0;
+ hv_discharge(icd_str);
+ if(icd_str->work_set_mode == Force)
+ {
+ icd_str->work_set_mode = Monitor;//перешли в режим Мониторинга
+ }
+ else
+ {
+ osDelay(icd_str->standby_timer);//сброс всего и долгая зажержка
+ }
+ //сброс параметров и переход в режим
+ icd_str->terapy_set = Terapy_off;
+ icd_str->sub_mode = sub_off;
+ icd_str->now_energy = 0;
+ icd_str->hv_step_cnt = 0;
+ hv_power(false);
+ }
+
+}
+
+void terapy_algorithm(icd_str * icd_str)
+{
+ //если выбран режим принудительный//fixme
+ if(icd_str->work_set_mode == Force)
+ {
+ icd_str->terapy_set = Terapy_fibr;
+ }
+ switch (icd_str->terapy_set)
+ {
+ case Terapy_off:
+ {
+ // первичный заход в режим
+ if(terapy_start(icd_str))
+ {
+ icd_str->hv_step_cnt = 0;
+ //подготовка к нормальному режиму разрядка Конденсатора на всякий случай
+ // настройка режима нормамльного поиска пиков
+ }
+ }
+ break;
+ // самое жесткое лечение
+ case Terapy_fibr:
+ {
+ // первичный заход в режим
+ if(terapy_start(icd_str))
+ {
+ //подготовка к терапии
+ }
+ fibr_terapy(icd_str);
+ }
+ break;
+
+ case Terapy_tachy_2:
+ {
+ // первичный заход в режим
+ if(terapy_start(icd_str))
+ {
+ //пока не активен
+ }
+ }
+ break;
+
+ case Terapy_tachy_1:
+ {
+ // первичный заход в режим
+ if(terapy_start(icd_str))
+ {
+ //пока не активен
+ }
+ }
+ break;
+ }
+}
+
+//единое управление реле по идее вызываем один раз когда собираемся ударить не важно тестово или по настоящему
+void relay_all_control(bool RV_safe,bool RA_safe,bool CAN_safe)
+{
+ relay_rv_control(RV_safe);
+ relay_ra_control(RA_safe);
+ relay_can_control(CAN_safe);
+}
+
+void relay_ra_control(bool RA_safe)
+{
+ if(RA_safe)
+ HAL_GPIO_WritePin(RA_RELAY_GPIO_Port, RA_RELAY_Pin, GPIO_PIN_SET);
+ else
+ HAL_GPIO_WritePin(RA_RELAY_GPIO_Port, RA_RELAY_Pin, GPIO_PIN_RESET);
+}
+
+
+void relay_rv_control(bool RV_safe)
+{
+ if(RV_safe)
+ HAL_GPIO_WritePin(RV_RELAY_GPIO_Port, RV_RELAY_Pin, GPIO_PIN_SET);
+ else
+ HAL_GPIO_WritePin(RV_RELAY_GPIO_Port, RV_RELAY_Pin, GPIO_PIN_RESET);
+}
+
+void relay_can_control(bool CAN_safe)
+{
+ if(CAN_safe)
+ HAL_GPIO_WritePin(CAN_RELAY_GPIO_Port, CAN_RELAY_Pin, GPIO_PIN_SET);
+ else
+ HAL_GPIO_WritePin(CAN_RELAY_GPIO_Port, CAN_RELAY_Pin, GPIO_PIN_RESET);
+}
+
+//единое управление всей высоковольтной частью
+void hv_ll_control(half_br state_RV, half_br state_SCV, half_br state_CAN)
+{
+ hv_ll_rv_control(state_RV);
+ hv_ll_scv_control(state_SCV);
+ hv_ll_can_control(state_CAN);
+}
+
+//питание высоковольтной части источник на 12В и 3.3В
+void hv_power(bool state)
+{
+ if(state)
+ {
+ HAL_GPIO_WritePin(V12_PWR_GPIO_Port, V12_PWR_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_LOGIC_PWR_GPIO_Port, HV_LOGIC_PWR_Pin, GPIO_PIN_RESET);
+ }
+ else
+ {
+ HAL_GPIO_WritePin(V12_PWR_GPIO_Port, V12_PWR_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(HV_LOGIC_PWR_GPIO_Port, HV_LOGIC_PWR_Pin, GPIO_PIN_SET);
+ }
+}
+
+//катушка RV
+void hv_ll_rv_control(half_br state)
+{
+ //Замкнут нижний ключ
+ if(state == low)
+ {
+ HAL_GPIO_WritePin(HV_LS_RV_GPIO_Port, HV_LS_RV_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(HV_HS_RV_GPIO_Port, HV_HS_RV_Pin, GPIO_PIN_RESET);
+ }
+ //Замкнут верхний ключ
+ else if (state == high)
+ {
+ HAL_GPIO_WritePin(HV_LS_RV_GPIO_Port, HV_LS_RV_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_RV_GPIO_Port, HV_HS_RV_Pin, GPIO_PIN_SET);
+ }
+ // Разомкнуты оба ключа
+ else
+ {
+ HAL_GPIO_WritePin(HV_LS_RV_GPIO_Port, HV_LS_RV_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_RV_GPIO_Port, HV_HS_RV_Pin, GPIO_PIN_RESET);
+ }
+}
+
+//катушка SCV
+void hv_ll_scv_control(half_br state)
+{
+ //Замкнут нижний ключ
+ if(state == low)
+ {
+ HAL_GPIO_WritePin(HV_LS_SCV_GPIO_Port, HV_LS_SCV_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(HV_HS_SCV_GPIO_Port, HV_HS_SCV_Pin, GPIO_PIN_RESET);
+ }
+ //Замкнут верхний ключ
+ else if (state == high)
+ {
+ HAL_GPIO_WritePin(HV_LS_SCV_GPIO_Port, HV_LS_SCV_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_SCV_GPIO_Port, HV_HS_SCV_Pin, GPIO_PIN_SET);
+ }
+ // Разомкнуты оба ключа
+ else
+ {
+ HAL_GPIO_WritePin(HV_LS_SCV_GPIO_Port, HV_LS_SCV_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_SCV_GPIO_Port, HV_HS_SCV_Pin, GPIO_PIN_RESET);
+ }
+}
+
+//Корпус
+void hv_ll_can_control(half_br state)
+{
+ //Замкнут нижний ключ
+ if(state == low)
+ {
+ HAL_GPIO_WritePin(HV_LS_CAN_GPIO_Port, HV_LS_CAN_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(HV_HS_CAN_GPIO_Port, HV_HS_CAN_Pin, GPIO_PIN_RESET);
+ }
+ //Замкнут верхний ключ
+ else if (state == high)
+ {
+ HAL_GPIO_WritePin(HV_LS_CAN_GPIO_Port, HV_LS_CAN_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_CAN_GPIO_Port, HV_HS_CAN_Pin, GPIO_PIN_SET);
+ }
+ // Разомкнуты оба ключа
+ else
+ {
+ HAL_GPIO_WritePin(HV_LS_CAN_GPIO_Port, HV_LS_CAN_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(HV_HS_CAN_GPIO_Port, HV_HS_CAN_Pin, GPIO_PIN_RESET);
+ }
+}
+
+
+//функция плавного разряда Конденсатора
+void hv_discharge(bool state)
+{
+ if (state) //Если хотим генерировать
+ {
+ //плавный разряд включен
+ HAL_GPIO_WritePin(HV_DIS_GPIO_Port, HV_DIS_Pin, GPIO_PIN_SET);
+ }
+ else
+ {
+ //плавный разряд включен
+ HAL_GPIO_WritePin(HV_DIS_GPIO_Port, HV_DIS_Pin, GPIO_PIN_RESET);
+ }
+}
+
+
+
+////разряд биполярный
+void ll_bi_dis(void)
+{
+ //защитили низковольтную часть
+ relay_all_control(true,true,true);
+ hv_en_control(false, false, false);
+ //чтобы не пробило перевели в разамкнутое состояние все полумосты
+ hv_ll_control(z_state, z_state, z_state);
+ osDelay(15);
+ hv_power(true);
+ osDelay(5);
+ hv_en_control(true, true, false);
+ osDelay(2);
+ //Сторона 1 +
+ hv_ll_control(low, high, z_state);
+ osDelay(7);
+ //чтобы не пробило перевели в разамкнутое состояние все полумосты
+ hv_ll_control(z_state, z_state, z_state);
+ osDelay(2);
+ //Сторона 2 +
+ hv_ll_control(high, low, z_state);
+ osDelay(4);
+ hv_en_control(false, false, false);
+ hv_ll_control(z_state, z_state, z_state);
+ osDelay(20);
+ relay_all_control(false,false,false);
+ osDelay(2);//
+}
+
+
+void ra_lv_control(icd_str * icd_str,lv_sub_mode mode)
+{
+ switch (mode)
+ {
+ //Свободный без всякого вмешательства tip и coil свободны разряда\заряда не происходит
+ case lv_sub_free:
+ {
+ HAL_GPIO_WritePin(RA_LV_TIP_TO_GND_GPIO_Port, RA_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_COIL_TO_GND_GPIO_Port, RA_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_DIS_GPIO_Port, RA_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ //Заряд без всякого вмешательства tip и coil идёт заряд
+ case lv_sub_charge:
+ {
+ HAL_GPIO_WritePin(RA_LV_TIP_TO_GND_GPIO_Port, RA_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_COIL_TO_GND_GPIO_Port, RA_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_DIS_GPIO_Port, RA_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+
+ TIM4->CCR1 = 200;
+ TIM4->CCR2 = 200;
+ TIM4->CCR3 = 200;
+ osDelay(2);
+ TIM4->CCR1 = 0;
+ TIM4->CCR2 = 0;
+ TIM4->CCR3 = 0;
+ }
+ break;
+ //Разряд coil на землю притягиваем tip к конденсатору заряда нет
+ case lv_sub_shock:
+ {
+ HAL_GPIO_WritePin(RA_LV_TIP_TO_GND_GPIO_Port, RA_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_COIL_TO_GND_GPIO_Port, RA_LV_COIL_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_DIS_GPIO_Port, RA_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_RESET);
+ osDelay(1);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ //Релаксация tip и coil притянуты к земле
+ case lv_sub_relax:
+ {
+ HAL_GPIO_WritePin(RA_LV_TIP_TO_GND_GPIO_Port, RA_LV_TIP_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_COIL_TO_GND_GPIO_Port, RA_LV_COIL_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_DIS_GPIO_Port, RA_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+ osDelay(20);
+ }
+ break;
+ //Разряд без всякого вмешательства tip и coil свободны идёт разряд(необязательный режим)
+ case lv_sub_discharge:
+ {
+ HAL_GPIO_WritePin(RA_LV_TIP_TO_GND_GPIO_Port, RA_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_COIL_TO_GND_GPIO_Port, RA_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_DIS_GPIO_Port, RA_LV_DIS_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RA_LV_SHOCK_GPIO_Port, RA_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ }
+}
+
+void rv_lv_control(icd_str * icd_str,lv_sub_mode mode)
+{
+ switch (mode)
+ {
+ //Свободный без всякого вмешательства tip и coil свободны разряда\заряда не происходит
+ case lv_sub_free:
+ {
+ HAL_GPIO_WritePin(RV_LV_TIP_TO_GND_GPIO_Port, RV_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_COIL_TO_GND_GPIO_Port, RV_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_DIS_GPIO_Port, RV_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ //Заряд без всякого вмешательства tip и coil идёт заряд
+ case lv_sub_charge:
+ {
+ HAL_GPIO_WritePin(RV_LV_TIP_TO_GND_GPIO_Port, RV_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_COIL_TO_GND_GPIO_Port, RV_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_DIS_GPIO_Port, RV_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+ osDelay(2);
+ TIM2->CCR2 = 500;
+ TIM2->CCR3 = 500;
+ TIM2->CCR4 = 500;
+ uint32_t charge_time = (uint32_t) (icd_str->lv_voltage);
+ osDelay(charge_time/10);
+ TIM2->CCR2 = 0;
+ TIM2->CCR3 = 0;
+ TIM2->CCR4 = 0;
+ }
+ break;
+ //Разряд coil на землю притягиваем tip к конденсатору заряда нет
+ case lv_sub_shock:
+ {
+ HAL_GPIO_WritePin(RV_LV_TIP_TO_GND_GPIO_Port, RV_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_COIL_TO_GND_GPIO_Port, RV_LV_COIL_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_DIS_GPIO_Port, RV_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_RESET);
+
+ uint32_t shock_time = (uint32_t) (icd_str->lv_shock_time);
+ taskENTER_CRITICAL();
+ delay_us((shock_time*125)/10);
+ taskEXIT_CRITICAL();
+// osDelay(1);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ //Релаксация tip и coil притянуты к земле
+ case lv_sub_relax:
+ {
+ HAL_GPIO_WritePin(RV_LV_TIP_TO_GND_GPIO_Port, RV_LV_TIP_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_COIL_TO_GND_GPIO_Port, RV_LV_COIL_TO_GND_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_DIS_GPIO_Port, RV_LV_DIS_Pin, GPIO_PIN_SET);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+ osDelay(20);
+ }
+ break;
+ //Разряд без всякого вмешательства tip и coil свободны идёт разряд(необязательный режим)
+ case lv_sub_discharge:
+ {
+ HAL_GPIO_WritePin(RV_LV_TIP_TO_GND_GPIO_Port, RV_LV_TIP_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_COIL_TO_GND_GPIO_Port, RV_LV_COIL_TO_GND_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_DIS_GPIO_Port, RV_LV_DIS_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(RV_LV_SHOCK_GPIO_Port, RV_LV_SHOCK_Pin, GPIO_PIN_SET);
+ }
+ break;
+ }
+}
+
+//единое управление enable пинами
+void hv_en_control(bool en_RV, bool en_SCV, bool en_CAN)
+{
+ hv_en_rv(en_RV);
+ hv_en_scv(en_SCV);
+ hv_en_can(en_CAN);
+}
+
+
+void hv_en_rv(bool state)
+{
+ if(state)
+ HAL_GPIO_WritePin(HV_EN_RV_GPIO_Port, HV_EN_RV_Pin, GPIO_PIN_RESET);
+ else
+ HAL_GPIO_WritePin(HV_EN_RV_GPIO_Port, HV_EN_RV_Pin, GPIO_PIN_SET);
+}
+
+void hv_en_scv(bool state)
+{
+ if(state)
+ HAL_GPIO_WritePin(HV_EN_SCV_GPIO_Port, HV_EN_SCV_Pin, GPIO_PIN_RESET);
+ else
+ HAL_GPIO_WritePin(HV_EN_SCV_GPIO_Port, HV_EN_SCV_Pin, GPIO_PIN_SET);
+}
+
+void hv_en_can(bool state)
+{
+ if(state)
+ HAL_GPIO_WritePin(HV_EN_CAN_GPIO_Port, HV_EN_CAN_Pin, GPIO_PIN_RESET);
+ else
+ HAL_GPIO_WritePin(HV_EN_CAN_GPIO_Port, HV_EN_CAN_Pin, GPIO_PIN_SET);
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/main.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/main.c
new file mode 100644
index 0000000..77ca9b0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/main.c
@@ -0,0 +1,271 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "cmsis_os.h"
+#include "adc.h"
+#include "dma.h"
+#include "spi.h"
+#include "tim.h"
+#include "usart.h"
+#include "gpio.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "control.h"
+#include "icd.h"
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN PTD */
+extern ctrl_struct Control; //FLASH (rx)
+/* USER CODE END PTD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+void MX_FREERTOS_Init(void);
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/**
+ * @brief The application entry point.
+ * @retval int
+ */
+int main(void)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+ control_init();
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_DMA_Init();
+ MX_SPI2_Init();
+ MX_SPI3_Init();
+ MX_TIM3_Init();
+ MX_TIM4_Init();
+ MX_USART1_UART_Init();
+ MX_ADC1_Init();
+ MX_TIM1_Init();
+ MX_TIM2_Init();
+ MX_TIM9_Init();
+ MX_TIM14_Init();
+ MX_TIM6_Init();
+ /* USER CODE BEGIN 2 */
+ hv_pwm(false);
+ hv_power(false);
+ hv_ll_control(z_state, z_state, z_state);
+ HAL_Delay(20);
+ relay_all_control(false, false, false);
+ //чтобы не пробило перевели в разамкнутое состояние все полумосты
+
+ ble_control(&Control);
+ HAL_TIM_Base_Start_IT(&htim6);// Таймер съёма данных
+ // высокое напряжение таймер
+ HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
+ // светодиод
+ HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
+ HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
+ HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
+
+ // RV таймер накачки
+ HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
+ HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
+ HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);
+
+ // RA таймер накачки
+ HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
+ HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_2);
+ HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
+
+ // LV таймер накачки
+ HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
+ HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
+ HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
+
+ // Таймер Звука
+ HAL_TIM_PWM_Start(&htim9, TIM_CHANNEL_2);
+// fixme добавить ещё таймеров
+
+ //Включили питание АЦП
+ HAL_GPIO_WritePin(INA_PWR_GPIO_Port, INA_PWR_Pin, SET);
+ HAL_GPIO_WritePin(DOP_PWR_GPIO_Port, DOP_PWR_Pin, SET);
+ HAL_GPIO_WritePin(COMP_PWR_GPIO_Port, COMP_PWR_Pin, SET);
+ /* USER CODE END 2 */
+
+ /* Call init function for freertos objects (in cmsis_os2.c) */
+ MX_FREERTOS_Init();
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* USER CODE END 3 */
+}
+
+/**
+ * @brief System Clock Configuration
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+
+ /** Configure the main internal regulator output voltage
+ */
+ __HAL_RCC_PWR_CLK_ENABLE();
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+
+ /** Initializes the RCC Oscillators according to the specified parameters
+ * in the RCC_OscInitTypeDef structure.
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 8;
+ RCC_OscInitStruct.PLL.PLLN = 192;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8;
+ RCC_OscInitStruct.PLL.PLLQ = 2;
+ RCC_OscInitStruct.PLL.PLLR = 2;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Initializes the CPU, AHB and APB buses clocks
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM12 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM12) {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler_Debug */
+ /* User can add his own implementation to report the HAL error return state */
+ __disable_irq();
+ while (1)
+ {
+ }
+ /* USER CODE END Error_Handler_Debug */
+}
+
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief Reports the name of the source file and the source line number
+ * where the assert_param error has occurred.
+ * @param file: pointer to the source file name
+ * @param line: assert_param error line source number
+ * @retval None
+ */
+void assert_failed(uint8_t *file, uint32_t line)
+{
+ /* USER CODE BEGIN 6 */
+ /* User can add his own implementation to report the file name and line number,
+ ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
+ /* USER CODE END 6 */
+}
+#endif /* USE_FULL_ASSERT */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/parse.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/parse.c
new file mode 100644
index 0000000..afbe89a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/parse.c
@@ -0,0 +1,597 @@
+#include "parse.h"
+
+float unpackFloat(const void *buf)
+{
+ const unsigned char *b = (const unsigned char *)buf;
+ uint32_t temp = 0;
+ temp = ((b[0] << 24) |
+ (b[1] << 16) |
+ (b[2] << 8) |
+ b[3]);
+ return *((float *) &temp);
+}
+
+bool check_float(float data_in, float data_min, float data_max)
+{
+ if((data_in >= data_min) && (data_in <= data_max))
+ {
+ return true;
+ }
+ return false;
+}
+
+uint16_t unpackUint16(const void *buf)
+{
+ const unsigned char *b = (const unsigned char *)buf;
+ uint16_t temp = 0;
+ temp = ((b[2] << 8) | b[3]);
+ return *((uint16_t *) &temp);
+}
+
+bool check_uint16(uint16_t data_in, uint16_t data_min, uint16_t data_max)
+{
+ if((data_in >= data_min) && (data_in <= data_max))
+ {
+ return true;
+ }
+ return false;
+}
+
+uint8_t unpackUint8(const void *buf)
+{
+ const unsigned char *b = (const unsigned char *)buf;
+ uint8_t temp = 0;
+ temp = b[3];
+ return *((uint8_t *) &temp);
+}
+
+bool check_uint8(uint8_t data_in, uint8_t data_min, uint8_t data_max)
+{
+ if((data_in >= data_min) && (data_in <= data_max))
+ {
+ return true;
+ }
+ return false;
+}
+
+uint32_t unpackUint32(const void *buf)
+{
+ const unsigned char *b = (const unsigned char *)buf;
+ uint32_t temp = 0;
+ temp = ((b[0] << 24) |
+ (b[1] << 16) |
+ (b[2] << 8) |
+ b[3]);
+ return *((uint32_t *) &temp);
+}
+
+bool check_uint32(uint32_t data_in, uint32_t data_min, uint32_t data_max)
+{
+ if((data_in >= data_min) && (data_in <= data_max))
+ {
+ return true;
+ }
+ return false;
+}
+
+void parse_command(uint8_t* buf, icd_str * icd_str)
+{
+ float fdata = -1.0;
+ if ((buf[0] == 0x55) && (buf[6] == 0x77))
+ {
+ switch (buf[1])
+ {
+ //float min_tres
+ case 0x01:
+ {
+ fdata = unpackFloat(&buf[2]);
+ if (check_float(fdata, 0.1, 10.0)) //fixme сделал большую вариабельность
+ {
+ if (fdata < icd_str->max_tres)
+ // проверили что меньше максимального порога
+ icd_str->min_tres = fdata;
+ }
+ }
+ break;
+ //float max_tres
+ case 0x02:
+ {
+ fdata = unpackFloat(&buf[2]);
+ if (check_float(fdata, 1.5, 20.0)) //fixme сделал большую вариабельность
+ {
+ if (fdata > icd_str->min_tres)
+ // проверили что больше минимального порога
+ icd_str->max_tres = fdata;
+ }
+ }
+ break;
+ //float square_coef
+ case 0x03:
+ {
+ fdata = unpackFloat(&buf[2]);
+ if (check_float(fdata, 0.25, 0.75))
+ {
+ icd_str->square_coef = fdata;
+ }
+ }
+ break;
+ //float triangle_coef
+ case 0x04:
+ {
+ fdata = unpackFloat(&buf[2]);
+ // min max triangle coef???? const 0.85
+ if (check_float(fdata, 0.8, 0.9))
+ {
+ icd_str->triangle_coef = fdata;
+ }
+
+ }
+ break;
+ //start_up_time
+ case 0x05:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 2))
+ {
+ icd_str->work_set_mode = idata;
+ //fixme тут нужно написать сброс всего и вся
+ if (idata == Monitor)
+ {
+ icd_str->fibr_cnt = 0;
+ icd_str->tachy_2_cnt = 0;
+ icd_str->tachy_1_cnt = 0;
+ icd_str->fibr_cnt = 0;
+ }
+ }
+ }
+ break;
+ //base_time
+ case 0x06:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ // min max???? const 300
+ if (check_uint16(idata, 100, 400))
+ {
+ icd_str->base_time = idata / 5;
+ }
+ }
+ break;
+ //square_time
+ case 0x07:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ // 350
+ if (check_uint16(idata, 300, 400))
+ {
+ icd_str->square_time = idata / 5;
+ }
+ }
+ break;
+ //triangle_time
+ case 0x08:
+ {
+// uint16_t idata = unpackUint16(&buf[2]);
+// // 300
+// if(check_uint16(idata, 200, 400))
+// {
+// icd_str->triangle_time = idata;
+// }
+ }
+ break;
+ //triangle_step_time сделаю тут максимальное время на цикл лучше
+ case 0x09:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, 500, 2000)) //границы берём из графического интерфейса лучше переделатьь в дефайны
+ {
+ icd_str->max_time = idata / 5;
+ }
+// uint16_t idata = unpackUint16(&buf[2]);
+// // 50
+// if(check_uint16(idata, 40, 60))
+// {
+// icd_str->triangle_step_time = idata;
+// }
+ }
+ break;
+ //lv_mode_time
+ case 0x0A:
+ {
+// uint16_t idata = unpackUint16(&buf[2]);
+// // ????
+// if(check_uint16(idata, 40, 60))
+// {
+// icd_str->lv_mode_time = idata;
+// }
+
+ }
+ break;
+ //lv_start_time
+ case 0x0B:
+ {
+// uint16_t idata = unpackUint16(&buf[2]);
+// icd_str->lv_start_time = idata;
+//
+
+ }
+ break;
+ //lv_stop_time
+ case 0x0C:
+ {
+// uint16_t idata = unpackUint16(&buf[2]);
+// icd_str->lv_stop_time = idata;
+
+ }
+ break;
+ //max_time
+ case 0x0D:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, 120, 150)) //границы берём из графического интерфейса лучше переделатьь в дефайны
+ {
+ icd_str->max_search_time = idata / 5;
+ }
+ }
+ break;
+ //bool LV_on //bool HV_on
+ case 0x0E:
+ {
+ // не стала делать, не используется же пока
+
+ }
+ break;
+
+ //fibr_tres
+ case 0x10:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, FIBR_PERIOD_MIN, FIBR_PERIOD_MAX))
+ {
+ idata /= 5;
+ //если меньше тахи2 и тахи 1
+ if ((idata < icd_str->tachy_2_tres) && (idata < icd_str->tachy_1_tres))
+ // проверили что меньше максимального порога
+ icd_str->fibr_tres = idata;
+ }
+
+ }
+ break;
+ //tachy_2_tres
+ case 0x11:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, TACHY_2_PERIOD_MIN, TACHY_2_PERIOD_MAX))
+ {
+ idata /= 5;
+ //если больше фибр и меньше тахи 1
+ if ((idata > icd_str->fibr_tres) && (idata < icd_str->tachy_1_tres))
+ // проверили что меньше максимального порога
+ icd_str->tachy_2_tres = idata;
+ }
+ }
+ break;
+ //tachy_1_tres
+ case 0x12:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, TACHY_1_PERIOD_MIN, TACHY_1_PERIOD_MAX))
+ {
+ idata /= 5;
+ //если больше фибр и больше тахи 2
+ if ((idata > icd_str->fibr_tres) && (idata > icd_str->tachy_2_tres))
+ // проверили что меньше максимального порога
+ icd_str->tachy_1_tres = idata;
+ }
+ }
+ break;
+ //fibr_max_tres
+ case 0x13:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 10, 60))
+ {
+ icd_str->fibr_max_tres = idata;
+ }
+ }
+ break;
+ //hv_step_number
+ case 0x14:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 1, 8))
+ {
+ icd_str->hv_step_number = idata;
+ }
+ }
+ break;
+ //min_energy
+ case 0x15:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, 1, 70))
+ {
+ icd_str->min_energy = idata * 10;
+ }
+ }
+ break;
+ //max_energy
+ case 0x16:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, 1, 70))
+ {
+ if (idata * 10 >= icd_str->min_energy)
+ icd_str->max_energy = idata * 10;
+ }
+ }
+ break;
+ //cap_polarity
+ case 0x17:
+ {
+ //не делала
+ }
+ break;
+ //hv_blind_time
+ case 0x18:
+ {
+ uint16_t idata = unpackUint16(&buf[2]);
+ if (check_uint16(idata, 100, 5000))
+ {
+ icd_str->hv_blind_time = idata / 5;
+ }
+ }
+ break;
+ //redet_num
+ case 0x19:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 4, 10))
+ {
+ icd_str->redet_num = idata;
+ }
+ }
+ break;
+ //redet_bad
+ case 0x1A:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 2, 8))
+ {
+ icd_str->redet_bad = idata;
+ }
+ }
+ break;
+ //standby_timer
+ case 0x1B:
+ {
+ uint32_t idata = unpackUint32(&buf[2]);
+ if (check_uint32(idata, 10, 3600))
+ {
+ icd_str->standby_timer = idata * 1000;
+ }
+ }
+ break;
+
+ case 0x1C:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 255))
+ {
+ icd_str->spi_pot_set = idata;
+ }
+ }
+ break;
+
+ case 0x1D:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 255))
+ {
+ if (idata > 0)
+ NVIC_SystemReset(); //перезагрузка
+ }
+ }
+ break;
+ //с фильтром без фильтра
+ case 0x1E:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 1))
+ {
+ icd_str->filter_on = (bool) idata;
+ }
+ }
+ break;
+
+ //с какой канал используем
+ case 0x1F:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 3))
+ {
+ icd_str->active_ch = idata;
+ }
+ }
+ break;
+
+ //использование SD карты
+ case 0x20:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 1))
+ {
+ icd_str->sd_card = (bool) idata;
+ }
+ }
+ break;
+
+ //вычитание постоянной составляющей
+ case 0x21:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 1))
+ {
+ icd_str->dc_cut = (bool) idata;
+ }
+ }
+ break;
+
+ //полярность низковольтной стимуляции
+ case 0x22:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 0x1))
+ {
+ icd_str->lv_polarity = idata;
+ }
+ }
+
+ //режим низковольтной стимуляции
+ case 0x23:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 0xF))
+ {
+ icd_str->lv_mode = idata;
+ }
+ }
+ break;
+ //время импульса низковольной стимуляции 1-20(0,1-2мс) одна единица 0,1мс шаг 0.1мс
+ case 0x24:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 1, 20))
+ {
+ icd_str->lv_shock_time = idata;
+ }
+ }
+ break;
+ //время стабилизации после удара низковольной стимуляции 0-20(0-20мс) одна единица 1мс шаг 1мс
+ case 0x25:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 20))
+ {
+ icd_str->lv_relax_time = idata;
+ }
+ }
+ break;
+ //какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ case 0x26:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 10, 80))
+ {
+ icd_str->lv_voltage = idata;
+ }
+ }
+ break;
+ //сколько импульсов в одной пачке 5-50 одна единица 1 импульс шаг 1 импульс
+ case 0x27:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 5, 50))
+ {
+ icd_str->BURST_cnt = idata;
+ }
+ }
+ break;
+ //какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ case 0x28:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 10, 80))
+ {
+ icd_str->BURST_voltage = idata;
+ }
+ }
+ break;
+ //период следования импульсов в мс 150-500мс одна единица 1мс шаг 10 мс на ползунке
+ case 0x29:
+ {
+ uint32_t idata = unpackUint32(&buf[2]);
+ if (check_uint16(idata, 150, 500))
+ {
+ icd_str->BURST_period = idata;
+ }
+ }
+ break;
+ //новое про высокое напряжение
+ //полярность стимуляции
+ case 0x30:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 2))
+ {
+ icd_str->hv_polarity = idata;
+ }
+
+ }
+ break;
+ //тип способа задания длительности импульса
+ case 0x31:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 0, 2))
+ {
+ icd_str->hv_mode = idata;
+ }
+ }
+ break;
+ // время в десятых мс приходящееся на 1 фазу 30-120(3-12мс) одна единица 0,1мс
+ case 0x32:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 30, 120))
+ {
+ icd_str->hv_phase_1_duration = idata;
+ }
+ }
+ break;
+ // время в десятых мс приходящееся на 2 фазу 20-100(2-10мс) одна единица 0,1мс
+ case 0x33:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 20, 100))
+ {
+ icd_str->hv_phase_2_duration = idata;
+ }
+ }
+ break;
+ // время в десятых мс приходящееся на переключение между фазами 10-30(1-3мс) одна единица 0,1мс
+ case 0x34:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 10, 30))
+ {
+ icd_str->hv_switch_duration = idata;
+ }
+ }
+ break;
+ //процент напряжения при котором происходит завешение 1 фазы при адаптивном режиме (20-80) одна единица 1%
+ case 0x35:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 20, 80))
+ {
+ icd_str->hv_switching_voltage = idata;
+ }
+ }
+ break;
+ //процент напряжения при котором происходит завешение 2 фазы при адаптивном режиме (5-50) одна единица 1%
+ case 0x36:
+ {
+ uint8_t idata = unpackUint8(&buf[2]);
+ if (check_uint8(idata, 5, 50))
+ {
+ icd_str->hv_cutoff_voltage = idata;
+ }
+ }
+ break;
+ default:
+ {
+ //код неверный
+ }
+ }
+ }
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/spi.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/spi.c
new file mode 100644
index 0000000..c3cde94
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/spi.c
@@ -0,0 +1,210 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file spi.c
+ * @brief This file provides code for the configuration
+ * of the SPI instances.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "spi.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+SPI_HandleTypeDef hspi2;
+SPI_HandleTypeDef hspi3;
+
+/* SPI2 init function */
+void MX_SPI2_Init(void)
+{
+
+ /* USER CODE BEGIN SPI2_Init 0 */
+
+ /* USER CODE END SPI2_Init 0 */
+
+ /* USER CODE BEGIN SPI2_Init 1 */
+
+ /* USER CODE END SPI2_Init 1 */
+ hspi2.Instance = SPI2;
+ hspi2.Init.Mode = SPI_MODE_MASTER;
+ hspi2.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi2.Init.NSS = SPI_NSS_SOFT;
+ hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
+ hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi2.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI2_Init 2 */
+
+ /* USER CODE END SPI2_Init 2 */
+
+}
+/* SPI3 init function */
+void MX_SPI3_Init(void)
+{
+
+ /* USER CODE BEGIN SPI3_Init 0 */
+
+ /* USER CODE END SPI3_Init 0 */
+
+ /* USER CODE BEGIN SPI3_Init 1 */
+
+ /* USER CODE END SPI3_Init 1 */
+ hspi3.Instance = SPI3;
+ hspi3.Init.Mode = SPI_MODE_MASTER;
+ hspi3.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi3.Init.NSS = SPI_NSS_SOFT;
+ hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
+ hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi3.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI3_Init 2 */
+
+ /* USER CODE END SPI3_Init 2 */
+
+}
+
+void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(spiHandle->Instance==SPI2)
+ {
+ /* USER CODE BEGIN SPI2_MspInit 0 */
+
+ /* USER CODE END SPI2_MspInit 0 */
+ /* SPI2 clock enable */
+ __HAL_RCC_SPI2_CLK_ENABLE();
+
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ /**SPI2 GPIO Configuration
+ PB13 ------> SPI2_SCK
+ PB15 ------> SPI2_MOSI
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN SPI2_MspInit 1 */
+
+ /* USER CODE END SPI2_MspInit 1 */
+ }
+ else if(spiHandle->Instance==SPI3)
+ {
+ /* USER CODE BEGIN SPI3_MspInit 0 */
+
+ /* USER CODE END SPI3_MspInit 0 */
+ /* SPI3 clock enable */
+ __HAL_RCC_SPI3_CLK_ENABLE();
+
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ /**SPI3 GPIO Configuration
+ PC10 ------> SPI3_SCK
+ PC11 ------> SPI3_MISO
+ PC12 ------> SPI3_MOSI
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN SPI3_MspInit 1 */
+
+ /* USER CODE END SPI3_MspInit 1 */
+ }
+}
+
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
+{
+
+ if(spiHandle->Instance==SPI2)
+ {
+ /* USER CODE BEGIN SPI2_MspDeInit 0 */
+
+ /* USER CODE END SPI2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_SPI2_CLK_DISABLE();
+
+ /**SPI2 GPIO Configuration
+ PB13 ------> SPI2_SCK
+ PB15 ------> SPI2_MOSI
+ */
+ HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_15);
+
+ /* USER CODE BEGIN SPI2_MspDeInit 1 */
+
+ /* USER CODE END SPI2_MspDeInit 1 */
+ }
+ else if(spiHandle->Instance==SPI3)
+ {
+ /* USER CODE BEGIN SPI3_MspDeInit 0 */
+
+ /* USER CODE END SPI3_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_SPI3_CLK_DISABLE();
+
+ /**SPI3 GPIO Configuration
+ PC10 ------> SPI3_SCK
+ PC11 ------> SPI3_MISO
+ PC12 ------> SPI3_MOSI
+ */
+ HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);
+
+ /* USER CODE BEGIN SPI3_MspDeInit 1 */
+
+ /* USER CODE END SPI3_MspDeInit 1 */
+ }
+}
+
+/* USER CODE BEGIN 1 */
+void POT_set(uint8_t val)
+{
+ HAL_GPIO_WritePin(POT_CS_1_GPIO_Port, POT_CS_1_Pin, RESET);
+ HAL_SPI_Transmit(&hspi2, &val, 1, 10);
+ HAL_GPIO_WritePin(POT_CS_1_GPIO_Port, POT_CS_1_Pin, SET);
+}
+
+void POT_cheek(uint8_t* set, uint8_t* now)
+{
+ if (set != now)
+ {
+ now = set;
+ HAL_GPIO_WritePin(POT_CS_1_GPIO_Port, POT_CS_1_Pin, RESET);
+ HAL_SPI_Transmit(&hspi2, now, 1, 10);
+ HAL_GPIO_WritePin(POT_CS_1_GPIO_Port, POT_CS_1_Pin, SET);
+ }
+}
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_msp.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_msp.c
new file mode 100644
index 0000000..14a8392
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_msp.c
@@ -0,0 +1,84 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_msp.c
+ * @brief This file provides code for the MSP Initialization
+ * and de-Initialization codes.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN Define */
+
+/* USER CODE END Define */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN Macro */
+
+/* USER CODE END Macro */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* External functions --------------------------------------------------------*/
+/* USER CODE BEGIN ExternalFunctions */
+
+/* USER CODE END ExternalFunctions */
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+/**
+ * Initializes the Global MSP.
+ */
+void HAL_MspInit(void)
+{
+
+ /* USER CODE BEGIN MspInit 0 */
+
+ /* USER CODE END MspInit 0 */
+
+ __HAL_RCC_SYSCFG_CLK_ENABLE();
+ __HAL_RCC_PWR_CLK_ENABLE();
+
+ /* System interrupt init*/
+ /* PendSV_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
+
+ /* USER CODE BEGIN MspInit 1 */
+
+ /* USER CODE END MspInit 1 */
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_timebase_tim.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_timebase_tim.c
new file mode 100644
index 0000000..801f080
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_hal_timebase_tim.c
@@ -0,0 +1,137 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_timebase_tim.c
+ * @brief HAL time base based on the hardware TIM.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+#include "stm32f4xx_hal_tim.h"
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+TIM_HandleTypeDef htim12;
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/**
+ * @brief This function configures the TIM12 as a time base source.
+ * The time source is configured to have 1ms time base with a dedicated
+ * Tick interrupt priority.
+ * @note This function is called automatically at the beginning of program after
+ * reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig().
+ * @param TickPriority: Tick interrupt priority.
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
+{
+ RCC_ClkInitTypeDef clkconfig;
+ uint32_t uwTimclock, uwAPB1Prescaler = 0U;
+
+ uint32_t uwPrescalerValue = 0U;
+ uint32_t pFLatency;
+ HAL_StatusTypeDef status;
+
+ /* Enable TIM12 clock */
+ __HAL_RCC_TIM12_CLK_ENABLE();
+
+ /* Get clock configuration */
+ HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
+
+ /* Get APB1 prescaler */
+ uwAPB1Prescaler = clkconfig.APB1CLKDivider;
+ /* Compute TIM12 clock */
+ if (uwAPB1Prescaler == RCC_HCLK_DIV1)
+ {
+ uwTimclock = HAL_RCC_GetPCLK1Freq();
+ }
+ else
+ {
+ uwTimclock = 2UL * HAL_RCC_GetPCLK1Freq();
+ }
+
+ /* Compute the prescaler value to have TIM12 counter clock equal to 1MHz */
+ uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000U) - 1U);
+
+ /* Initialize TIM12 */
+ htim12.Instance = TIM12;
+
+ /* Initialize TIMx peripheral as follow:
+
+ + Period = [(TIM12CLK/1000) - 1]. to have a (1/1000) s time base.
+ + Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
+ + ClockDivision = 0
+ + Counter direction = Up
+ */
+ htim12.Init.Period = (1000000U / 1000U) - 1U;
+ htim12.Init.Prescaler = uwPrescalerValue;
+ htim12.Init.ClockDivision = 0;
+ htim12.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim12.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+
+ status = HAL_TIM_Base_Init(&htim12);
+ if (status == HAL_OK)
+ {
+ /* Start the TIM time Base generation in interrupt mode */
+ status = HAL_TIM_Base_Start_IT(&htim12);
+ if (status == HAL_OK)
+ {
+ /* Enable the TIM12 global Interrupt */
+ HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);
+ /* Configure the SysTick IRQ priority */
+ if (TickPriority < (1UL << __NVIC_PRIO_BITS))
+ {
+ /* Configure the TIM IRQ priority */
+ HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, TickPriority, 0U);
+ uwTickPrio = TickPriority;
+ }
+ else
+ {
+ status = HAL_ERROR;
+ }
+ }
+ }
+
+ /* Return function status */
+ return status;
+}
+
+/**
+ * @brief Suspend Tick increment.
+ * @note Disable the tick increment by disabling TIM12 update interrupt.
+ * @param None
+ * @retval None
+ */
+void HAL_SuspendTick(void)
+{
+ /* Disable TIM12 update Interrupt */
+ __HAL_TIM_DISABLE_IT(&htim12, TIM_IT_UPDATE);
+}
+
+/**
+ * @brief Resume Tick increment.
+ * @note Enable the tick increment by Enabling TIM12 update interrupt.
+ * @param None
+ * @retval None
+ */
+void HAL_ResumeTick(void)
+{
+ /* Enable TIM12 Update interrupt */
+ __HAL_TIM_ENABLE_IT(&htim12, TIM_IT_UPDATE);
+}
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_it.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_it.c
new file mode 100644
index 0000000..0146683
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/stm32f4xx_it.c
@@ -0,0 +1,273 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.c
+ * @brief Interrupt Service Routines.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "stm32f4xx_it.h"
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "adc.h"
+#include "control.h"
+#include "icd.h"
+extern ctrl_struct Control; //FLASH (rx)
+extern icd_str ICD;
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+extern adc_struct adc_str;//структура ацп
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/* External variables --------------------------------------------------------*/
+extern TIM_HandleTypeDef htim6;
+extern DMA_HandleTypeDef hdma_usart1_tx;
+extern DMA_HandleTypeDef hdma_usart1_rx;
+extern UART_HandleTypeDef huart1;
+extern TIM_HandleTypeDef htim12;
+
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
+/******************************************************************************/
+/* Cortex-M4 Processor Interruption and Exception Handlers */
+/******************************************************************************/
+/**
+ * @brief This function handles Non maskable interrupt.
+ */
+void NMI_Handler(void)
+{
+ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+ /* USER CODE END NonMaskableInt_IRQn 0 */
+ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+ while (1)
+ {
+ }
+ /* USER CODE END NonMaskableInt_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Hard fault interrupt.
+ */
+void HardFault_Handler(void)
+{
+ /* USER CODE BEGIN HardFault_IRQn 0 */
+
+ /* USER CODE END HardFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+ /* USER CODE END W1_HardFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Memory management fault.
+ */
+void MemManage_Handler(void)
+{
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+ /* USER CODE END MemoryManagement_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+ /* USER CODE END W1_MemoryManagement_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Pre-fetch fault, memory access fault.
+ */
+void BusFault_Handler(void)
+{
+ /* USER CODE BEGIN BusFault_IRQn 0 */
+
+ /* USER CODE END BusFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_BusFault_IRQn 0 */
+ /* USER CODE END W1_BusFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Undefined instruction or illegal state.
+ */
+void UsageFault_Handler(void)
+{
+ /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+ /* USER CODE END UsageFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
+ /* USER CODE END W1_UsageFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Debug monitor.
+ */
+void DebugMon_Handler(void)
+{
+ /* USER CODE BEGIN DebugMonitor_IRQn 0 */
+
+ /* USER CODE END DebugMonitor_IRQn 0 */
+ /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+ /* USER CODE END DebugMonitor_IRQn 1 */
+}
+
+/******************************************************************************/
+/* STM32F4xx Peripheral Interrupt Handlers */
+/* Add here the Interrupt Handlers for the used peripherals. */
+/* For the available peripheral interrupt handler names, */
+/* please refer to the startup file (startup_stm32f4xx.s). */
+/******************************************************************************/
+
+/**
+ * @brief This function handles USART1 global interrupt.
+ */
+void USART1_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART1_IRQn 0 */
+
+ /* USER CODE END USART1_IRQn 0 */
+ HAL_UART_IRQHandler(&huart1);
+ /* USER CODE BEGIN USART1_IRQn 1 */
+
+ /* USER CODE END USART1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles TIM8 break interrupt and TIM12 global interrupt.
+ */
+void TIM8_BRK_TIM12_IRQHandler(void)
+{
+ /* USER CODE BEGIN TIM8_BRK_TIM12_IRQn 0 */
+
+ /* USER CODE END TIM8_BRK_TIM12_IRQn 0 */
+ HAL_TIM_IRQHandler(&htim12);
+ /* USER CODE BEGIN TIM8_BRK_TIM12_IRQn 1 */
+
+ /* USER CODE END TIM8_BRK_TIM12_IRQn 1 */
+}
+
+/**
+ * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
+ */
+void TIM6_DAC_IRQHandler(void)
+{
+ /* USER CODE BEGIN TIM6_DAC_IRQn 0 */
+ static uint8_t period = 0;
+ /* USER CODE END TIM6_DAC_IRQn 0 */
+ HAL_TIM_IRQHandler(&htim6);
+ /* USER CODE BEGIN TIM6_DAC_IRQn 1 */
+ if (Control.set_mode == Sleep)
+ {
+ TIM1->CCR1 = period;
+ TIM1->CCR2 = 0;
+ TIM1->CCR3 = 0;
+ }
+ else
+ {
+ if (ICD.work_set_mode == Monitor) //вроде зелёный
+ {
+ TIM1->CCR1 = 0;
+ TIM1->CCR2 = period;
+ TIM1->CCR3 = 0;
+ }
+ else if (ICD.work_set_mode == Normal) //вроде жёлтый
+ {
+ TIM1->CCR1 = 0;
+ TIM1->CCR2 = period;
+ TIM1->CCR3 = period;
+ }
+ else //вроде красный
+ {
+ TIM1->CCR1 = 0;
+ TIM1->CCR2 = period;
+ TIM1->CCR3 = period;
+ }
+ }
+
+ period++;
+ if(period > 200) period = 0;
+ adc_read(&adc_str);
+ /* USER CODE END TIM6_DAC_IRQn 1 */
+}
+
+/**
+ * @brief This function handles DMA2 stream2 global interrupt.
+ */
+void DMA2_Stream2_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */
+
+ /* USER CODE END DMA2_Stream2_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_usart1_rx);
+ /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */
+
+ /* USER CODE END DMA2_Stream2_IRQn 1 */
+}
+
+/**
+ * @brief This function handles DMA2 stream7 global interrupt.
+ */
+void DMA2_Stream7_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA2_Stream7_IRQn 0 */
+
+ /* USER CODE END DMA2_Stream7_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_usart1_tx);
+ /* USER CODE BEGIN DMA2_Stream7_IRQn 1 */
+
+ /* USER CODE END DMA2_Stream7_IRQn 1 */
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/syscalls.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/syscalls.c
new file mode 100644
index 0000000..f3462a0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/syscalls.c
@@ -0,0 +1,176 @@
+/**
+ ******************************************************************************
+ * @file syscalls.c
+ * @author Auto-generated by STM32CubeIDE
+ * @brief STM32CubeIDE Minimal System calls file
+ *
+ * For more information about which c-functions
+ * need which of these lowlevel functions
+ * please consult the Newlib libc-manual
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+/* Variables */
+extern int __io_putchar(int ch) __attribute__((weak));
+extern int __io_getchar(void) __attribute__((weak));
+
+
+char *__env[1] = { 0 };
+char **environ = __env;
+
+
+/* Functions */
+void initialise_monitor_handles()
+{
+}
+
+int _getpid(void)
+{
+ return 1;
+}
+
+int _kill(int pid, int sig)
+{
+ (void)pid;
+ (void)sig;
+ errno = EINVAL;
+ return -1;
+}
+
+void _exit (int status)
+{
+ _kill(status, -1);
+ while (1) {} /* Make sure we hang here */
+}
+
+__attribute__((weak)) int _read(int file, char *ptr, int len)
+{
+ (void)file;
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ *ptr++ = __io_getchar();
+ }
+
+ return len;
+}
+
+__attribute__((weak)) int _write(int file, char *ptr, int len)
+{
+ (void)file;
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ __io_putchar(*ptr++);
+ }
+ return len;
+}
+
+int _close(int file)
+{
+ (void)file;
+ return -1;
+}
+
+
+int _fstat(int file, struct stat *st)
+{
+ (void)file;
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _isatty(int file)
+{
+ (void)file;
+ return 1;
+}
+
+int _lseek(int file, int ptr, int dir)
+{
+ (void)file;
+ (void)ptr;
+ (void)dir;
+ return 0;
+}
+
+int _open(char *path, int flags, ...)
+{
+ (void)path;
+ (void)flags;
+ /* Pretend like we always fail */
+ return -1;
+}
+
+int _wait(int *status)
+{
+ (void)status;
+ errno = ECHILD;
+ return -1;
+}
+
+int _unlink(char *name)
+{
+ (void)name;
+ errno = ENOENT;
+ return -1;
+}
+
+int _times(struct tms *buf)
+{
+ (void)buf;
+ return -1;
+}
+
+int _stat(char *file, struct stat *st)
+{
+ (void)file;
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _link(char *old, char *new)
+{
+ (void)old;
+ (void)new;
+ errno = EMLINK;
+ return -1;
+}
+
+int _fork(void)
+{
+ errno = EAGAIN;
+ return -1;
+}
+
+int _execve(char *name, char **argv, char **env)
+{
+ (void)name;
+ (void)argv;
+ (void)env;
+ errno = ENOMEM;
+ return -1;
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/sysmem.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/sysmem.c
new file mode 100644
index 0000000..6122419
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/sysmem.c
@@ -0,0 +1,79 @@
+/**
+ ******************************************************************************
+ * @file sysmem.c
+ * @author Generated by STM32CubeIDE
+ * @brief STM32CubeIDE System Memory calls file
+ *
+ * For more information about which C functions
+ * need which of these lowlevel functions
+ * please consult the newlib libc manual
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include
+#include
+
+/**
+ * Pointer to the current high watermark of the heap usage
+ */
+static uint8_t *__sbrk_heap_end = NULL;
+
+/**
+ * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
+ * and others from the C library
+ *
+ * @verbatim
+ * ############################################################################
+ * # .data # .bss # newlib heap # MSP stack #
+ * # # # # Reserved by _Min_Stack_Size #
+ * ############################################################################
+ * ^-- RAM start ^-- _end _estack, RAM end --^
+ * @endverbatim
+ *
+ * This implementation starts allocating at the '_end' linker symbol
+ * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
+ * The implementation considers '_estack' linker symbol to be RAM end
+ * NOTE: If the MSP stack, at any point during execution, grows larger than the
+ * reserved size, please increase the '_Min_Stack_Size'.
+ *
+ * @param incr Memory size
+ * @return Pointer to allocated memory
+ */
+void *_sbrk(ptrdiff_t incr)
+{
+ extern uint8_t _end; /* Symbol defined in the linker script */
+ extern uint8_t _estack; /* Symbol defined in the linker script */
+ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
+ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
+ const uint8_t *max_heap = (uint8_t *)stack_limit;
+ uint8_t *prev_heap_end;
+
+ /* Initialize heap end at first call */
+ if (NULL == __sbrk_heap_end)
+ {
+ __sbrk_heap_end = &_end;
+ }
+
+ /* Protect heap from growing into the reserved MSP stack */
+ if (__sbrk_heap_end + incr > max_heap)
+ {
+ errno = ENOMEM;
+ return (void *)-1;
+ }
+
+ prev_heap_end = __sbrk_heap_end;
+ __sbrk_heap_end += incr;
+
+ return (void *)prev_heap_end;
+}
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/system_stm32f4xx.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/system_stm32f4xx.c
new file mode 100644
index 0000000..3bd40f7
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/system_stm32f4xx.c
@@ -0,0 +1,747 @@
+/**
+ ******************************************************************************
+ * @file system_stm32f4xx.c
+ * @author MCD Application Team
+ * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
+ *
+ * This file provides two functions and one global variable to be called from
+ * user application:
+ * - SystemInit(): This function is called at startup just after reset and
+ * before branch to main program. This call is made inside
+ * the "startup_stm32f4xx.s" file.
+ *
+ * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
+ * by the user application to setup the SysTick
+ * timer or configure other parameters.
+ *
+ * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
+ * be called whenever the core clock is changed
+ * during program execution.
+ *
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/** @addtogroup CMSIS
+ * @{
+ */
+
+/** @addtogroup stm32f4xx_system
+ * @{
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Includes
+ * @{
+ */
+
+
+#include "stm32f4xx.h"
+
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_TypesDefinitions
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Defines
+ * @{
+ */
+
+/************************* Miscellaneous Configuration ************************/
+/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
+ || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
+/* #define DATA_IN_ExtSRAM */
+#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\
+ STM32F412Zx || STM32F412Vx */
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+/* #define DATA_IN_ExtSDRAM */
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\
+ STM32F479xx */
+
+/* Note: Following vector table addresses must be defined in line with linker
+ configuration. */
+/*!< Uncomment the following line if you need to relocate the vector table
+ anywhere in Flash or Sram, else the vector table is kept at the automatic
+ remap of boot address selected */
+/* #define USER_VECT_TAB_ADDRESS */
+
+#if defined(USER_VECT_TAB_ADDRESS)
+/*!< Uncomment the following line if you need to relocate your vector Table
+ in Sram else user remap will be done in Flash. */
+/* #define VECT_TAB_SRAM */
+#if defined(VECT_TAB_SRAM)
+#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field.
+ This value must be a multiple of 0x200. */
+#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+#else
+#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
+ This value must be a multiple of 0x200. */
+#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+#endif /* VECT_TAB_SRAM */
+#endif /* USER_VECT_TAB_ADDRESS */
+/******************************************************************************/
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Macros
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Variables
+ * @{
+ */
+ /* This variable is updated in three ways:
+ 1) by calling CMSIS function SystemCoreClockUpdate()
+ 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
+ 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
+ Note: If you use this function to configure the system clock; then there
+ is no need to call the 2 first functions listed above, since SystemCoreClock
+ variable is updated automatically.
+ */
+uint32_t SystemCoreClock = 16000000;
+const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
+const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
+ * @{
+ */
+
+#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+ static void SystemInit_ExtMemCtl(void);
+#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Functions
+ * @{
+ */
+
+/**
+ * @brief Setup the microcontroller system
+ * Initialize the FPU setting, vector table location and External memory
+ * configuration.
+ * @param None
+ * @retval None
+ */
+void SystemInit(void)
+{
+ /* FPU settings ------------------------------------------------------------*/
+ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
+ #endif
+
+#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+ SystemInit_ExtMemCtl();
+#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
+
+ /* Configure the Vector Table location -------------------------------------*/
+#if defined(USER_VECT_TAB_ADDRESS)
+ SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
+#endif /* USER_VECT_TAB_ADDRESS */
+}
+
+/**
+ * @brief Update SystemCoreClock variable according to Clock Register Values.
+ * The SystemCoreClock variable contains the core clock (HCLK), it can
+ * be used by the user application to setup the SysTick timer or configure
+ * other parameters.
+ *
+ * @note Each time the core clock (HCLK) changes, this function must be called
+ * to update SystemCoreClock variable value. Otherwise, any configuration
+ * based on this variable will be incorrect.
+ *
+ * @note - The system frequency computed by this function is not the real
+ * frequency in the chip. It is calculated based on the predefined
+ * constant and the selected clock source:
+ *
+ * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
+ *
+ * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
+ *
+ * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
+ * or HSI_VALUE(*) multiplied/divided by the PLL factors.
+ *
+ * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
+ * 16 MHz) but the real value may vary depending on the variations
+ * in voltage and temperature.
+ *
+ * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
+ * depends on the application requirements), user has to ensure that HSE_VALUE
+ * is same as the real frequency of the crystal used. Otherwise, this function
+ * may have wrong result.
+ *
+ * - The result of this function could be not correct when using fractional
+ * value for HSE crystal.
+ *
+ * @param None
+ * @retval None
+ */
+void SystemCoreClockUpdate(void)
+{
+ uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
+
+ /* Get SYSCLK source -------------------------------------------------------*/
+ tmp = RCC->CFGR & RCC_CFGR_SWS;
+
+ switch (tmp)
+ {
+ case 0x00: /* HSI used as system clock source */
+ SystemCoreClock = HSI_VALUE;
+ break;
+ case 0x04: /* HSE used as system clock source */
+ SystemCoreClock = HSE_VALUE;
+ break;
+ case 0x08: /* PLL used as system clock source */
+
+ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
+ SYSCLK = PLL_VCO / PLL_P
+ */
+ pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
+ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
+
+ if (pllsource != 0)
+ {
+ /* HSE used as PLL clock source */
+ pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+ else
+ {
+ /* HSI used as PLL clock source */
+ pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+
+ pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
+ SystemCoreClock = pllvco/pllp;
+ break;
+ default:
+ SystemCoreClock = HSI_VALUE;
+ break;
+ }
+ /* Compute HCLK frequency --------------------------------------------------*/
+ /* Get HCLK prescaler */
+ tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
+ /* HCLK frequency */
+ SystemCoreClock >>= tmp;
+}
+
+#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM)
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx)
+/**
+ * @brief Setup the external memory controller.
+ * Called in startup_stm32f4xx.s before jump to main.
+ * This function configures the external memories (SRAM/SDRAM)
+ * This SRAM/SDRAM will be used as program data memory (including heap and stack).
+ * @param None
+ * @retval None
+ */
+void SystemInit_ExtMemCtl(void)
+{
+ __IO uint32_t tmp = 0x00;
+
+ register uint32_t tmpreg = 0, timeout = 0xFFFF;
+ register __IO uint32_t index;
+
+ /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */
+ RCC->AHB1ENR |= 0x000001F8;
+
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x00CCC0CC;
+ GPIOD->AFR[1] = 0xCCCCCCCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xAAAA0A8A;
+ /* Configure PDx pins speed to 100 MHz */
+ GPIOD->OSPEEDR = 0xFFFF0FCF;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00CC0CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA828A;
+ /* Configure PEx pins speed to 100 MHz */
+ GPIOE->OSPEEDR = 0xFFFFC3CF;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0xCCCCCCCC;
+ GPIOF->AFR[1] = 0xCCCCCCCC;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA800AAA;
+ /* Configure PFx pins speed to 50 MHz */
+ GPIOF->OSPEEDR = 0xAA800AAA;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0xCCCCCCCC;
+ GPIOG->AFR[1] = 0xCCCCCCCC;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0xAAAAAAAA;
+ /* Configure PGx pins speed to 50 MHz */
+ GPIOG->OSPEEDR = 0xAAAAAAAA;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+ /* Connect PHx pins to FMC Alternate function */
+ GPIOH->AFR[0] = 0x00C0CC00;
+ GPIOH->AFR[1] = 0xCCCCCCCC;
+ /* Configure PHx pins in Alternate function mode */
+ GPIOH->MODER = 0xAAAA08A0;
+ /* Configure PHx pins speed to 50 MHz */
+ GPIOH->OSPEEDR = 0xAAAA08A0;
+ /* Configure PHx pins Output type to push-pull */
+ GPIOH->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PHx pins */
+ GPIOH->PUPDR = 0x00000000;
+
+ /* Connect PIx pins to FMC Alternate function */
+ GPIOI->AFR[0] = 0xCCCCCCCC;
+ GPIOI->AFR[1] = 0x00000CC0;
+ /* Configure PIx pins in Alternate function mode */
+ GPIOI->MODER = 0x0028AAAA;
+ /* Configure PIx pins speed to 50 MHz */
+ GPIOI->OSPEEDR = 0x0028AAAA;
+ /* Configure PIx pins Output type to push-pull */
+ GPIOI->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PIx pins */
+ GPIOI->PUPDR = 0x00000000;
+
+/*-- FMC Configuration -------------------------------------------------------*/
+ /* Enable the FMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+
+ FMC_Bank5_6->SDCR[0] = 0x000019E4;
+ FMC_Bank5_6->SDTR[0] = 0x01115351;
+
+ /* SDRAM initialization sequence */
+ /* Clock enable command */
+ FMC_Bank5_6->SDCMR = 0x00000011;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Delay */
+ for (index = 0; index<1000; index++);
+
+ /* PALL command */
+ FMC_Bank5_6->SDCMR = 0x00000012;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Auto refresh command */
+ FMC_Bank5_6->SDCMR = 0x00000073;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* MRD register program */
+ FMC_Bank5_6->SDCMR = 0x00046014;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Set refresh count */
+ tmpreg = FMC_Bank5_6->SDRTR;
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
+
+ /* Disable write protection */
+ tmpreg = FMC_Bank5_6->SDCR[0];
+ FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001011;
+ FMC_Bank1->BTCR[3] = 0x00000201;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#if defined(STM32F469xx) || defined(STM32F479xx)
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001091;
+ FMC_Bank1->BTCR[3] = 0x00110212;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F469xx || STM32F479xx */
+
+ (void)(tmp);
+}
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+/**
+ * @brief Setup the external memory controller.
+ * Called in startup_stm32f4xx.s before jump to main.
+ * This function configures the external memories (SRAM/SDRAM)
+ * This SRAM/SDRAM will be used as program data memory (including heap and stack).
+ * @param None
+ * @retval None
+ */
+void SystemInit_ExtMemCtl(void)
+{
+ __IO uint32_t tmp = 0x00;
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#if defined (DATA_IN_ExtSDRAM)
+ register uint32_t tmpreg = 0, timeout = 0xFFFF;
+ register __IO uint32_t index;
+
+#if defined(STM32F446xx)
+ /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface
+ clock */
+ RCC->AHB1ENR |= 0x0000007D;
+#else
+ /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface
+ clock */
+ RCC->AHB1ENR |= 0x000001F8;
+#endif /* STM32F446xx */
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);
+
+#if defined(STM32F446xx)
+ /* Connect PAx pins to FMC Alternate function */
+ GPIOA->AFR[0] |= 0xC0000000;
+ GPIOA->AFR[1] |= 0x00000000;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOA->MODER |= 0x00008000;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOA->OSPEEDR |= 0x00008000;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOA->OTYPER |= 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOA->PUPDR |= 0x00000000;
+
+ /* Connect PCx pins to FMC Alternate function */
+ GPIOC->AFR[0] |= 0x00CC0000;
+ GPIOC->AFR[1] |= 0x00000000;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOC->MODER |= 0x00000A00;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOC->OSPEEDR |= 0x00000A00;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOC->OTYPER |= 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOC->PUPDR |= 0x00000000;
+#endif /* STM32F446xx */
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x000000CC;
+ GPIOD->AFR[1] = 0xCC000CCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xA02A000A;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOD->OSPEEDR = 0xA02A000A;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00000CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA800A;
+ /* Configure PEx pins speed to 50 MHz */
+ GPIOE->OSPEEDR = 0xAAAA800A;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0xCCCCCCCC;
+ GPIOF->AFR[1] = 0xCCCCCCCC;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA800AAA;
+ /* Configure PFx pins speed to 50 MHz */
+ GPIOF->OSPEEDR = 0xAA800AAA;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0xCCCCCCCC;
+ GPIOG->AFR[1] = 0xCCCCCCCC;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0xAAAAAAAA;
+ /* Configure PGx pins speed to 50 MHz */
+ GPIOG->OSPEEDR = 0xAAAAAAAA;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx)
+ /* Connect PHx pins to FMC Alternate function */
+ GPIOH->AFR[0] = 0x00C0CC00;
+ GPIOH->AFR[1] = 0xCCCCCCCC;
+ /* Configure PHx pins in Alternate function mode */
+ GPIOH->MODER = 0xAAAA08A0;
+ /* Configure PHx pins speed to 50 MHz */
+ GPIOH->OSPEEDR = 0xAAAA08A0;
+ /* Configure PHx pins Output type to push-pull */
+ GPIOH->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PHx pins */
+ GPIOH->PUPDR = 0x00000000;
+
+ /* Connect PIx pins to FMC Alternate function */
+ GPIOI->AFR[0] = 0xCCCCCCCC;
+ GPIOI->AFR[1] = 0x00000CC0;
+ /* Configure PIx pins in Alternate function mode */
+ GPIOI->MODER = 0x0028AAAA;
+ /* Configure PIx pins speed to 50 MHz */
+ GPIOI->OSPEEDR = 0x0028AAAA;
+ /* Configure PIx pins Output type to push-pull */
+ GPIOI->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PIx pins */
+ GPIOI->PUPDR = 0x00000000;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+
+/*-- FMC Configuration -------------------------------------------------------*/
+ /* Enable the FMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+
+ /* Configure and enable SDRAM bank1 */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCR[0] = 0x00001954;
+#else
+ FMC_Bank5_6->SDCR[0] = 0x000019E4;
+#endif /* STM32F446xx */
+ FMC_Bank5_6->SDTR[0] = 0x01115351;
+
+ /* SDRAM initialization sequence */
+ /* Clock enable command */
+ FMC_Bank5_6->SDCMR = 0x00000011;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Delay */
+ for (index = 0; index<1000; index++);
+
+ /* PALL command */
+ FMC_Bank5_6->SDCMR = 0x00000012;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Auto refresh command */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCMR = 0x000000F3;
+#else
+ FMC_Bank5_6->SDCMR = 0x00000073;
+#endif /* STM32F446xx */
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* MRD register program */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCMR = 0x00044014;
+#else
+ FMC_Bank5_6->SDCMR = 0x00046014;
+#endif /* STM32F446xx */
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Set refresh count */
+ tmpreg = FMC_Bank5_6->SDRTR;
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1));
+#else
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
+#endif /* STM32F446xx */
+
+ /* Disable write protection */
+ tmpreg = FMC_Bank5_6->SDCR[0];
+ FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
+#endif /* DATA_IN_ExtSDRAM */
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
+ || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
+
+#if defined(DATA_IN_ExtSRAM)
+/*-- GPIOs Configuration -----------------------------------------------------*/
+ /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
+ RCC->AHB1ENR |= 0x00000078;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN);
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x00CCC0CC;
+ GPIOD->AFR[1] = 0xCCCCCCCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xAAAA0A8A;
+ /* Configure PDx pins speed to 100 MHz */
+ GPIOD->OSPEEDR = 0xFFFF0FCF;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00CC0CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA828A;
+ /* Configure PEx pins speed to 100 MHz */
+ GPIOE->OSPEEDR = 0xFFFFC3CF;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0x00CCCCCC;
+ GPIOF->AFR[1] = 0xCCCC0000;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA000AAA;
+ /* Configure PFx pins speed to 100 MHz */
+ GPIOF->OSPEEDR = 0xFF000FFF;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0x00CCCCCC;
+ GPIOG->AFR[1] = 0x000000C0;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0x00085AAA;
+ /* Configure PGx pins speed to 100 MHz */
+ GPIOG->OSPEEDR = 0x000CAFFF;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+/*-- FMC/FSMC Configuration --------------------------------------------------*/
+ /* Enable the FMC/FSMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001011;
+ FMC_Bank1->BTCR[3] = 0x00000201;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#if defined(STM32F469xx) || defined(STM32F479xx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001091;
+ FMC_Bank1->BTCR[3] = 0x00110212;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F469xx || STM32F479xx */
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\
+ || defined(STM32F412Zx) || defined(STM32F412Vx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FSMC_Bank1->BTCR[2] = 0x00001011;
+ FSMC_Bank1->BTCR[3] = 0x00000201;
+ FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF;
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */
+
+#endif /* DATA_IN_ExtSRAM */
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\
+ STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */
+ (void)(tmp);
+}
+#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/tim.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/tim.c
new file mode 100644
index 0000000..09ed69f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/tim.c
@@ -0,0 +1,709 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file tim.c
+ * @brief This file provides code for the configuration
+ * of the TIM instances.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "tim.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+TIM_HandleTypeDef htim1;
+TIM_HandleTypeDef htim2;
+TIM_HandleTypeDef htim3;
+TIM_HandleTypeDef htim4;
+TIM_HandleTypeDef htim6;
+TIM_HandleTypeDef htim9;
+TIM_HandleTypeDef htim14;
+
+/* TIM1 init function */
+void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+ TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 1;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 200;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
+ sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
+ if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
+ sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
+ sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
+ sBreakDeadTimeConfig.DeadTime = 0;
+ sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
+ sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
+ sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
+ if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+ HAL_TIM_MspPostInit(&htim1);
+
+}
+/* TIM2 init function */
+void MX_TIM2_Init(void)
+{
+
+ /* USER CODE BEGIN TIM2_Init 0 */
+
+ /* USER CODE END TIM2_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM2_Init 1 */
+
+ /* USER CODE END TIM2_Init 1 */
+ htim2.Instance = TIM2;
+ htim2.Init.Prescaler = 0;
+ htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim2.Init.Period = 3000;
+ htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM2;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM2_Init 2 */
+
+ /* USER CODE END TIM2_Init 2 */
+ HAL_TIM_MspPostInit(&htim2);
+
+}
+/* TIM3 init function */
+void MX_TIM3_Init(void)
+{
+
+ /* USER CODE BEGIN TIM3_Init 0 */
+
+ /* USER CODE END TIM3_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM3_Init 1 */
+
+ /* USER CODE END TIM3_Init 1 */
+ htim3.Instance = TIM3;
+ htim3.Init.Prescaler = 0;
+ htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim3.Init.Period = 3000;
+ htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM2;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM3_Init 2 */
+
+ /* USER CODE END TIM3_Init 2 */
+ HAL_TIM_MspPostInit(&htim3);
+
+}
+/* TIM4 init function */
+void MX_TIM4_Init(void)
+{
+
+ /* USER CODE BEGIN TIM4_Init 0 */
+
+ /* USER CODE END TIM4_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM4_Init 1 */
+
+ /* USER CODE END TIM4_Init 1 */
+ htim4.Instance = TIM4;
+ htim4.Init.Prescaler = 0;
+ htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim4.Init.Period = 3000;
+ htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM2;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM4_Init 2 */
+
+ /* USER CODE END TIM4_Init 2 */
+ HAL_TIM_MspPostInit(&htim4);
+
+}
+/* TIM6 init function */
+void MX_TIM6_Init(void)
+{
+
+ /* USER CODE BEGIN TIM6_Init 0 */
+
+ /* USER CODE END TIM6_Init 0 */
+
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM6_Init 1 */
+
+ /* USER CODE END TIM6_Init 1 */
+ htim6.Instance = TIM6;
+ htim6.Init.Prescaler = 2;
+ htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim6.Init.Period = 39999;
+ htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM6_Init 2 */
+
+ /* USER CODE END TIM6_Init 2 */
+
+}
+/* TIM9 init function */
+void MX_TIM9_Init(void)
+{
+
+ /* USER CODE BEGIN TIM9_Init 0 */
+
+ /* USER CODE END TIM9_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM9_Init 1 */
+
+ /* USER CODE END TIM9_Init 1 */
+ htim9.Instance = TIM9;
+ htim9.Init.Prescaler = 99;
+ htim9.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim9.Init.Period = 200;
+ htim9.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim9.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim9) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim9, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim9) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim9, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM9_Init 2 */
+
+ /* USER CODE END TIM9_Init 2 */
+ HAL_TIM_MspPostInit(&htim9);
+
+}
+/* TIM14 init function */
+void MX_TIM14_Init(void)
+{
+
+ /* USER CODE BEGIN TIM14_Init 0 */
+
+ /* USER CODE END TIM14_Init 0 */
+
+ /* USER CODE BEGIN TIM14_Init 1 */
+
+ /* USER CODE END TIM14_Init 1 */
+ htim14.Instance = TIM14;
+ htim14.Init.Prescaler = 0;
+ htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim14.Init.Period = 65535;
+ htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM14_Init 2 */
+
+ /* USER CODE END TIM14_Init 2 */
+
+}
+
+void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
+{
+
+ if(tim_baseHandle->Instance==TIM1)
+ {
+ /* USER CODE BEGIN TIM1_MspInit 0 */
+
+ /* USER CODE END TIM1_MspInit 0 */
+ /* TIM1 clock enable */
+ __HAL_RCC_TIM1_CLK_ENABLE();
+ /* USER CODE BEGIN TIM1_MspInit 1 */
+
+ /* USER CODE END TIM1_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM2)
+ {
+ /* USER CODE BEGIN TIM2_MspInit 0 */
+
+ /* USER CODE END TIM2_MspInit 0 */
+ /* TIM2 clock enable */
+ __HAL_RCC_TIM2_CLK_ENABLE();
+ /* USER CODE BEGIN TIM2_MspInit 1 */
+
+ /* USER CODE END TIM2_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM3)
+ {
+ /* USER CODE BEGIN TIM3_MspInit 0 */
+
+ /* USER CODE END TIM3_MspInit 0 */
+ /* TIM3 clock enable */
+ __HAL_RCC_TIM3_CLK_ENABLE();
+ /* USER CODE BEGIN TIM3_MspInit 1 */
+
+ /* USER CODE END TIM3_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspInit 0 */
+
+ /* USER CODE END TIM4_MspInit 0 */
+ /* TIM4 clock enable */
+ __HAL_RCC_TIM4_CLK_ENABLE();
+ /* USER CODE BEGIN TIM4_MspInit 1 */
+
+ /* USER CODE END TIM4_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM6)
+ {
+ /* USER CODE BEGIN TIM6_MspInit 0 */
+
+ /* USER CODE END TIM6_MspInit 0 */
+ /* TIM6 clock enable */
+ __HAL_RCC_TIM6_CLK_ENABLE();
+
+ /* TIM6 interrupt Init */
+ HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
+ /* USER CODE BEGIN TIM6_MspInit 1 */
+
+ /* USER CODE END TIM6_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspInit 0 */
+
+ /* USER CODE END TIM9_MspInit 0 */
+ /* TIM9 clock enable */
+ __HAL_RCC_TIM9_CLK_ENABLE();
+ /* USER CODE BEGIN TIM9_MspInit 1 */
+
+ /* USER CODE END TIM9_MspInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM14)
+ {
+ /* USER CODE BEGIN TIM14_MspInit 0 */
+
+ /* USER CODE END TIM14_MspInit 0 */
+ /* TIM14 clock enable */
+ __HAL_RCC_TIM14_CLK_ENABLE();
+ /* USER CODE BEGIN TIM14_MspInit 1 */
+
+ /* USER CODE END TIM14_MspInit 1 */
+ }
+}
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(timHandle->Instance==TIM1)
+ {
+ /* USER CODE BEGIN TIM1_MspPostInit 0 */
+
+ /* USER CODE END TIM1_MspPostInit 0 */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ /**TIM1 GPIO Configuration
+ PE9 ------> TIM1_CH1
+ PE11 ------> TIM1_CH2
+ PE13 ------> TIM1_CH3
+ PE14 ------> TIM1_CH4
+ */
+ GPIO_InitStruct.Pin = RED_PWM_Pin|GREEN_PWM_Pin|BLUE_PWM_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ GPIO_InitStruct.Pin = HV_PWM_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(HV_PWM_GPIO_Port, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM1_MspPostInit 1 */
+
+ /* USER CODE END TIM1_MspPostInit 1 */
+ }
+ else if(timHandle->Instance==TIM2)
+ {
+ /* USER CODE BEGIN TIM2_MspPostInit 0 */
+
+ /* USER CODE END TIM2_MspPostInit 0 */
+
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ /**TIM2 GPIO Configuration
+ PA1 ------> TIM2_CH2
+ PA2 ------> TIM2_CH3
+ PA3 ------> TIM2_CH4
+ */
+ GPIO_InitStruct.Pin = RV_PWM_1_Pin|RV_PWM_2_Pin|RV_PWM_3_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM2_MspPostInit 1 */
+
+ /* USER CODE END TIM2_MspPostInit 1 */
+ }
+ else if(timHandle->Instance==TIM3)
+ {
+ /* USER CODE BEGIN TIM3_MspPostInit 0 */
+
+ /* USER CODE END TIM3_MspPostInit 0 */
+
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ /**TIM3 GPIO Configuration
+ PC6 ------> TIM3_CH1
+ PC7 ------> TIM3_CH2
+ PC8 ------> TIM3_CH3
+ */
+ GPIO_InitStruct.Pin = LV_PWM_1_Pin|LV_PWM_2_Pin|LV_PWM_3_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM3_MspPostInit 1 */
+
+ /* USER CODE END TIM3_MspPostInit 1 */
+ }
+ else if(timHandle->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspPostInit 0 */
+
+ /* USER CODE END TIM4_MspPostInit 0 */
+
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ /**TIM4 GPIO Configuration
+ PB6 ------> TIM4_CH1
+ PB7 ------> TIM4_CH2
+ PB8 ------> TIM4_CH3
+ */
+ GPIO_InitStruct.Pin = RA_PWM_1_Pin|RA_PWM_2_Pin|RA_PWM_3_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM4_MspPostInit 1 */
+
+ /* USER CODE END TIM4_MspPostInit 1 */
+ }
+ else if(timHandle->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspPostInit 0 */
+
+ /* USER CODE END TIM9_MspPostInit 0 */
+
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ /**TIM9 GPIO Configuration
+ PE6 ------> TIM9_CH2
+ */
+ GPIO_InitStruct.Pin = BUZ_PWM_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF3_TIM9;
+ HAL_GPIO_Init(BUZ_PWM_GPIO_Port, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN TIM9_MspPostInit 1 */
+
+ /* USER CODE END TIM9_MspPostInit 1 */
+ }
+
+}
+
+void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
+{
+
+ if(tim_baseHandle->Instance==TIM1)
+ {
+ /* USER CODE BEGIN TIM1_MspDeInit 0 */
+
+ /* USER CODE END TIM1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM1_CLK_DISABLE();
+ /* USER CODE BEGIN TIM1_MspDeInit 1 */
+
+ /* USER CODE END TIM1_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM2)
+ {
+ /* USER CODE BEGIN TIM2_MspDeInit 0 */
+
+ /* USER CODE END TIM2_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM2_CLK_DISABLE();
+ /* USER CODE BEGIN TIM2_MspDeInit 1 */
+
+ /* USER CODE END TIM2_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM3)
+ {
+ /* USER CODE BEGIN TIM3_MspDeInit 0 */
+
+ /* USER CODE END TIM3_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM3_CLK_DISABLE();
+ /* USER CODE BEGIN TIM3_MspDeInit 1 */
+
+ /* USER CODE END TIM3_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM4)
+ {
+ /* USER CODE BEGIN TIM4_MspDeInit 0 */
+
+ /* USER CODE END TIM4_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM4_CLK_DISABLE();
+ /* USER CODE BEGIN TIM4_MspDeInit 1 */
+
+ /* USER CODE END TIM4_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM6)
+ {
+ /* USER CODE BEGIN TIM6_MspDeInit 0 */
+
+ /* USER CODE END TIM6_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM6_CLK_DISABLE();
+
+ /* TIM6 interrupt Deinit */
+ HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
+ /* USER CODE BEGIN TIM6_MspDeInit 1 */
+
+ /* USER CODE END TIM6_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM9)
+ {
+ /* USER CODE BEGIN TIM9_MspDeInit 0 */
+
+ /* USER CODE END TIM9_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM9_CLK_DISABLE();
+ /* USER CODE BEGIN TIM9_MspDeInit 1 */
+
+ /* USER CODE END TIM9_MspDeInit 1 */
+ }
+ else if(tim_baseHandle->Instance==TIM14)
+ {
+ /* USER CODE BEGIN TIM14_MspDeInit 0 */
+
+ /* USER CODE END TIM14_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_TIM14_CLK_DISABLE();
+ /* USER CODE BEGIN TIM14_MspDeInit 1 */
+
+ /* USER CODE END TIM14_MspDeInit 1 */
+ }
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/usart.c b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/usart.c
new file mode 100644
index 0000000..380178c
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Src/usart.c
@@ -0,0 +1,467 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file usart.c
+ * @brief This file provides code for the configuration
+ * of the USART instances.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "usart.h"
+
+/* USER CODE BEGIN 0 */
+extern adc_struct adc_str;//структура ацп
+uint8_t TX_BUF[TX_PLOAD_WIDTH+1];
+uint8_t MESH_BUF[MESH_PLOAD_WIDTH+1];
+/* USER CODE END 0 */
+
+UART_HandleTypeDef huart1;
+DMA_HandleTypeDef hdma_usart1_tx;
+DMA_HandleTypeDef hdma_usart1_rx;
+
+/* USART1 init function */
+
+void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
+{
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ if(uartHandle->Instance==USART1)
+ {
+ /* USER CODE BEGIN USART1_MspInit 0 */
+
+ /* USER CODE END USART1_MspInit 0 */
+ /* USART1 clock enable */
+ __HAL_RCC_USART1_CLK_ENABLE();
+
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ /**USART1 GPIO Configuration
+ PA9 ------> USART1_TX
+ PA10 ------> USART1_RX
+ */
+ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /* USART1 DMA Init */
+ /* USART1_TX Init */
+ hdma_usart1_tx.Instance = DMA2_Stream7;
+ hdma_usart1_tx.Init.Channel = DMA_CHANNEL_4;
+ hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+ hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_usart1_tx.Init.Mode = DMA_NORMAL;
+ hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW;
+ hdma_usart1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
+ if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx);
+
+ /* USART1_RX Init */
+ hdma_usart1_rx.Instance = DMA2_Stream2;
+ hdma_usart1_rx.Init.Channel = DMA_CHANNEL_4;
+ hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_usart1_rx.Init.Mode = DMA_NORMAL;
+ hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW;
+ hdma_usart1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
+ if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx);
+
+ /* USART1 interrupt Init */
+ HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);
+ HAL_NVIC_EnableIRQ(USART1_IRQn);
+ /* USER CODE BEGIN USART1_MspInit 1 */
+
+ /* USER CODE END USART1_MspInit 1 */
+ }
+}
+
+void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
+{
+
+ if(uartHandle->Instance==USART1)
+ {
+ /* USER CODE BEGIN USART1_MspDeInit 0 */
+
+ /* USER CODE END USART1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_USART1_CLK_DISABLE();
+
+ /**USART1 GPIO Configuration
+ PA9 ------> USART1_TX
+ PA10 ------> USART1_RX
+ */
+ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
+
+ /* USART1 DMA DeInit */
+ HAL_DMA_DeInit(uartHandle->hdmatx);
+ HAL_DMA_DeInit(uartHandle->hdmarx);
+
+ /* USART1 interrupt Deinit */
+ HAL_NVIC_DisableIRQ(USART1_IRQn);
+ /* USER CODE BEGIN USART1_MspDeInit 1 */
+
+ /* USER CODE END USART1_MspDeInit 1 */
+ }
+}
+
+/* USER CODE BEGIN 1 */
+void print_usart(const char *pFormat, ...)
+{
+ va_list ap;
+ static char tbuff[256];
+ static HAL_StatusTypeDef res;
+ // Forward call to vsprintf
+ va_start(ap, pFormat);
+ vsprintf(tbuff, pFormat, ap);
+// HAL_UART_Transmit(&huart1, (unsigned char*)tbuff, strlen(tbuff), 10);
+ res = HAL_UART_Transmit_DMA(&huart1, (unsigned char*)tbuff, strlen(tbuff));
+ va_end(ap);
+}
+
+void ble_control(ctrl_struct* control)
+{
+ if(control->ble_mode_now != control->ble_mode_set)
+ {
+ if(control->ble_mode_set == ble_off)
+ {
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+ control->ble_mode_now = ble_off;
+ }
+ if(control->ble_mode_set == ble_raw)
+ {
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+ HAL_GPIO_WritePin(BLE_PWRC_GPIO_Port, BLE_PWRC_Pin, RESET);
+ HAL_Delay(100);
+ control->ble_mode_now = ble_off;
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, RESET);
+ HAL_Delay(2000);
+// print_usart("AT+ROLE6\r\n");//это режим мастер-слейв в нем устройство потребляет 1мА
+// HAL_Delay(200);
+// print_usart("AT+NAMEIIcd_%04x\r\n",control->serial_number);//set name
+// HAL_Delay(200);
+// print_usart("AT+TYPE1\r\n");//slave
+// HAL_Delay(200);
+// print_usart("AT+PIN%06d\r\n",control->password);//slave
+// HAL_Delay(200);
+// print_usart("AT+BAUD8\r\n");//slave
+// HAL_Delay(200);
+// print_usart("AT+RESET\r\n");//подтверждение настроек
+// HAL_Delay(1000);
+ HAL_GPIO_WritePin(BLE_PWRC_GPIO_Port, BLE_PWRC_Pin, SET);
+ control->ble_mode_now = ble_raw;
+ }
+ if(control->ble_mode_set == ble_mesh)
+ {
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+ HAL_GPIO_WritePin(BLE_PWRC_GPIO_Port, BLE_PWRC_Pin, RESET);
+ HAL_Delay(100);
+ control->ble_mode_now = ble_off;
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, RESET);
+ HAL_Delay(2000);
+ print_usart("AT+ROLE5\r\n");//в режиме MESH 4мА
+ HAL_Delay(100);
+ print_usart("AT+MADDR%04x\r\n",control->serial_number);//адрес в сети должен быть разным у всех устройств сети
+ HAL_Delay(100);
+ print_usart("AT+NETID%04x\r\n",control->mesh_netid);//номер сети должен быть одним у всех устройсв сети
+ HAL_Delay(100);
+ print_usart("AT+NAMEECG_MESH_%04x\r\n",control->serial_number);//set name
+ HAL_Delay(100);
+ print_usart("AT+RESET\r\n");//подтверждение настроек
+ HAL_Delay(1000);
+ HAL_GPIO_WritePin(BLE_PWRC_GPIO_Port, BLE_PWRC_Pin, SET);
+ control->ble_mode_now = ble_mesh;
+ }
+ }
+}
+void ble_deinit(void)
+{
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+}
+
+
+void float2Bytes(float float_variable,uint8_t bytes_temp[4])
+{
+ memcpy(bytes_temp, (unsigned char*) (&float_variable), 4);
+}
+
+
+void ble_HEX_new(ctrl_struct *control, icd_str *icd_str, adc_struct *adc, bool send)
+{
+ TX_BUF[0] = 0x55; //стартовый байт
+
+ static uint8_t bytes[4];
+
+ TX_BUF[1] = (icd_str->counter >> 24) & 0xFF;
+ TX_BUF[2] = (icd_str->counter >> 16) & 0xFF;
+ TX_BUF[3] = (icd_str->counter >> 8) & 0xFF;
+ TX_BUF[4] = (icd_str->counter & 0xFF);
+
+ float2Bytes(icd_str->ecg_rv_din_treshold, &bytes[0]); //fixme временно
+
+ TX_BUF[5] = bytes[0];
+ TX_BUF[6] = bytes[1];
+ TX_BUF[7] = bytes[2];
+ TX_BUF[8] = bytes[3];
+
+ float2Bytes(icd_str->ecg_rv_pos_sig, &bytes[0]);
+
+ TX_BUF[9] = bytes[0];
+ TX_BUF[10] = bytes[1];
+ TX_BUF[11] = bytes[2];
+ TX_BUF[12] = bytes[3];
+
+ if (icd_str->dc_cut)
+ float2Bytes((icd_str->ecg_rv_filt - icd_str->ecg_rv_mov_av), &bytes[0]);
+ else
+ float2Bytes((icd_str->ecg_rv_filt), &bytes[0]);
+
+ TX_BUF[13] = bytes[0];
+ TX_BUF[14] = bytes[1];
+ TX_BUF[15] = bytes[2];
+ TX_BUF[16] = bytes[3];
+
+ TX_BUF[17] = ((icd_str->last_RR_poz_rel * 5) >> 8) & 0xFF;
+ TX_BUF[18] = ((icd_str->last_RR_poz_rel * 5) & 0xFF);
+
+ TX_BUF[19] = (((uint8_t) icd_str->search_now_mode & 0x7) << 5) | (((uint8_t) icd_str->sub_mode & 0x7) << 2)
+ | (((uint8_t) icd_str->terapy_now & 0x3) << 0);
+
+ TX_BUF[20] = (((uint8_t) icd_str->filter_on & 0x1) << 7) | (((uint8_t) icd_str->work_set_mode & 0x3) << 5)
+ | (((uint8_t) icd_str->LV_on & 0x1) << 4) | (((uint8_t) icd_str->HV_on & 0x1) << 3)
+ | (((uint8_t) icd_str->rr_now & 0x1) << 2) | (((uint8_t) icd_str->last_QRS & 0x3) << 0);
+
+ //не будем выпендриваться займём 8последних байт
+ if (icd_str->counter % 12 == 0)
+ {
+ float2Bytes(icd_str->min_tres, &bytes[0]);
+ TX_BUF[23] = bytes[0];
+ TX_BUF[24] = bytes[1];
+ TX_BUF[25] = bytes[2];
+ TX_BUF[26] = bytes[3];
+
+ float2Bytes(icd_str->max_tres, &bytes[0]); //fixme временно
+ TX_BUF[27] = bytes[0];
+ TX_BUF[28] = bytes[1];
+ TX_BUF[29] = bytes[2];
+ TX_BUF[30] = bytes[3];
+
+ }
+ else if (icd_str->counter % 12 == 1)
+ {
+ float2Bytes(icd_str->square_coef, &bytes[0]);
+ TX_BUF[23] = bytes[0];
+ TX_BUF[24] = bytes[1];
+ TX_BUF[25] = bytes[2];
+ TX_BUF[26] = bytes[3];
+
+ float2Bytes(icd_str->triangle_coef, &bytes[0]); //fixme временно
+ TX_BUF[27] = bytes[0];
+ TX_BUF[28] = bytes[1];
+ TX_BUF[29] = bytes[2];
+ TX_BUF[30] = bytes[3];
+ }
+ else if (icd_str->counter % 12 == 2)
+ {
+ // время слепоты при включении
+ TX_BUF[23] = ((icd_str->start_up_time * 5) >> 8) & 0xFF;
+ TX_BUF[24] = ((icd_str->start_up_time * 5) & 0xFF);
+ // время поиска в базовом режиме с минимальным порогом
+ TX_BUF[25] = ((icd_str->base_time * 5) >> 8) & 0xFF;
+ TX_BUF[26] = ((icd_str->base_time * 5) & 0xFF);
+ // Время в мс которое алгоритм ищет максимум
+ TX_BUF[27] = ((icd_str->max_search_time * 5) >> 8) & 0xFF;
+ TX_BUF[28] = ((icd_str->max_search_time * 5) & 0xFF);
+ // Время в мс нахождения в режиме поиска квадратов
+ TX_BUF[29] = ((icd_str->square_time * 5) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->square_time * 5) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 3)
+ {
+ TX_BUF[24] = (((uint8_t) icd_str->dc_cut & 0x1) << 3) | (((uint8_t) icd_str->sd_card & 0x1) << 2)
+ | (((uint8_t) icd_str->active_ch & 0x3) << 0);
+ //сопротивление потенциометра
+ TX_BUF[25] = (icd_str->spi_pot_set) & 0xFF;
+ //напряжение в процентах
+ TX_BUF[26] = ((adc_str.bat_pers) & 0xFF);
+ //напряжение на АКБ
+ TX_BUF[27] = ((adc_str.bat_volt) >> 8) & 0xFF;
+ TX_BUF[28] = ((adc_str.bat_volt) & 0xFF);
+ //напряжение на конденсаторе
+ TX_BUF[29] = ((adc_str.hv_volt) >> 8) & 0xFF;
+ TX_BUF[30] = ((adc_str.hv_volt) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 4)
+ {
+ // время слепоты при включении
+ TX_BUF[23] = ((icd_str->lv_stop_time * 5) >> 8) & 0xFF;
+ TX_BUF[24] = ((icd_str->lv_stop_time * 5) & 0xFF);
+ // время на весь qrs
+ TX_BUF[25] = ((icd_str->max_time * 5) >> 8) & 0xFF;
+ TX_BUF[26] = ((icd_str->max_time * 5) & 0xFF);
+ // время между последним и предпоследним событием
+ TX_BUF[27] = ((icd_str->last_period * 5) >> 8) & 0xFF;
+ TX_BUF[28] = ((icd_str->last_period * 5) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 5)
+ {
+ //счётчик собственных сокращений сердца 24 бита
+ TX_BUF[23] = ((icd_str->Vs_cnt) >> 16) & 0xFF;
+ TX_BUF[24] = ((icd_str->Vs_cnt) >> 8) & 0xFF;
+ TX_BUF[25] = ((icd_str->Vs_cnt) & 0xFF);
+ //счётчик собственных сокращений которые в шуме(не детектируется
+ TX_BUF[26] = ((icd_str->Vn_cnt) >> 8) & 0xFF;
+ TX_BUF[27] = ((icd_str->Vn_cnt) & 0xFF);
+ //счётчик принудительных стимуляций сердца низким напряжением(низковольтная стимуляция)
+ TX_BUF[28] = ((icd_str->Vp_cnt) >> 16) & 0xFF;
+ TX_BUF[29] = ((icd_str->Vp_cnt) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->Vp_cnt) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 6)
+ {
+ //порог периода фибриляции если период меньше, чем это число это фибриляция
+ TX_BUF[23] = ((icd_str->fibr_tres * 5) >> 8) & 0xFF;
+ TX_BUF[24] = ((icd_str->fibr_tres * 5) & 0xFF);
+ //порог периода Тахикардии 2 если период меньше, чем это число это Тахикардия 2
+ TX_BUF[25] = ((icd_str->tachy_2_tres * 5) >> 8) & 0xFF;
+ TX_BUF[26] = ((icd_str->tachy_2_tres * 5) & 0xFF);
+ //порог периода Тахикардии 1 если период меньше, чем это число это Тахикардия 1
+ TX_BUF[27] = ((icd_str->tachy_1_tres * 5) >> 8) & 0xFF;
+ TX_BUF[28] = ((icd_str->tachy_1_tres * 5) & 0xFF);
+ //сбрасываемый счётчик Vs событи
+ TX_BUF[29] = ((icd_str->vs_cnt_last) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->vs_cnt_last) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 7)
+ {
+ //фильтрованный скользящим средним период
+ TX_BUF[23] = ((icd_str->filt_period * 5) >> 8) & 0xFF;
+ TX_BUF[24] = ((icd_str->filt_period * 5) & 0xFF);
+ //счётчик фибриляции при обнаружении короткого RR он растёт
+ TX_BUF[25] = ((icd_str->fibr_cnt) & 0xFF);
+ //счётчик Тахикардии 2 при обнаружении короткого RR он растёт
+ TX_BUF[26] = ((icd_str->tachy_2_cnt) & 0xFF);
+ //счётчик Тахикардии 1 при обнаружении короткого RR он растёт
+ TX_BUF[27] = ((icd_str->tachy_1_cnt) & 0xFF);
+ //счётчик нормальных событий при достижении 5 сбрасываем все корзины
+ TX_BUF[28] = ((icd_str->norm_cnt) & 0xFF);
+ //порог счётчика фибриляций при котором начинаем терапию
+ TX_BUF[29] = ((icd_str->fibr_max_tres) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 8)
+ {
+ //фильтрованный скользящим средним период
+ TX_BUF[23] = (((uint8_t) icd_str->hv_step_number & 0xF) << 4) | (((uint8_t) icd_str->hv_step_cnt & 0xF) << 0);
+ //сколько джоулей в одном шаге считаем в зависимости от минимума и максимума.
+ TX_BUF[24] = ((icd_str->hv_step_energy) >> 8) & 0xFF;
+ TX_BUF[25] = ((icd_str->hv_step_energy) & 0xFF);
+ //так как всегда мало потратим 1 байт
+ TX_BUF[26] = (icd_str->min_energy) & 0xFF;
+ //текущая энергия конденсатора
+ TX_BUF[27] = ((icd_str->now_energy) >> 8) & 0xFF;
+ TX_BUF[28] = ((icd_str->now_energy) & 0xFF);
+ //максимальная энергия конденсатора
+ TX_BUF[29] = ((icd_str->max_energy) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->max_energy) & 0xFF);
+ }
+ else if (icd_str->counter % 12 == 9)
+ {
+ //время которое мы слепы после HV разряда
+ TX_BUF[23] = ((icd_str->hv_blind_time * 5) >> 8) & 0xFF;
+ TX_BUF[24] = ((icd_str->hv_blind_time * 5) & 0xFF);
+ //какой длинны мы заполныем буффер при редетекции//сколько нам нужно плохих событий для запуска терапии
+ TX_BUF[25] = (((uint8_t) icd_str->redet_num & 0xF) << 4) | ((uint8_t) icd_str->redet_bad & 0xF);
+ //сколько всего событий в редетекции//сколько реально плохих событий
+ TX_BUF[26] = (((uint8_t) icd_str->redet_cnt & 0xF) << 4) | (((uint8_t) icd_str->redet_bad_cnt & 0xF) << 0);
+ //время которое мы ничего не делаем если терапия не сработала
+ TX_BUF[27] = ((icd_str->standby_timer) >> 24) & 0xFF;
+ TX_BUF[28] = ((icd_str->standby_timer) >> 16) & 0xFF;
+ TX_BUF[29] = ((icd_str->standby_timer) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->standby_timer) & 0xFF);
+ }
+
+ else if (icd_str->counter % 12 == 10)
+ {
+ //новое про низкое напряжение
+ TX_BUF[23] = (((uint8_t) icd_str->lv_polarity & 0x3) << 4) | (((uint8_t) icd_str->lv_mode & 0xF) << 0);
+ TX_BUF[24] = ((icd_str->lv_shock_time) & 0xFF); //время импульса низковольной стимуляции 1-20(0,1-2мс) одна единица 0,1мс шаг 0.1мс
+ TX_BUF[25] = ((icd_str->lv_relax_time) & 0xFF); //время стабилизации после удара низковольной стимуляции 0-20(0-20мс) одна единица 1мс шаг 1мс
+ TX_BUF[26] = ((icd_str->lv_voltage) & 0xFF); //какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ TX_BUF[27] = ((icd_str->BURST_cnt) & 0xFF); //сколько импульсов в одной пачке 5-50 одна единица 1 импульс шаг 1 импульс
+ TX_BUF[28] = ((icd_str->BURST_voltage) & 0xFF); //какое напряжение у импульсов 10-80(1,0-8,0В) одна единица 0,1В шаг 0,1В
+ //период следования импульсов в мс 150-500мс одна единица 1мс шаг 10 мс на ползунке
+ TX_BUF[29] = ((icd_str->BURST_period) >> 8) & 0xFF;
+ TX_BUF[30] = ((icd_str->BURST_period) & 0xFF);
+ }
+
+ else if (icd_str->counter % 12 == 11)
+ {
+ //новое про высокое напряжение
+ TX_BUF[23] = (((uint8_t) icd_str->hv_polarity & 0x3) << 2) | (((uint8_t) icd_str->hv_mode & 0x3) << 0);
+ TX_BUF[24] = ((icd_str->hv_phase_1_duration) & 0xFF);// время в десятых мс приходящееся на 1 фазу 30-120(3-12мс) одна единица 0,1мс
+ TX_BUF[25] = ((icd_str->hv_phase_2_duration) & 0xFF);// время в десятых мс приходящееся на 2 фазу 20-100(2-10мс) одна единица 0,1мс
+ TX_BUF[26] = ((icd_str->hv_switch_duration) & 0xFF);// время в десятых мс приходящееся на переключение между фазами 10-30(1-3мс) одна единица 0,1мс
+ TX_BUF[27] = ((icd_str->hv_switching_voltage) & 0xFF);//процент напряжения при котором происходит завешение 1 фазы при адаптивном режиме (20-80) одна единица 1%
+ TX_BUF[28] = ((icd_str->hv_cutoff_voltage) & 0xFF); //процент напряжения при котором происходит завешение 2 фазы при адаптивном режиме (5-50) одна единица 1%
+ }
+ TX_BUF[31] = 0x77; //конечный байт
+ //данные шлём не всегда.
+ if ((control->ble_mode_set == ble_raw) && (control->ble_mode_now == ble_raw))
+ if (send)
+ HAL_UART_Transmit_DMA(&huart1, TX_BUF, TX_PLOAD_WIDTH); //TX_PLOAD_WIDTH);//было до этого TX_PLOAD_WIDTH+1 но работало не очень
+}
+/* USER CODE END 1 */
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Startup/startup_stm32f413vgtx.s b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Startup/startup_stm32f413vgtx.s
new file mode 100644
index 0000000..8b6b0aa
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Core/Startup/startup_stm32f413vgtx.s
@@ -0,0 +1,568 @@
+/**
+ ******************************************************************************
+ * @file startup_stm32f413xx.s
+ * @author MCD Application Team
+ * @brief STM32F413xx Devices vector table for GCC based toolchains.
+ * This module performs:
+ * - Set the initial SP
+ * - Set the initial PC == Reset_Handler,
+ * - Set the vector table entries with the exceptions ISR address
+ * - Branches to main in the C library (which eventually
+ * calls main()).
+ * After Reset the Cortex-M4 processor is in Thread mode,
+ * priority is Privileged, and the Stack is set to Main.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+ .syntax unified
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
+
+.global g_pfnVectors
+.global Default_Handler
+
+/* start address for the initialization values of the .data section.
+defined in linker script */
+.word _sidata
+/* start address for the .data section. defined in linker script */
+.word _sdata
+/* end address for the .data section. defined in linker script */
+.word _edata
+/* start address for the .bss section. defined in linker script */
+.word _sbss
+/* end address for the .bss section. defined in linker script */
+.word _ebss
+/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
+
+/**
+ * @brief This is the code that gets called when the processor first
+ * starts execution following a reset event. Only the absolutely
+ * necessary set is performed, after which the application
+ * supplied main() routine is called.
+ * @param None
+ * @retval : None
+*/
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr sp, =_estack /* set stack pointer */
+
+/* Call the clock system initialization function.*/
+ bl SystemInit
+
+/* Copy the data segment initializers from flash to SRAM */
+ ldr r0, =_sdata
+ ldr r1, =_edata
+ ldr r2, =_sidata
+ movs r3, #0
+ b LoopCopyDataInit
+
+CopyDataInit:
+ ldr r4, [r2, r3]
+ str r4, [r0, r3]
+ adds r3, r3, #4
+
+LoopCopyDataInit:
+ adds r4, r0, r3
+ cmp r4, r1
+ bcc CopyDataInit
+
+/* Zero fill the bss segment. */
+ ldr r2, =_sbss
+ ldr r4, =_ebss
+ movs r3, #0
+ b LoopFillZerobss
+
+FillZerobss:
+ str r3, [r2]
+ adds r2, r2, #4
+
+LoopFillZerobss:
+ cmp r2, r4
+ bcc FillZerobss
+
+/* Call static constructors */
+ bl __libc_init_array
+/* Call the application's entry point.*/
+ bl main
+ bx lr
+.size Reset_Handler, .-Reset_Handler
+
+/**
+ * @brief This is the code that gets called when the processor receives an
+ * unexpected interrupt. This simply enters an infinite loop, preserving
+ * the system state for examination by a debugger.
+ * @param None
+ * @retval None
+*/
+ .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
+/******************************************************************************
+*
+* The minimal vector table for a Cortex M3. Note that the proper constructs
+* must be placed on this to ensure that it ends up at physical address
+* 0x0000.0000.
+*
+*******************************************************************************/
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+
+g_pfnVectors:
+ .word _estack
+ .word Reset_Handler
+ .word NMI_Handler
+ .word HardFault_Handler
+ .word MemManage_Handler
+ .word BusFault_Handler
+ .word UsageFault_Handler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word SVC_Handler
+ .word DebugMon_Handler
+ .word 0
+ .word PendSV_Handler
+ .word SysTick_Handler
+
+ /* External Interrupts */
+ .word WWDG_IRQHandler /* Window WatchDog */
+ .word PVD_IRQHandler /* PVD through EXTI Line detection */
+ .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
+ .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
+ .word FLASH_IRQHandler /* FLASH */
+ .word RCC_IRQHandler /* RCC */
+ .word EXTI0_IRQHandler /* EXTI Line0 */
+ .word EXTI1_IRQHandler /* EXTI Line1 */
+ .word EXTI2_IRQHandler /* EXTI Line2 */
+ .word EXTI3_IRQHandler /* EXTI Line3 */
+ .word EXTI4_IRQHandler /* EXTI Line4 */
+ .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
+ .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
+ .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
+ .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */
+ .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */
+ .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
+ .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
+ .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
+ .word CAN1_TX_IRQHandler /* CAN1 TX */
+ .word CAN1_RX0_IRQHandler /* CAN1 RX0 */
+ .word CAN1_RX1_IRQHandler /* CAN1 RX1 */
+ .word CAN1_SCE_IRQHandler /* CAN1 SCE */
+ .word EXTI9_5_IRQHandler /* External Line[9:5]s */
+ .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
+ .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
+ .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
+ .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
+ .word TIM2_IRQHandler /* TIM2 */
+ .word TIM3_IRQHandler /* TIM3 */
+ .word TIM4_IRQHandler /* TIM4 */
+ .word I2C1_EV_IRQHandler /* I2C1 Event */
+ .word I2C1_ER_IRQHandler /* I2C1 Error */
+ .word I2C2_EV_IRQHandler /* I2C2 Event */
+ .word I2C2_ER_IRQHandler /* I2C2 Error */
+ .word SPI1_IRQHandler /* SPI1 */
+ .word SPI2_IRQHandler /* SPI2 */
+ .word USART1_IRQHandler /* USART1 */
+ .word USART2_IRQHandler /* USART2 */
+ .word USART3_IRQHandler /* USART3 */
+ .word EXTI15_10_IRQHandler /* External Line[15:10]s */
+ .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
+ .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
+ .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */
+ .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */
+ .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */
+ .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */
+ .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
+ .word FSMC_IRQHandler /* FSMC */
+ .word SDIO_IRQHandler /* SDIO */
+ .word TIM5_IRQHandler /* TIM5 */
+ .word SPI3_IRQHandler /* SPI3 */
+ .word UART4_IRQHandler /* UART4 */
+ .word UART5_IRQHandler /* UART5 */
+ .word TIM6_DAC_IRQHandler /* TIM6, DAC1 and DAC2 */
+ .word TIM7_IRQHandler /* TIM7 */
+ .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
+ .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
+ .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
+ .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */
+ .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */
+ .word DFSDM1_FLT0_IRQHandler /* DFSDM1 Filter0 */
+ .word DFSDM1_FLT1_IRQHandler /* DFSDM1 Filter1 */
+ .word CAN2_TX_IRQHandler /* CAN2 TX */
+ .word CAN2_RX0_IRQHandler /* CAN2 RX0 */
+ .word CAN2_RX1_IRQHandler /* CAN2 RX1 */
+ .word CAN2_SCE_IRQHandler /* CAN2 SCE */
+ .word OTG_FS_IRQHandler /* USB OTG FS */
+ .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
+ .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
+ .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
+ .word USART6_IRQHandler /* USART6 */
+ .word I2C3_EV_IRQHandler /* I2C3 event */
+ .word I2C3_ER_IRQHandler /* I2C3 error */
+ .word CAN3_TX_IRQHandler /* CAN3 TX */
+ .word CAN3_RX0_IRQHandler /* CAN3 RX0 */
+ .word CAN3_RX1_IRQHandler /* CAN3 RX1 */
+ .word CAN3_SCE_IRQHandler /* CAN3 SCE */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word RNG_IRQHandler /* RNG */
+ .word FPU_IRQHandler /* FPU */
+ .word UART7_IRQHandler /* UART7 */
+ .word UART8_IRQHandler /* UART8 */
+ .word SPI4_IRQHandler /* SPI4 */
+ .word SPI5_IRQHandler /* SPI5 */
+ .word 0 /* Reserved */
+ .word SAI1_IRQHandler /* SAI1 */
+ .word UART9_IRQHandler /* UART9 */
+ .word UART10_IRQHandler /* UART10 */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word QUADSPI_IRQHandler /* QuadSPI */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word FMPI2C1_EV_IRQHandler /* FMPI2C1 Event */
+ .word FMPI2C1_ER_IRQHandler /* FMPI2C1 Error */
+ .word LPTIM1_IRQHandler /* LPTIM1 */
+ .word DFSDM2_FLT0_IRQHandler /* DFSDM2 Filter0 */
+ .word DFSDM2_FLT1_IRQHandler /* DFSDM2 Filter1 */
+ .word DFSDM2_FLT2_IRQHandler /* DFSDM2 Filter2 */
+ .word DFSDM2_FLT3_IRQHandler /* DFSDM2 Filter3 */
+
+
+ .size g_pfnVectors, .-g_pfnVectors
+
+/*******************************************************************************
+*
+* Provide weak aliases for each Exception handler to the Default_Handler.
+* As they are weak aliases, any function with the same name will override
+* this definition.
+*
+*******************************************************************************/
+ .weak NMI_Handler
+ .thumb_set NMI_Handler,Default_Handler
+
+ .weak HardFault_Handler
+ .thumb_set HardFault_Handler,Default_Handler
+
+ .weak MemManage_Handler
+ .thumb_set MemManage_Handler,Default_Handler
+
+ .weak BusFault_Handler
+ .thumb_set BusFault_Handler,Default_Handler
+
+ .weak UsageFault_Handler
+ .thumb_set UsageFault_Handler,Default_Handler
+
+ .weak SVC_Handler
+ .thumb_set SVC_Handler,Default_Handler
+
+ .weak DebugMon_Handler
+ .thumb_set DebugMon_Handler,Default_Handler
+
+ .weak PendSV_Handler
+ .thumb_set PendSV_Handler,Default_Handler
+
+ .weak SysTick_Handler
+ .thumb_set SysTick_Handler,Default_Handler
+
+ .weak WWDG_IRQHandler
+ .thumb_set WWDG_IRQHandler,Default_Handler
+
+ .weak PVD_IRQHandler
+ .thumb_set PVD_IRQHandler,Default_Handler
+
+ .weak TAMP_STAMP_IRQHandler
+ .thumb_set TAMP_STAMP_IRQHandler,Default_Handler
+
+ .weak RTC_WKUP_IRQHandler
+ .thumb_set RTC_WKUP_IRQHandler,Default_Handler
+
+ .weak FLASH_IRQHandler
+ .thumb_set FLASH_IRQHandler,Default_Handler
+
+ .weak RCC_IRQHandler
+ .thumb_set RCC_IRQHandler,Default_Handler
+
+ .weak EXTI0_IRQHandler
+ .thumb_set EXTI0_IRQHandler,Default_Handler
+
+ .weak EXTI1_IRQHandler
+ .thumb_set EXTI1_IRQHandler,Default_Handler
+
+ .weak EXTI2_IRQHandler
+ .thumb_set EXTI2_IRQHandler,Default_Handler
+
+ .weak EXTI3_IRQHandler
+ .thumb_set EXTI3_IRQHandler,Default_Handler
+
+ .weak EXTI4_IRQHandler
+ .thumb_set EXTI4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream0_IRQHandler
+ .thumb_set DMA1_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream1_IRQHandler
+ .thumb_set DMA1_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream2_IRQHandler
+ .thumb_set DMA1_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream3_IRQHandler
+ .thumb_set DMA1_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream4_IRQHandler
+ .thumb_set DMA1_Stream4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream5_IRQHandler
+ .thumb_set DMA1_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream6_IRQHandler
+ .thumb_set DMA1_Stream6_IRQHandler,Default_Handler
+
+ .weak ADC_IRQHandler
+ .thumb_set ADC_IRQHandler,Default_Handler
+
+ .weak CAN1_TX_IRQHandler
+ .thumb_set CAN1_TX_IRQHandler,Default_Handler
+
+ .weak CAN1_RX0_IRQHandler
+ .thumb_set CAN1_RX0_IRQHandler,Default_Handler
+
+ .weak CAN1_RX1_IRQHandler
+ .thumb_set CAN1_RX1_IRQHandler,Default_Handler
+
+ .weak CAN1_SCE_IRQHandler
+ .thumb_set CAN1_SCE_IRQHandler,Default_Handler
+
+ .weak EXTI9_5_IRQHandler
+ .thumb_set EXTI9_5_IRQHandler,Default_Handler
+
+ .weak TIM1_BRK_TIM9_IRQHandler
+ .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
+
+ .weak TIM1_UP_TIM10_IRQHandler
+ .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
+
+ .weak TIM1_TRG_COM_TIM11_IRQHandler
+ .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
+
+ .weak TIM1_CC_IRQHandler
+ .thumb_set TIM1_CC_IRQHandler,Default_Handler
+
+ .weak TIM2_IRQHandler
+ .thumb_set TIM2_IRQHandler,Default_Handler
+
+ .weak TIM3_IRQHandler
+ .thumb_set TIM3_IRQHandler,Default_Handler
+
+ .weak TIM4_IRQHandler
+ .thumb_set TIM4_IRQHandler,Default_Handler
+
+ .weak I2C1_EV_IRQHandler
+ .thumb_set I2C1_EV_IRQHandler,Default_Handler
+
+ .weak I2C1_ER_IRQHandler
+ .thumb_set I2C1_ER_IRQHandler,Default_Handler
+
+ .weak I2C2_EV_IRQHandler
+ .thumb_set I2C2_EV_IRQHandler,Default_Handler
+
+ .weak I2C2_ER_IRQHandler
+ .thumb_set I2C2_ER_IRQHandler,Default_Handler
+
+ .weak SPI1_IRQHandler
+ .thumb_set SPI1_IRQHandler,Default_Handler
+
+ .weak SPI2_IRQHandler
+ .thumb_set SPI2_IRQHandler,Default_Handler
+
+ .weak USART1_IRQHandler
+ .thumb_set USART1_IRQHandler,Default_Handler
+
+ .weak USART2_IRQHandler
+ .thumb_set USART2_IRQHandler,Default_Handler
+
+ .weak USART3_IRQHandler
+ .thumb_set USART3_IRQHandler,Default_Handler
+
+ .weak EXTI15_10_IRQHandler
+ .thumb_set EXTI15_10_IRQHandler,Default_Handler
+
+ .weak RTC_Alarm_IRQHandler
+ .thumb_set RTC_Alarm_IRQHandler,Default_Handler
+
+ .weak OTG_FS_WKUP_IRQHandler
+ .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
+
+ .weak TIM8_BRK_TIM12_IRQHandler
+ .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler
+
+ .weak TIM8_UP_TIM13_IRQHandler
+ .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler
+
+ .weak TIM8_TRG_COM_TIM14_IRQHandler
+ .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
+
+ .weak TIM8_CC_IRQHandler
+ .thumb_set TIM8_CC_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream7_IRQHandler
+ .thumb_set DMA1_Stream7_IRQHandler,Default_Handler
+
+ .weak FSMC_IRQHandler
+ .thumb_set FSMC_IRQHandler,Default_Handler
+
+ .weak SDIO_IRQHandler
+ .thumb_set SDIO_IRQHandler,Default_Handler
+
+ .weak TIM5_IRQHandler
+ .thumb_set TIM5_IRQHandler,Default_Handler
+
+ .weak SPI3_IRQHandler
+ .thumb_set SPI3_IRQHandler,Default_Handler
+
+ .weak UART4_IRQHandler
+ .thumb_set UART4_IRQHandler,Default_Handler
+
+ .weak UART5_IRQHandler
+ .thumb_set UART5_IRQHandler,Default_Handler
+
+ .weak TIM6_DAC_IRQHandler
+ .thumb_set TIM6_DAC_IRQHandler,Default_Handler
+
+ .weak TIM7_IRQHandler
+ .thumb_set TIM7_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream0_IRQHandler
+ .thumb_set DMA2_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream1_IRQHandler
+ .thumb_set DMA2_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream2_IRQHandler
+ .thumb_set DMA2_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream3_IRQHandler
+ .thumb_set DMA2_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream4_IRQHandler
+ .thumb_set DMA2_Stream4_IRQHandler,Default_Handler
+
+ .weak DFSDM1_FLT0_IRQHandler
+ .thumb_set DFSDM1_FLT0_IRQHandler,Default_Handler
+
+ .weak DFSDM1_FLT1_IRQHandler
+ .thumb_set DFSDM1_FLT1_IRQHandler,Default_Handler
+
+ .weak CAN2_TX_IRQHandler
+ .thumb_set CAN2_TX_IRQHandler,Default_Handler
+
+ .weak CAN2_RX0_IRQHandler
+ .thumb_set CAN2_RX0_IRQHandler,Default_Handler
+
+ .weak CAN2_RX1_IRQHandler
+ .thumb_set CAN2_RX1_IRQHandler,Default_Handler
+
+ .weak CAN2_SCE_IRQHandler
+ .thumb_set CAN2_SCE_IRQHandler,Default_Handler
+
+ .weak OTG_FS_IRQHandler
+ .thumb_set OTG_FS_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream5_IRQHandler
+ .thumb_set DMA2_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream6_IRQHandler
+ .thumb_set DMA2_Stream6_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream7_IRQHandler
+ .thumb_set DMA2_Stream7_IRQHandler,Default_Handler
+
+ .weak USART6_IRQHandler
+ .thumb_set USART6_IRQHandler,Default_Handler
+
+ .weak I2C3_EV_IRQHandler
+ .thumb_set I2C3_EV_IRQHandler,Default_Handler
+
+ .weak I2C3_ER_IRQHandler
+ .thumb_set I2C3_ER_IRQHandler,Default_Handler
+
+ .weak CAN3_TX_IRQHandler
+ .thumb_set CAN3_TX_IRQHandler,Default_Handler
+
+ .weak CAN3_RX0_IRQHandler
+ .thumb_set CAN3_RX0_IRQHandler,Default_Handler
+
+ .weak CAN3_RX1_IRQHandler
+ .thumb_set CAN3_RX1_IRQHandler,Default_Handler
+
+ .weak CAN3_SCE_IRQHandler
+ .thumb_set CAN3_SCE_IRQHandler,Default_Handler
+
+ .weak RNG_IRQHandler
+ .thumb_set RNG_IRQHandler,Default_Handler
+
+ .weak FPU_IRQHandler
+ .thumb_set FPU_IRQHandler,Default_Handler
+
+ .weak UART7_IRQHandler
+ .thumb_set UART7_IRQHandler,Default_Handler
+
+ .weak UART8_IRQHandler
+ .thumb_set UART8_IRQHandler,Default_Handler
+
+ .weak SPI4_IRQHandler
+ .thumb_set SPI4_IRQHandler,Default_Handler
+
+ .weak SPI5_IRQHandler
+ .thumb_set SPI5_IRQHandler,Default_Handler
+
+ .weak SAI1_IRQHandler
+ .thumb_set SAI1_IRQHandler,Default_Handler
+
+ .weak UART9_IRQHandler
+ .thumb_set UART9_IRQHandler,Default_Handler
+
+ .weak UART10_IRQHandler
+ .thumb_set UART10_IRQHandler,Default_Handler
+
+ .weak QUADSPI_IRQHandler
+ .thumb_set QUADSPI_IRQHandler,Default_Handler
+
+ .weak FMPI2C1_EV_IRQHandler
+ .thumb_set FMPI2C1_EV_IRQHandler,Default_Handler
+
+ .weak FMPI2C1_ER_IRQHandler
+ .thumb_set FMPI2C1_ER_IRQHandler,Default_Handler
+
+ .weak LPTIM1_IRQHandler
+ .thumb_set LPTIM1_IRQHandler,Default_Handler
+
+ .weak DFSDM2_FLT0_IRQHandler
+ .thumb_set DFSDM2_FLT0_IRQHandler,Default_Handler
+
+ .weak DFSDM2_FLT1_IRQHandler
+ .thumb_set DFSDM2_FLT1_IRQHandler,Default_Handler
+
+ .weak DFSDM2_FLT2_IRQHandler
+ .thumb_set DFSDM2_FLT2_IRQHandler,Default_Handler
+
+ .weak DFSDM2_FLT3_IRQHandler
+ .thumb_set DFSDM2_FLT3_IRQHandler,Default_Handler
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.cyclo
new file mode 100644
index 0000000..09f06a4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.cyclo
@@ -0,0 +1,5 @@
+../Core/Src/adc.c:30:6:MX_ADC1_Init 10
+../Core/Src/adc.c:141:6:HAL_ADC_MspInit 2
+../Core/Src/adc.c:182:6:HAL_ADC_MspDeInit 2
+../Core/Src/adc.c:216:9:volt_to_pers 3
+../Core/Src/adc.c:233:6:adc_read 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.d
new file mode 100644
index 0000000..785c1a5
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.d
@@ -0,0 +1,67 @@
+Core/Src/adc.o: ../Core/Src/adc.c ../Core/Inc/adc.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/adc.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.o
new file mode 100644
index 0000000..fdeada0
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.su
new file mode 100644
index 0000000..82f066a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/adc.su
@@ -0,0 +1,5 @@
+../Core/Src/adc.c:30:6:MX_ADC1_Init 24 static
+../Core/Src/adc.c:141:6:HAL_ADC_MspInit 48 static
+../Core/Src/adc.c:182:6:HAL_ADC_MspDeInit 16 static
+../Core/Src/adc.c:216:9:volt_to_pers 24 static
+../Core/Src/adc.c:233:6:adc_read 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.cyclo
new file mode 100644
index 0000000..143dea6
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.cyclo
@@ -0,0 +1,3 @@
+../Core/Src/control.c:5:6:control_init 1
+../Core/Src/control.c:18:6:control_init_var 1
+../Core/Src/control.c:32:6:lets_sleep 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.d
new file mode 100644
index 0000000..67cd72d
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.d
@@ -0,0 +1,70 @@
+Core/Src/control.o: ../Core/Src/control.c ../Core/Inc/control.h \
+ ../Core/Inc/main.h ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Core/Inc/adc.h ../Core/Inc/gpio.h
+../Core/Inc/control.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Core/Inc/adc.h:
+../Core/Inc/gpio.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.o
new file mode 100644
index 0000000..e358897
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.su
new file mode 100644
index 0000000..0e14d01
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/control.su
@@ -0,0 +1,3 @@
+../Core/Src/control.c:5:6:control_init 4 static
+../Core/Src/control.c:18:6:control_init_var 16 static
+../Core/Src/control.c:32:6:lets_sleep 8 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.cyclo
new file mode 100644
index 0000000..5ef8e2e
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.cyclo
@@ -0,0 +1,4 @@
+../Core/Src/delay.c:17:6:delay_us 2
+../Core/Src/delay.c:27:6:delay_ms 2
+../Core/Src/delay.c:37:6:delay_us_wd 2
+../Core/Src/delay.c:51:6:delay_ms_wd 2
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.d
new file mode 100644
index 0000000..b7730fa
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.d
@@ -0,0 +1,2 @@
+Core/Src/delay.o: ../Core/Src/delay.c ../Core/Inc/delay.h
+../Core/Inc/delay.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.o
new file mode 100644
index 0000000..c2e2a70
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.su
new file mode 100644
index 0000000..59c525a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/delay.su
@@ -0,0 +1,4 @@
+../Core/Src/delay.c:17:6:delay_us 24 static
+../Core/Src/delay.c:27:6:delay_ms 24 static
+../Core/Src/delay.c:37:6:delay_us_wd 24 static
+../Core/Src/delay.c:51:6:delay_ms_wd 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.cyclo
new file mode 100644
index 0000000..a9d9f42
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.cyclo
@@ -0,0 +1 @@
+../Core/Src/dma.c:39:6:MX_DMA_Init 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.d
new file mode 100644
index 0000000..e748957
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.d
@@ -0,0 +1,67 @@
+Core/Src/dma.o: ../Core/Src/dma.c ../Core/Inc/dma.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/dma.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.o
new file mode 100644
index 0000000..c63d02b
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.su
new file mode 100644
index 0000000..802020b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/dma.su
@@ -0,0 +1 @@
+../Core/Src/dma.c:39:6:MX_DMA_Init 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.cyclo
new file mode 100644
index 0000000..ddbad15
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.cyclo
@@ -0,0 +1,5 @@
+../Core/Src/filter.c:5:7:iir_50hz_2or 3
+../Core/Src/filter.c:43:7:iir_50hz_1or 3
+../Core/Src/filter.c:76:7:iir_hp 3
+../Core/Src/filter.c:106:7:iir_4060 3
+../Core/Src/filter.c:143:7:iir_lp30 3
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.d
new file mode 100644
index 0000000..120ebfb
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.d
@@ -0,0 +1,2 @@
+Core/Src/filter.o: ../Core/Src/filter.c ../Core/Inc/filter.h
+../Core/Inc/filter.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.o
new file mode 100644
index 0000000..30c9a14
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.su
new file mode 100644
index 0000000..c14af17
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/filter.su
@@ -0,0 +1,5 @@
+../Core/Src/filter.c:5:7:iir_50hz_2or 72 static
+../Core/Src/filter.c:43:7:iir_50hz_1or 48 static
+../Core/Src/filter.c:76:7:iir_hp 40 static
+../Core/Src/filter.c:106:7:iir_4060 72 static
+../Core/Src/filter.c:143:7:iir_lp30 72 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.cyclo
new file mode 100644
index 0000000..3bcb148
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.cyclo
@@ -0,0 +1,7 @@
+../Core/Src/freertos.c:94:6:vApplicationGetIdleTaskMemory 1
+../Core/Src/freertos.c:108:6:MX_FREERTOS_Init 1
+../Core/Src/freertos.c:163:6:StartDefaultTask 2
+../Core/Src/freertos.c:191:6:StartOprosTask 6
+../Core/Src/freertos.c:229:6:StartControlTask 1
+../Core/Src/freertos.c:248:6:StartLowSpeedTask 2
+../Core/Src/freertos.c:276:6:StartButTask 3
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.d
new file mode 100644
index 0000000..3f5d0ff
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.d
@@ -0,0 +1,116 @@
+Core/Src/freertos.o: ../Core/Src/freertos.c \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Core/Inc/main.h ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Core/Inc/adc.h ../Core/Inc/main.h ../Core/Inc/usart.h \
+ ../Core/Inc/control.h ../Core/Inc/adc.h ../Core/Inc/gpio.h \
+ ../Core/Inc/icd.h ../Core/Inc/control.h ../Core/Inc/icd.h \
+ ../Core/Inc/parse.h ../Core/Inc/spi.h ../Core/Inc/gpio.h
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Core/Inc/adc.h:
+../Core/Inc/main.h:
+../Core/Inc/usart.h:
+../Core/Inc/control.h:
+../Core/Inc/adc.h:
+../Core/Inc/gpio.h:
+../Core/Inc/icd.h:
+../Core/Inc/control.h:
+../Core/Inc/icd.h:
+../Core/Inc/parse.h:
+../Core/Inc/spi.h:
+../Core/Inc/gpio.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.o
new file mode 100644
index 0000000..71ded48
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.su
new file mode 100644
index 0000000..836d7be
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/freertos.su
@@ -0,0 +1,7 @@
+../Core/Src/freertos.c:94:6:vApplicationGetIdleTaskMemory 24 static
+../Core/Src/freertos.c:108:6:MX_FREERTOS_Init 160 static
+../Core/Src/freertos.c:163:6:StartDefaultTask 16 static
+../Core/Src/freertos.c:191:6:StartOprosTask 16 static
+../Core/Src/freertos.c:229:6:StartControlTask 16 static
+../Core/Src/freertos.c:248:6:StartLowSpeedTask 24 static
+../Core/Src/freertos.c:276:6:StartButTask 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.cyclo
new file mode 100644
index 0000000..f931fa1
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.cyclo
@@ -0,0 +1 @@
+../Core/Src/gpio.c:44:6:MX_GPIO_Init 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.d
new file mode 100644
index 0000000..30049ba
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.d
@@ -0,0 +1,67 @@
+Core/Src/gpio.o: ../Core/Src/gpio.c ../Core/Inc/gpio.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/gpio.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.o
new file mode 100644
index 0000000..5e74a2a
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.su
new file mode 100644
index 0000000..c61a9eb
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/gpio.su
@@ -0,0 +1 @@
+../Core/Src/gpio.c:44:6:MX_GPIO_Init 56 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.cyclo
new file mode 100644
index 0000000..4b987f4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.cyclo
@@ -0,0 +1,35 @@
+../Core/Src/icd.c:12:6:init_icd 1
+../Core/Src/icd.c:126:7:my_abs 2
+../Core/Src/icd.c:132:6:mode_start 2
+../Core/Src/icd.c:144:6:get_data 2
+../Core/Src/icd.c:158:6:get_data_max30003 1
+../Core/Src/icd.c:169:6:check_mode_len 4
+../Core/Src/icd.c:199:6:check_tres 11
+../Core/Src/icd.c:249:6:search_alg 27
+../Core/Src/icd.c:386:10:moving_avarage 3
+../Core/Src/icd.c:405:6:basket_alg 8
+../Core/Src/icd.c:445:6:terapy_start 2
+../Core/Src/icd.c:456:6:hv_pwm 2
+../Core/Src/icd.c:475:6:hv_sound 2
+../Core/Src/icd.c:492:6:hv_charge 4
+../Core/Src/icd.c:558:6:hv_shock 2
+../Core/Src/icd.c:584:6:quick_analyse 4
+../Core/Src/icd.c:624:6:fibr_terapy 6
+../Core/Src/icd.c:696:6:terapy_algorithm 7
+../Core/Src/icd.c:751:6:relay_all_control 1
+../Core/Src/icd.c:758:6:relay_ra_control 2
+../Core/Src/icd.c:767:6:relay_rv_control 2
+../Core/Src/icd.c:775:6:relay_can_control 2
+../Core/Src/icd.c:784:6:hv_ll_control 1
+../Core/Src/icd.c:792:6:hv_power 2
+../Core/Src/icd.c:807:6:hv_ll_rv_control 3
+../Core/Src/icd.c:830:6:hv_ll_scv_control 3
+../Core/Src/icd.c:853:6:hv_ll_can_control 3
+../Core/Src/icd.c:877:6:hv_discharge 2
+../Core/Src/icd.c:894:6:ll_bi_dis 1
+../Core/Src/icd.c:923:6:ra_lv_control 6
+../Core/Src/icd.c:986:6:rv_lv_control 6
+../Core/Src/icd.c:1056:6:hv_en_control 1
+../Core/Src/icd.c:1064:6:hv_en_rv 2
+../Core/Src/icd.c:1072:6:hv_en_scv 2
+../Core/Src/icd.c:1080:6:hv_en_can 2
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.d
new file mode 100644
index 0000000..1f6af6a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.d
@@ -0,0 +1,108 @@
+Core/Src/icd.o: ../Core/Src/icd.c ../Core/Inc/icd.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Core/Inc/adc.h ../Core/Inc/filter.h ../Core/Inc/parse.h \
+ ../Core/Inc/icd.h ../Core/Inc/delay.h
+../Core/Inc/icd.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Core/Inc/adc.h:
+../Core/Inc/filter.h:
+../Core/Inc/parse.h:
+../Core/Inc/icd.h:
+../Core/Inc/delay.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.o
new file mode 100644
index 0000000..7e3e632
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.su
new file mode 100644
index 0000000..14d689f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/icd.su
@@ -0,0 +1,35 @@
+../Core/Src/icd.c:12:6:init_icd 16 static
+../Core/Src/icd.c:126:7:my_abs 16 static
+../Core/Src/icd.c:132:6:mode_start 16 static
+../Core/Src/icd.c:144:6:get_data 32 static
+../Core/Src/icd.c:158:6:get_data_max30003 32 static
+../Core/Src/icd.c:169:6:check_mode_len 16 static
+../Core/Src/icd.c:199:6:check_tres 16 static
+../Core/Src/icd.c:249:6:search_alg 16 static
+../Core/Src/icd.c:386:10:moving_avarage 24 static
+../Core/Src/icd.c:405:6:basket_alg 16 static
+../Core/Src/icd.c:445:6:terapy_start 16 static
+../Core/Src/icd.c:456:6:hv_pwm 16 static
+../Core/Src/icd.c:475:6:hv_sound 16 static
+../Core/Src/icd.c:492:6:hv_charge 32 static
+../Core/Src/icd.c:558:6:hv_shock 16 static
+../Core/Src/icd.c:584:6:quick_analyse 16 static
+../Core/Src/icd.c:624:6:fibr_terapy 16 static
+../Core/Src/icd.c:696:6:terapy_algorithm 16 static
+../Core/Src/icd.c:751:6:relay_all_control 16 static
+../Core/Src/icd.c:758:6:relay_ra_control 16 static
+../Core/Src/icd.c:767:6:relay_rv_control 16 static
+../Core/Src/icd.c:775:6:relay_can_control 16 static
+../Core/Src/icd.c:784:6:hv_ll_control 16 static
+../Core/Src/icd.c:792:6:hv_power 16 static
+../Core/Src/icd.c:807:6:hv_ll_rv_control 16 static
+../Core/Src/icd.c:830:6:hv_ll_scv_control 16 static
+../Core/Src/icd.c:853:6:hv_ll_can_control 16 static
+../Core/Src/icd.c:877:6:hv_discharge 16 static
+../Core/Src/icd.c:894:6:ll_bi_dis 8 static
+../Core/Src/icd.c:923:6:ra_lv_control 16 static
+../Core/Src/icd.c:986:6:rv_lv_control 24 static
+../Core/Src/icd.c:1056:6:hv_en_control 16 static
+../Core/Src/icd.c:1064:6:hv_en_rv 16 static
+../Core/Src/icd.c:1072:6:hv_en_scv 16 static
+../Core/Src/icd.c:1080:6:hv_en_can 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.cyclo
new file mode 100644
index 0000000..7f23d50
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.cyclo
@@ -0,0 +1,5 @@
+../Core/Src/main.c:72:5:main 1
+../Core/Src/main.c:174:6:SystemClock_Config 3
+../Core/Src/main.c:228:6:HAL_TIM_PeriodElapsedCallback 2
+../Core/Src/main.c:245:6:Error_Handler 1
+../Core/Src/main.c:264:6:assert_failed 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.d
new file mode 100644
index 0000000..3d0578f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.d
@@ -0,0 +1,117 @@
+Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Core/Inc/adc.h ../Core/Inc/main.h ../Core/Inc/dma.h ../Core/Inc/spi.h \
+ ../Core/Inc/tim.h ../Core/Inc/usart.h ../Core/Inc/control.h \
+ ../Core/Inc/adc.h ../Core/Inc/gpio.h ../Core/Inc/icd.h \
+ ../Core/Inc/gpio.h ../Core/Inc/control.h ../Core/Inc/icd.h
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Core/Inc/adc.h:
+../Core/Inc/main.h:
+../Core/Inc/dma.h:
+../Core/Inc/spi.h:
+../Core/Inc/tim.h:
+../Core/Inc/usart.h:
+../Core/Inc/control.h:
+../Core/Inc/adc.h:
+../Core/Inc/gpio.h:
+../Core/Inc/icd.h:
+../Core/Inc/gpio.h:
+../Core/Inc/control.h:
+../Core/Inc/icd.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.o
new file mode 100644
index 0000000..ff87fc6
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.su
new file mode 100644
index 0000000..6209471
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/main.su
@@ -0,0 +1,5 @@
+../Core/Src/main.c:72:5:main 8 static
+../Core/Src/main.c:174:6:SystemClock_Config 88 static
+../Core/Src/main.c:228:6:HAL_TIM_PeriodElapsedCallback 16 static
+../Core/Src/main.c:245:6:Error_Handler 4 static,ignoring_inline_asm
+../Core/Src/main.c:264:6:assert_failed 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.cyclo
new file mode 100644
index 0000000..dab5be5
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.cyclo
@@ -0,0 +1,10 @@
+../Drivers/CMSIS/Include/core_cm4.h:1938:34:__NVIC_SystemReset 1
+../Core/Src/parse.c:3:7:unpackFloat 1
+../Core/Src/parse.c:14:6:check_float 3
+../Core/Src/parse.c:23:10:unpackUint16 1
+../Core/Src/parse.c:31:6:check_uint16 3
+../Core/Src/parse.c:40:9:unpackUint8 1
+../Core/Src/parse.c:48:6:check_uint8 3
+../Core/Src/parse.c:57:10:unpackUint32 1
+../Core/Src/parse.c:68:6:check_uint32 3
+../Core/Src/parse.c:77:6:parse_command 96
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.d
new file mode 100644
index 0000000..08ae18c
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.d
@@ -0,0 +1,105 @@
+Core/Src/parse.o: ../Core/Src/parse.c ../Core/Inc/parse.h \
+ ../Core/Inc/icd.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Core/Inc/adc.h
+../Core/Inc/parse.h:
+../Core/Inc/icd.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Core/Inc/adc.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.o
new file mode 100644
index 0000000..61cb68e
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.su
new file mode 100644
index 0000000..cfe5739
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/parse.su
@@ -0,0 +1,10 @@
+../Drivers/CMSIS/Include/core_cm4.h:1938:34:__NVIC_SystemReset 4 static,ignoring_inline_asm
+../Core/Src/parse.c:3:7:unpackFloat 24 static
+../Core/Src/parse.c:14:6:check_float 24 static
+../Core/Src/parse.c:23:10:unpackUint16 24 static
+../Core/Src/parse.c:31:6:check_uint16 16 static
+../Core/Src/parse.c:40:9:unpackUint8 24 static
+../Core/Src/parse.c:48:6:check_uint8 16 static
+../Core/Src/parse.c:57:10:unpackUint32 24 static
+../Core/Src/parse.c:68:6:check_uint32 24 static
+../Core/Src/parse.c:77:6:parse_command 80 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.cyclo
new file mode 100644
index 0000000..269dbd9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.cyclo
@@ -0,0 +1,6 @@
+../Core/Src/spi.c:31:6:MX_SPI2_Init 2
+../Core/Src/spi.c:63:6:MX_SPI3_Init 2
+../Core/Src/spi.c:95:6:HAL_SPI_MspInit 3
+../Core/Src/spi.c:150:6:HAL_SPI_MspDeInit 3
+../Core/Src/spi.c:193:6:POT_set 1
+../Core/Src/spi.c:200:6:POT_cheek 2
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.d
new file mode 100644
index 0000000..c981baf
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.d
@@ -0,0 +1,67 @@
+Core/Src/spi.o: ../Core/Src/spi.c ../Core/Inc/spi.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/spi.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.o
new file mode 100644
index 0000000..e1c38fc
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.su
new file mode 100644
index 0000000..9c8f62a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/spi.su
@@ -0,0 +1,6 @@
+../Core/Src/spi.c:31:6:MX_SPI2_Init 8 static
+../Core/Src/spi.c:63:6:MX_SPI3_Init 8 static
+../Core/Src/spi.c:95:6:HAL_SPI_MspInit 56 static
+../Core/Src/spi.c:150:6:HAL_SPI_MspDeInit 16 static
+../Core/Src/spi.c:193:6:POT_set 16 static
+../Core/Src/spi.c:200:6:POT_cheek 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.cyclo
new file mode 100644
index 0000000..ae31cf9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.cyclo
@@ -0,0 +1 @@
+../Core/Src/stm32f4xx_hal_msp.c:63:6:HAL_MspInit 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.d
new file mode 100644
index 0000000..44cb113
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.d
@@ -0,0 +1,66 @@
+Core/Src/stm32f4xx_hal_msp.o: ../Core/Src/stm32f4xx_hal_msp.c \
+ ../Core/Inc/main.h ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.o
new file mode 100644
index 0000000..a2729ea
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.su
new file mode 100644
index 0000000..dbeb228
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_msp.su
@@ -0,0 +1 @@
+../Core/Src/stm32f4xx_hal_msp.c:63:6:HAL_MspInit 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.cyclo
new file mode 100644
index 0000000..692a6d3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.cyclo
@@ -0,0 +1,3 @@
+../Core/Src/stm32f4xx_hal_timebase_tim.c:41:19:HAL_InitTick 5
+../Core/Src/stm32f4xx_hal_timebase_tim.c:120:6:HAL_SuspendTick 1
+../Core/Src/stm32f4xx_hal_timebase_tim.c:132:6:HAL_ResumeTick 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.d
new file mode 100644
index 0000000..77dfc1b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.d
@@ -0,0 +1,66 @@
+Core/Src/stm32f4xx_hal_timebase_tim.o: \
+ ../Core/Src/stm32f4xx_hal_timebase_tim.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.o
new file mode 100644
index 0000000..ff80d43
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.su
new file mode 100644
index 0000000..edb35db
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_hal_timebase_tim.su
@@ -0,0 +1,3 @@
+../Core/Src/stm32f4xx_hal_timebase_tim.c:41:19:HAL_InitTick 64 static
+../Core/Src/stm32f4xx_hal_timebase_tim.c:120:6:HAL_SuspendTick 4 static
+../Core/Src/stm32f4xx_hal_timebase_tim.c:132:6:HAL_ResumeTick 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.cyclo
new file mode 100644
index 0000000..9189c53
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.cyclo
@@ -0,0 +1,11 @@
+../Core/Src/stm32f4xx_it.c:79:6:NMI_Handler 1
+../Core/Src/stm32f4xx_it.c:94:6:HardFault_Handler 1
+../Core/Src/stm32f4xx_it.c:109:6:MemManage_Handler 1
+../Core/Src/stm32f4xx_it.c:124:6:BusFault_Handler 1
+../Core/Src/stm32f4xx_it.c:139:6:UsageFault_Handler 1
+../Core/Src/stm32f4xx_it.c:154:6:DebugMon_Handler 1
+../Core/Src/stm32f4xx_it.c:174:6:USART1_IRQHandler 1
+../Core/Src/stm32f4xx_it.c:188:6:TIM8_BRK_TIM12_IRQHandler 1
+../Core/Src/stm32f4xx_it.c:202:6:TIM6_DAC_IRQHandler 5
+../Core/Src/stm32f4xx_it.c:246:6:DMA2_Stream2_IRQHandler 1
+../Core/Src/stm32f4xx_it.c:260:6:DMA2_Stream7_IRQHandler 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.d
new file mode 100644
index 0000000..50d856e
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.d
@@ -0,0 +1,110 @@
+Core/Src/stm32f4xx_it.o: ../Core/Src/stm32f4xx_it.c ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Core/Inc/stm32f4xx_it.h ../Core/Inc/adc.h ../Core/Inc/main.h \
+ ../Core/Inc/control.h ../Core/Inc/adc.h ../Core/Inc/gpio.h \
+ ../Core/Inc/icd.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Core/Inc/stm32f4xx_it.h:
+../Core/Inc/adc.h:
+../Core/Inc/main.h:
+../Core/Inc/control.h:
+../Core/Inc/adc.h:
+../Core/Inc/gpio.h:
+../Core/Inc/icd.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.o
new file mode 100644
index 0000000..3064a6a
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.su
new file mode 100644
index 0000000..b81b80f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/stm32f4xx_it.su
@@ -0,0 +1,11 @@
+../Core/Src/stm32f4xx_it.c:79:6:NMI_Handler 4 static
+../Core/Src/stm32f4xx_it.c:94:6:HardFault_Handler 4 static
+../Core/Src/stm32f4xx_it.c:109:6:MemManage_Handler 4 static
+../Core/Src/stm32f4xx_it.c:124:6:BusFault_Handler 4 static
+../Core/Src/stm32f4xx_it.c:139:6:UsageFault_Handler 4 static
+../Core/Src/stm32f4xx_it.c:154:6:DebugMon_Handler 4 static
+../Core/Src/stm32f4xx_it.c:174:6:USART1_IRQHandler 8 static
+../Core/Src/stm32f4xx_it.c:188:6:TIM8_BRK_TIM12_IRQHandler 8 static
+../Core/Src/stm32f4xx_it.c:202:6:TIM6_DAC_IRQHandler 8 static
+../Core/Src/stm32f4xx_it.c:246:6:DMA2_Stream2_IRQHandler 8 static
+../Core/Src/stm32f4xx_it.c:260:6:DMA2_Stream7_IRQHandler 8 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/subdir.mk b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/subdir.mk
new file mode 100644
index 0000000..95e2701
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/subdir.mk
@@ -0,0 +1,81 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Core/Src/adc.c \
+../Core/Src/control.c \
+../Core/Src/delay.c \
+../Core/Src/dma.c \
+../Core/Src/filter.c \
+../Core/Src/freertos.c \
+../Core/Src/gpio.c \
+../Core/Src/icd.c \
+../Core/Src/main.c \
+../Core/Src/parse.c \
+../Core/Src/spi.c \
+../Core/Src/stm32f4xx_hal_msp.c \
+../Core/Src/stm32f4xx_hal_timebase_tim.c \
+../Core/Src/stm32f4xx_it.c \
+../Core/Src/syscalls.c \
+../Core/Src/sysmem.c \
+../Core/Src/system_stm32f4xx.c \
+../Core/Src/tim.c \
+../Core/Src/usart.c
+
+OBJS += \
+./Core/Src/adc.o \
+./Core/Src/control.o \
+./Core/Src/delay.o \
+./Core/Src/dma.o \
+./Core/Src/filter.o \
+./Core/Src/freertos.o \
+./Core/Src/gpio.o \
+./Core/Src/icd.o \
+./Core/Src/main.o \
+./Core/Src/parse.o \
+./Core/Src/spi.o \
+./Core/Src/stm32f4xx_hal_msp.o \
+./Core/Src/stm32f4xx_hal_timebase_tim.o \
+./Core/Src/stm32f4xx_it.o \
+./Core/Src/syscalls.o \
+./Core/Src/sysmem.o \
+./Core/Src/system_stm32f4xx.o \
+./Core/Src/tim.o \
+./Core/Src/usart.o
+
+C_DEPS += \
+./Core/Src/adc.d \
+./Core/Src/control.d \
+./Core/Src/delay.d \
+./Core/Src/dma.d \
+./Core/Src/filter.d \
+./Core/Src/freertos.d \
+./Core/Src/gpio.d \
+./Core/Src/icd.d \
+./Core/Src/main.d \
+./Core/Src/parse.d \
+./Core/Src/spi.d \
+./Core/Src/stm32f4xx_hal_msp.d \
+./Core/Src/stm32f4xx_hal_timebase_tim.d \
+./Core/Src/stm32f4xx_it.d \
+./Core/Src/syscalls.d \
+./Core/Src/sysmem.d \
+./Core/Src/system_stm32f4xx.d \
+./Core/Src/tim.d \
+./Core/Src/usart.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F413xx -D__FPU_PRESENT -DARM_MATH_CM4 -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Core-2f-Src
+
+clean-Core-2f-Src:
+ -$(RM) ./Core/Src/adc.cyclo ./Core/Src/adc.d ./Core/Src/adc.o ./Core/Src/adc.su ./Core/Src/control.cyclo ./Core/Src/control.d ./Core/Src/control.o ./Core/Src/control.su ./Core/Src/delay.cyclo ./Core/Src/delay.d ./Core/Src/delay.o ./Core/Src/delay.su ./Core/Src/dma.cyclo ./Core/Src/dma.d ./Core/Src/dma.o ./Core/Src/dma.su ./Core/Src/filter.cyclo ./Core/Src/filter.d ./Core/Src/filter.o ./Core/Src/filter.su ./Core/Src/freertos.cyclo ./Core/Src/freertos.d ./Core/Src/freertos.o ./Core/Src/freertos.su ./Core/Src/gpio.cyclo ./Core/Src/gpio.d ./Core/Src/gpio.o ./Core/Src/gpio.su ./Core/Src/icd.cyclo ./Core/Src/icd.d ./Core/Src/icd.o ./Core/Src/icd.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/parse.cyclo ./Core/Src/parse.d ./Core/Src/parse.o ./Core/Src/parse.su ./Core/Src/spi.cyclo ./Core/Src/spi.d ./Core/Src/spi.o ./Core/Src/spi.su ./Core/Src/stm32f4xx_hal_msp.cyclo ./Core/Src/stm32f4xx_hal_msp.d ./Core/Src/stm32f4xx_hal_msp.o ./Core/Src/stm32f4xx_hal_msp.su ./Core/Src/stm32f4xx_hal_timebase_tim.cyclo ./Core/Src/stm32f4xx_hal_timebase_tim.d ./Core/Src/stm32f4xx_hal_timebase_tim.o ./Core/Src/stm32f4xx_hal_timebase_tim.su ./Core/Src/stm32f4xx_it.cyclo ./Core/Src/stm32f4xx_it.d ./Core/Src/stm32f4xx_it.o ./Core/Src/stm32f4xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f4xx.cyclo ./Core/Src/system_stm32f4xx.d ./Core/Src/system_stm32f4xx.o ./Core/Src/system_stm32f4xx.su ./Core/Src/tim.cyclo ./Core/Src/tim.d ./Core/Src/tim.o ./Core/Src/tim.su ./Core/Src/usart.cyclo ./Core/Src/usart.d ./Core/Src/usart.o ./Core/Src/usart.su
+
+.PHONY: clean-Core-2f-Src
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.cyclo
new file mode 100644
index 0000000..6cbfdd0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.cyclo
@@ -0,0 +1,18 @@
+../Core/Src/syscalls.c:44:6:initialise_monitor_handles 1
+../Core/Src/syscalls.c:48:5:_getpid 1
+../Core/Src/syscalls.c:53:5:_kill 1
+../Core/Src/syscalls.c:61:6:_exit 1
+../Core/Src/syscalls.c:67:27:_read 2
+../Core/Src/syscalls.c:80:27:_write 2
+../Core/Src/syscalls.c:92:5:_close 1
+../Core/Src/syscalls.c:99:5:_fstat 1
+../Core/Src/syscalls.c:106:5:_isatty 1
+../Core/Src/syscalls.c:112:5:_lseek 1
+../Core/Src/syscalls.c:120:5:_open 1
+../Core/Src/syscalls.c:128:5:_wait 1
+../Core/Src/syscalls.c:135:5:_unlink 1
+../Core/Src/syscalls.c:142:5:_times 1
+../Core/Src/syscalls.c:148:5:_stat 1
+../Core/Src/syscalls.c:155:5:_link 1
+../Core/Src/syscalls.c:163:5:_fork 1
+../Core/Src/syscalls.c:169:5:_execve 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.d
new file mode 100644
index 0000000..8667c70
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.d
@@ -0,0 +1 @@
+Core/Src/syscalls.o: ../Core/Src/syscalls.c
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.o
new file mode 100644
index 0000000..da6629c
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.su
new file mode 100644
index 0000000..50b547a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/syscalls.su
@@ -0,0 +1,18 @@
+../Core/Src/syscalls.c:44:6:initialise_monitor_handles 4 static
+../Core/Src/syscalls.c:48:5:_getpid 4 static
+../Core/Src/syscalls.c:53:5:_kill 16 static
+../Core/Src/syscalls.c:61:6:_exit 16 static
+../Core/Src/syscalls.c:67:27:_read 32 static
+../Core/Src/syscalls.c:80:27:_write 32 static
+../Core/Src/syscalls.c:92:5:_close 16 static
+../Core/Src/syscalls.c:99:5:_fstat 16 static
+../Core/Src/syscalls.c:106:5:_isatty 16 static
+../Core/Src/syscalls.c:112:5:_lseek 24 static
+../Core/Src/syscalls.c:120:5:_open 12 static
+../Core/Src/syscalls.c:128:5:_wait 16 static
+../Core/Src/syscalls.c:135:5:_unlink 16 static
+../Core/Src/syscalls.c:142:5:_times 16 static
+../Core/Src/syscalls.c:148:5:_stat 16 static
+../Core/Src/syscalls.c:155:5:_link 16 static
+../Core/Src/syscalls.c:163:5:_fork 8 static
+../Core/Src/syscalls.c:169:5:_execve 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.cyclo
new file mode 100644
index 0000000..0090c10
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.cyclo
@@ -0,0 +1 @@
+../Core/Src/sysmem.c:53:7:_sbrk 3
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.d
new file mode 100644
index 0000000..74fecf9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.d
@@ -0,0 +1 @@
+Core/Src/sysmem.o: ../Core/Src/sysmem.c
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.o
new file mode 100644
index 0000000..faae8ed
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.su
new file mode 100644
index 0000000..12d5f17
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/sysmem.su
@@ -0,0 +1 @@
+../Core/Src/sysmem.c:53:7:_sbrk 32 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.cyclo
new file mode 100644
index 0000000..4cc0df9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.cyclo
@@ -0,0 +1,2 @@
+../Core/Src/system_stm32f4xx.c:167:6:SystemInit 1
+../Core/Src/system_stm32f4xx.c:220:6:SystemCoreClockUpdate 6
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.d
new file mode 100644
index 0000000..9575f34
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.d
@@ -0,0 +1,65 @@
+Core/Src/system_stm32f4xx.o: ../Core/Src/system_stm32f4xx.c \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.o
new file mode 100644
index 0000000..a1caf15
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.su
new file mode 100644
index 0000000..96f1cd4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/system_stm32f4xx.su
@@ -0,0 +1,2 @@
+../Core/Src/system_stm32f4xx.c:167:6:SystemInit 4 static
+../Core/Src/system_stm32f4xx.c:220:6:SystemCoreClockUpdate 32 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.cyclo
new file mode 100644
index 0000000..68056f3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.cyclo
@@ -0,0 +1,10 @@
+../Core/Src/tim.c:36:6:MX_TIM1_Init 10
+../Core/Src/tim.c:118:6:MX_TIM2_Init 8
+../Core/Src/tim.c:180:6:MX_TIM3_Init 8
+../Core/Src/tim.c:242:6:MX_TIM4_Init 8
+../Core/Src/tim.c:304:6:MX_TIM6_Init 3
+../Core/Src/tim.c:337:6:MX_TIM9_Init 5
+../Core/Src/tim.c:384:6:MX_TIM14_Init 2
+../Core/Src/tim.c:410:6:HAL_TIM_Base_MspInit 8
+../Core/Src/tim.c:495:6:HAL_TIM_MspPostInit 6
+../Core/Src/tim.c:622:6:HAL_TIM_Base_MspDeInit 8
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.d
new file mode 100644
index 0000000..c17b62f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.d
@@ -0,0 +1,67 @@
+Core/Src/tim.o: ../Core/Src/tim.c ../Core/Inc/tim.h ../Core/Inc/main.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Core/Inc/tim.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.o
new file mode 100644
index 0000000..3715a01
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.su
new file mode 100644
index 0000000..391d0a2
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/tim.su
@@ -0,0 +1,10 @@
+../Core/Src/tim.c:36:6:MX_TIM1_Init 96 static
+../Core/Src/tim.c:118:6:MX_TIM2_Init 64 static
+../Core/Src/tim.c:180:6:MX_TIM3_Init 64 static
+../Core/Src/tim.c:242:6:MX_TIM4_Init 64 static
+../Core/Src/tim.c:304:6:MX_TIM6_Init 16 static
+../Core/Src/tim.c:337:6:MX_TIM9_Init 56 static
+../Core/Src/tim.c:384:6:MX_TIM14_Init 8 static
+../Core/Src/tim.c:410:6:HAL_TIM_Base_MspInit 48 static
+../Core/Src/tim.c:495:6:HAL_TIM_MspPostInit 56 static
+../Core/Src/tim.c:622:6:HAL_TIM_Base_MspDeInit 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.cyclo
new file mode 100644
index 0000000..0741f79
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.cyclo
@@ -0,0 +1,8 @@
+../Core/Src/usart.c:35:6:MX_USART1_UART_Init 2
+../Core/Src/usart.c:63:6:HAL_UART_MspInit 4
+../Core/Src/usart.c:133:6:HAL_UART_MspDeInit 2
+../Core/Src/usart.c:163:6:print_usart 1
+../Core/Src/usart.c:176:6:ble_control 5
+../Core/Src/usart.c:231:6:ble_deinit 1
+../Core/Src/usart.c:237:6:float2Bytes 1
+../Core/Src/usart.c:243:6:ble_HEX_new 17
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.d
new file mode 100644
index 0000000..0de3f1a
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.d
@@ -0,0 +1,107 @@
+Core/Src/usart.o: ../Core/Src/usart.c ../Core/Inc/usart.h \
+ ../Core/Inc/main.h ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h \
+ ../Core/Inc/control.h ../Core/Inc/adc.h ../Core/Inc/gpio.h \
+ ../Core/Inc/icd.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h \
+ ../Core/Inc/FreeRTOSConfig.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/list.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/task.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h \
+ ../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h
+../Core/Inc/usart.h:
+../Core/Inc/main.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
+../Core/Inc/control.h:
+../Core/Inc/adc.h:
+../Core/Inc/gpio.h:
+../Core/Inc/icd.h:
+../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h:
+../Core/Inc/FreeRTOSConfig.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/portable.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h:
+../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/list.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/task.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/queue.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h:
+../Middlewares/Third_Party/FreeRTOS/Source/include/timers.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.o
new file mode 100644
index 0000000..8ca3202
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.su
new file mode 100644
index 0000000..f908958
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Src/usart.su
@@ -0,0 +1,8 @@
+../Core/Src/usart.c:35:6:MX_USART1_UART_Init 8 static
+../Core/Src/usart.c:63:6:HAL_UART_MspInit 48 static
+../Core/Src/usart.c:133:6:HAL_UART_MspDeInit 16 static
+../Core/Src/usart.c:163:6:print_usart 16 static
+../Core/Src/usart.c:176:6:ble_control 16 static
+../Core/Src/usart.c:231:6:ble_deinit 8 static
+../Core/Src/usart.c:237:6:float2Bytes 16 static
+../Core/Src/usart.c:243:6:ble_HEX_new 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.d
new file mode 100644
index 0000000..2f3e69b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.d
@@ -0,0 +1,2 @@
+Core/Startup/startup_stm32f413vgtx.o: \
+ ../Core/Startup/startup_stm32f413vgtx.s
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.o
new file mode 100644
index 0000000..1eddff1
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/startup_stm32f413vgtx.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/subdir.mk b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/subdir.mk
new file mode 100644
index 0000000..3c85140
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Core/Startup/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+S_SRCS += \
+../Core/Startup/startup_stm32f413vgtx.s
+
+OBJS += \
+./Core/Startup/startup_stm32f413vgtx.o
+
+S_DEPS += \
+./Core/Startup/startup_stm32f413vgtx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
+ arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
+
+clean: clean-Core-2f-Startup
+
+clean-Core-2f-Startup:
+ -$(RM) ./Core/Startup/startup_stm32f413vgtx.d ./Core/Startup/startup_stm32f413vgtx.o
+
+.PHONY: clean-Core-2f-Startup
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.cyclo
new file mode 100644
index 0000000..c8c31fa
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.cyclo
@@ -0,0 +1,27 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:157:19:HAL_Init 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:190:19:HAL_DeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:219:13:HAL_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:230:13:HAL_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:253:26:HAL_InitTick 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:312:13:HAL_IncTick 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:323:17:HAL_GetTick 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:332:10:HAL_GetTickPrio 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:341:19:HAL_SetTickFreq 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:374:21:HAL_GetTickFreq 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:390:13:HAL_Delay 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:416:13:HAL_SuspendTick 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:432:13:HAL_ResumeTick 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:442:10:HAL_GetHalVersion 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:451:10:HAL_GetREVID 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:460:10:HAL_GetDEVID 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:469:6:HAL_DBGMCU_EnableDBGSleepMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:478:6:HAL_DBGMCU_DisableDBGSleepMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:487:6:HAL_DBGMCU_EnableDBGStopMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:496:6:HAL_DBGMCU_DisableDBGStopMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:505:6:HAL_DBGMCU_EnableDBGStandbyMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:514:6:HAL_DBGMCU_DisableDBGStandbyMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:525:6:HAL_EnableCompensationCell 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:536:6:HAL_DisableCompensationCell 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:545:10:HAL_GetUIDw0 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:554:10:HAL_GetUIDw1 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:563:10:HAL_GetUIDw2 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d
new file mode 100644
index 0000000..553f994
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
new file mode 100644
index 0000000..ee61b55
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su
new file mode 100644
index 0000000..fb2a723
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su
@@ -0,0 +1,27 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:157:19:HAL_Init 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:190:19:HAL_DeInit 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:219:13:HAL_MspInit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:230:13:HAL_MspDeInit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:253:26:HAL_InitTick 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:312:13:HAL_IncTick 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:323:17:HAL_GetTick 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:332:10:HAL_GetTickPrio 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:341:19:HAL_SetTickFreq 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:374:21:HAL_GetTickFreq 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:390:13:HAL_Delay 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:416:13:HAL_SuspendTick 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:432:13:HAL_ResumeTick 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:442:10:HAL_GetHalVersion 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:451:10:HAL_GetREVID 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:460:10:HAL_GetDEVID 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:469:6:HAL_DBGMCU_EnableDBGSleepMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:478:6:HAL_DBGMCU_DisableDBGSleepMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:487:6:HAL_DBGMCU_EnableDBGStopMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:496:6:HAL_DBGMCU_DisableDBGStopMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:505:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:514:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:525:6:HAL_EnableCompensationCell 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:536:6:HAL_DisableCompensationCell 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:545:10:HAL_GetUIDw0 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:554:10:HAL_GetUIDw1 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c:563:10:HAL_GetUIDw2 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.cyclo
new file mode 100644
index 0000000..4e5ed83
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.cyclo
@@ -0,0 +1,26 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:311:19:HAL_ADC_Init 50
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:405:19:HAL_ADC_DeInit 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:662:13:HAL_ADC_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:677:13:HAL_ADC_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:716:19:HAL_ADC_Start 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:839:19:HAL_ADC_Stop 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:882:19:HAL_ADC_PollForConversion 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:971:19:HAL_ADC_PollForEvent 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1037:19:HAL_ADC_Start_IT 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1162:19:HAL_ADC_Stop_IT 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1199:6:HAL_ADC_IRQHandler 31
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1364:19:HAL_ADC_Start_DMA 18
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1512:19:HAL_ADC_Stop_DMA 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1568:10:HAL_ADC_GetValue 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1580:13:HAL_ADC_ConvCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1595:13:HAL_ADC_ConvHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1610:13:HAL_ADC_LevelOutOfWindowCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1631:13:HAL_ADC_ErrorCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1669:19:HAL_ADC_ConfigChannel 24
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1792:19:HAL_ADC_AnalogWDGConfig 30
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1874:10:HAL_ADC_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1886:10:HAL_ADC_GetError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1906:13:ADC_Init 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1994:13:ADC_DMAConvCplt 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:2063:13:ADC_DMAHalfConvCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:2080:13:ADC_DMAError 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d
new file mode 100644
index 0000000..c2fd79b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o
new file mode 100644
index 0000000..152f8bd
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su
new file mode 100644
index 0000000..775efe5
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su
@@ -0,0 +1,26 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:311:19:HAL_ADC_Init 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:405:19:HAL_ADC_DeInit 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:662:13:HAL_ADC_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:677:13:HAL_ADC_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:716:19:HAL_ADC_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:839:19:HAL_ADC_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:882:19:HAL_ADC_PollForConversion 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:971:19:HAL_ADC_PollForEvent 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1037:19:HAL_ADC_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1162:19:HAL_ADC_Stop_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1199:6:HAL_ADC_IRQHandler 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1364:19:HAL_ADC_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1512:19:HAL_ADC_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1568:10:HAL_ADC_GetValue 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1580:13:HAL_ADC_ConvCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1595:13:HAL_ADC_ConvHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1610:13:HAL_ADC_LevelOutOfWindowCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1631:13:HAL_ADC_ErrorCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1669:19:HAL_ADC_ConfigChannel 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1792:19:HAL_ADC_AnalogWDGConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1874:10:HAL_ADC_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1886:10:HAL_ADC_GetError 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1906:13:ADC_Init 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:1994:13:ADC_DMAConvCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:2063:13:ADC_DMAHalfConvCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c:2080:13:ADC_DMAError 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.cyclo
new file mode 100644
index 0000000..132c7b6
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.cyclo
@@ -0,0 +1,15 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:146:19:HAL_ADCEx_InjectedStart 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:249:19:HAL_ADCEx_InjectedStart_IT 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:360:19:HAL_ADCEx_InjectedStop 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:414:19:HAL_ADCEx_InjectedPollForConversion 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:485:19:HAL_ADCEx_InjectedStop_IT 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:547:10:HAL_ADCEx_InjectedGetValue 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:598:19:HAL_ADCEx_MultiModeStart_DMA 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:725:19:HAL_ADCEx_MultiModeStop_DMA 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:778:10:HAL_ADCEx_MultiModeGetValue 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:797:13:HAL_ADCEx_InjectedConvCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:814:19:HAL_ADCEx_InjectedConfigChannel 63
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:978:19:HAL_ADCEx_MultiModeConfigChannel 35
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1025:13:ADC_MultiModeDMAConvCplt 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1078:13:ADC_MultiModeDMAHalfConvCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1091:13:ADC_MultiModeDMAError 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d
new file mode 100644
index 0000000..407d5f4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o
new file mode 100644
index 0000000..413f2fc
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su
new file mode 100644
index 0000000..e39f7c7
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su
@@ -0,0 +1,15 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:146:19:HAL_ADCEx_InjectedStart 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:249:19:HAL_ADCEx_InjectedStart_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:360:19:HAL_ADCEx_InjectedStop 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:414:19:HAL_ADCEx_InjectedPollForConversion 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:485:19:HAL_ADCEx_InjectedStop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:547:10:HAL_ADCEx_InjectedGetValue 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:598:19:HAL_ADCEx_MultiModeStart_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:725:19:HAL_ADCEx_MultiModeStop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:778:10:HAL_ADCEx_MultiModeGetValue 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:797:13:HAL_ADCEx_InjectedConvCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:814:19:HAL_ADCEx_InjectedConfigChannel 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:978:19:HAL_ADCEx_MultiModeConfigChannel 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1025:13:ADC_MultiModeDMAConvCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1078:13:ADC_MultiModeDMAHalfConvCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c:1091:13:ADC_MultiModeDMAError 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.cyclo
new file mode 100644
index 0000000..56950b9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.cyclo
@@ -0,0 +1,33 @@
+../Drivers/CMSIS/Include/core_cm4.h:1653:22:__NVIC_SetPriorityGrouping 1
+../Drivers/CMSIS/Include/core_cm4.h:1672:26:__NVIC_GetPriorityGrouping 1
+../Drivers/CMSIS/Include/core_cm4.h:1684:22:__NVIC_EnableIRQ 2
+../Drivers/CMSIS/Include/core_cm4.h:1722:22:__NVIC_DisableIRQ 2
+../Drivers/CMSIS/Include/core_cm4.h:1741:26:__NVIC_GetPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm4.h:1760:22:__NVIC_SetPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm4.h:1775:22:__NVIC_ClearPendingIRQ 2
+../Drivers/CMSIS/Include/core_cm4.h:1792:26:__NVIC_GetActive 2
+../Drivers/CMSIS/Include/core_cm4.h:1814:22:__NVIC_SetPriority 2
+../Drivers/CMSIS/Include/core_cm4.h:1836:26:__NVIC_GetPriority 2
+../Drivers/CMSIS/Include/core_cm4.h:1861:26:NVIC_EncodePriority 2
+../Drivers/CMSIS/Include/core_cm4.h:1888:22:NVIC_DecodePriority 2
+../Drivers/CMSIS/Include/core_cm4.h:1938:34:__NVIC_SystemReset 1
+../Drivers/CMSIS/Include/core_cm4.h:2022:26:SysTick_Config 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:141:6:HAL_NVIC_SetPriorityGrouping 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:163:6:HAL_NVIC_SetPriority 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:185:6:HAL_NVIC_EnableIRQ 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:201:6:HAL_NVIC_DisableIRQ 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:214:6:HAL_NVIC_SystemReset 0
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:227:10:HAL_SYSTICK_Config 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:256:6:HAL_MPU_Disable 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:279:6:HAL_MPU_Enable 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:298:6:HAL_MPU_ConfigRegion 58
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:342:6:HAL_CORTEX_ClearEvent 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:352:10:HAL_NVIC_GetPriorityGrouping 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:379:6:HAL_NVIC_GetPriority 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:394:6:HAL_NVIC_SetPendingIRQ 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:412:10:HAL_NVIC_GetPendingIRQ 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:428:6:HAL_NVIC_ClearPendingIRQ 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:445:10:HAL_NVIC_GetActive 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:462:6:HAL_SYSTICK_CLKSourceConfig 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:480:6:HAL_SYSTICK_IRQHandler 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:489:13:HAL_SYSTICK_Callback 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d
new file mode 100644
index 0000000..9fa33cc
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
new file mode 100644
index 0000000..7302b90
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su
new file mode 100644
index 0000000..8949055
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su
@@ -0,0 +1,33 @@
+../Drivers/CMSIS/Include/core_cm4.h:1653:22:__NVIC_SetPriorityGrouping 24 static
+../Drivers/CMSIS/Include/core_cm4.h:1672:26:__NVIC_GetPriorityGrouping 4 static
+../Drivers/CMSIS/Include/core_cm4.h:1684:22:__NVIC_EnableIRQ 16 static,ignoring_inline_asm
+../Drivers/CMSIS/Include/core_cm4.h:1722:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm
+../Drivers/CMSIS/Include/core_cm4.h:1741:26:__NVIC_GetPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1760:22:__NVIC_SetPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1775:22:__NVIC_ClearPendingIRQ 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1792:26:__NVIC_GetActive 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1814:22:__NVIC_SetPriority 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1836:26:__NVIC_GetPriority 16 static
+../Drivers/CMSIS/Include/core_cm4.h:1861:26:NVIC_EncodePriority 40 static
+../Drivers/CMSIS/Include/core_cm4.h:1888:22:NVIC_DecodePriority 40 static
+../Drivers/CMSIS/Include/core_cm4.h:1938:34:__NVIC_SystemReset 4 static,ignoring_inline_asm
+../Drivers/CMSIS/Include/core_cm4.h:2022:26:SysTick_Config 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:141:6:HAL_NVIC_SetPriorityGrouping 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:163:6:HAL_NVIC_SetPriority 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:185:6:HAL_NVIC_EnableIRQ 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:201:6:HAL_NVIC_DisableIRQ 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:214:6:HAL_NVIC_SystemReset 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:227:10:HAL_SYSTICK_Config 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:256:6:HAL_MPU_Disable 4 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:279:6:HAL_MPU_Enable 16 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:298:6:HAL_MPU_ConfigRegion 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:342:6:HAL_CORTEX_ClearEvent 4 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:352:10:HAL_NVIC_GetPriorityGrouping 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:379:6:HAL_NVIC_GetPriority 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:394:6:HAL_NVIC_SetPendingIRQ 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:412:10:HAL_NVIC_GetPendingIRQ 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:428:6:HAL_NVIC_ClearPendingIRQ 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:445:10:HAL_NVIC_GetActive 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:462:6:HAL_SYSTICK_CLKSourceConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:480:6:HAL_SYSTICK_IRQHandler 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c:489:13:HAL_SYSTICK_Callback 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.cyclo
new file mode 100644
index 0000000..f549a56
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.cyclo
@@ -0,0 +1,15 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:170:19:HAL_DMA_Init 75
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:309:19:HAL_DMA_DeInit 19
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:407:19:HAL_DMA_Start 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:451:19:HAL_DMA_Start_IT 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:513:19:HAL_DMA_Abort 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:580:19:HAL_DMA_Abort_IT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:610:19:HAL_DMA_PollForTransfer 15
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:746:6:HAL_DMA_IRQHandler 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:967:19:HAL_DMA_RegisterCallback 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1029:19:HAL_DMA_UnRegisterCallback 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1114:22:HAL_DMA_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1125:10:HAL_DMA_GetError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1151:13:DMA_SetConfig 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1185:17:DMA_CalcBaseAndBitshift 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1213:26:DMA_CheckFifoParam 15
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d
new file mode 100644
index 0000000..0f32998
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o
new file mode 100644
index 0000000..0132dc3
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su
new file mode 100644
index 0000000..6c24b90
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su
@@ -0,0 +1,15 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:170:19:HAL_DMA_Init 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:309:19:HAL_DMA_DeInit 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:407:19:HAL_DMA_Start 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:451:19:HAL_DMA_Start_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:513:19:HAL_DMA_Abort 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:580:19:HAL_DMA_Abort_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:610:19:HAL_DMA_PollForTransfer 48 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:746:6:HAL_DMA_IRQHandler 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:967:19:HAL_DMA_RegisterCallback 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1029:19:HAL_DMA_UnRegisterCallback 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1114:22:HAL_DMA_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1125:10:HAL_DMA_GetError 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1151:13:DMA_SetConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1185:17:DMA_CalcBaseAndBitshift 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c:1213:26:DMA_CheckFifoParam 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.cyclo
new file mode 100644
index 0000000..30598fb
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.cyclo
@@ -0,0 +1,4 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:100:19:HAL_DMAEx_MultiBufferStart 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:154:19:HAL_DMAEx_MultiBufferStart_IT 266
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:239:19:HAL_DMAEx_ChangeMemory 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:276:13:DMA_MultiBufferSetConfig 2
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d
new file mode 100644
index 0000000..c44b000
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o
new file mode 100644
index 0000000..919a7ce
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su
new file mode 100644
index 0000000..9b2268b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su
@@ -0,0 +1,4 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:100:19:HAL_DMAEx_MultiBufferStart 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:154:19:HAL_DMAEx_MultiBufferStart_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:239:19:HAL_DMAEx_ChangeMemory 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c:276:13:DMA_MultiBufferSetConfig 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.cyclo
new file mode 100644
index 0000000..10a700b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.cyclo
@@ -0,0 +1,9 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:142:19:HAL_EXTI_SetConfigLine 25
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:237:19:HAL_EXTI_GetConfigLine 14
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:316:19:HAL_EXTI_ClearConfigLine 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:369:19:HAL_EXTI_RegisterCallback 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:394:19:HAL_EXTI_GetHandle 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:434:6:HAL_EXTI_IRQHandler 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:466:10:HAL_EXTI_GetPending 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:495:6:HAL_EXTI_ClearPending 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:516:6:HAL_EXTI_GenerateSWI 6
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d
new file mode 100644
index 0000000..3f44112
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o
new file mode 100644
index 0000000..bf31991
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su
new file mode 100644
index 0000000..be56024
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su
@@ -0,0 +1,9 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:142:19:HAL_EXTI_SetConfigLine 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:237:19:HAL_EXTI_GetConfigLine 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:316:19:HAL_EXTI_ClearConfigLine 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:369:19:HAL_EXTI_RegisterCallback 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:394:19:HAL_EXTI_GetHandle 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:434:6:HAL_EXTI_IRQHandler 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:466:10:HAL_EXTI_GetPending 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:495:6:HAL_EXTI_ClearPending 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c:516:6:HAL_EXTI_GenerateSWI 24 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.cyclo
new file mode 100644
index 0000000..fd00de6
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.cyclo
@@ -0,0 +1,17 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:154:19:HAL_FLASH_Program 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:212:19:HAL_FLASH_Program_IT 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:259:6:HAL_FLASH_IRQHandler 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:382:13:HAL_FLASH_EndOfOperationCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:399:13:HAL_FLASH_OperationErrorCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:431:19:HAL_FLASH_Unlock 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:455:19:HAL_FLASH_Lock 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:467:19:HAL_FLASH_OB_Unlock 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:487:19:HAL_FLASH_OB_Lock 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:499:19:HAL_FLASH_OB_Launch 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:536:10:HAL_FLASH_GetError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:550:19:FLASH_WaitForLastOperation 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:610:13:FLASH_Program_DoubleWord 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:644:13:FLASH_Program_Word 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:669:13:FLASH_Program_HalfWord 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:694:13:FLASH_Program_Byte 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:711:13:FLASH_SetErrorCode 7
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d
new file mode 100644
index 0000000..438de6d
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o
new file mode 100644
index 0000000..abaf402
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su
new file mode 100644
index 0000000..a5b3ff7
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su
@@ -0,0 +1,17 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:154:19:HAL_FLASH_Program 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:212:19:HAL_FLASH_Program_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:259:6:HAL_FLASH_IRQHandler 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:382:13:HAL_FLASH_EndOfOperationCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:399:13:HAL_FLASH_OperationErrorCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:431:19:HAL_FLASH_Unlock 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:455:19:HAL_FLASH_Lock 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:467:19:HAL_FLASH_OB_Unlock 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:487:19:HAL_FLASH_OB_Lock 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:499:19:HAL_FLASH_OB_Launch 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:536:10:HAL_FLASH_GetError 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:550:19:FLASH_WaitForLastOperation 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:610:13:FLASH_Program_DoubleWord 24 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:644:13:FLASH_Program_Word 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:669:13:FLASH_Program_HalfWord 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:694:13:FLASH_Program_Byte 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:711:13:FLASH_SetErrorCode 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.cyclo
new file mode 100644
index 0000000..b8a88d0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.cyclo
@@ -0,0 +1,22 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:160:19:HAL_FLASHEx_Erase 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:231:19:HAL_FLASHEx_Erase_IT 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:284:19:HAL_FLASHEx_OBProgram 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:343:6:HAL_FLASHEx_OBGetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:372:19:HAL_FLASHEx_AdvOBProgram 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:428:6:HAL_FLASHEx_AdvOBGetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:460:19:HAL_FLASHEx_OB_SelectPCROP 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:485:19:HAL_FLASHEx_OB_DeSelectPCROP 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:951:13:FLASH_MassErase 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:980:6:FLASH_Erase_Sector 24
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1030:26:FLASH_OB_EnableWRP 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1066:26:FLASH_OB_DisableWRP 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1099:26:FLASH_OB_EnablePCROP 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1127:26:FLASH_OB_DisablePCROP 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1160:26:FLASH_OB_RDP_LevelConfig 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1194:26:FLASH_OB_UserConfig 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1229:26:FLASH_OB_BOR_LevelConfig 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1247:16:FLASH_OB_GetUser 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1257:17:FLASH_OB_GetWRP 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1271:16:FLASH_OB_GetRDP 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1299:16:FLASH_OB_GetBOR 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1309:6:FLASH_FlushCaches 3
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d
new file mode 100644
index 0000000..360fafb
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o
new file mode 100644
index 0000000..798a8b6
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su
new file mode 100644
index 0000000..75051d9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su
@@ -0,0 +1,22 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:160:19:HAL_FLASHEx_Erase 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:231:19:HAL_FLASHEx_Erase_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:284:19:HAL_FLASHEx_OBProgram 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:343:6:HAL_FLASHEx_OBGetConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:372:19:HAL_FLASHEx_AdvOBProgram 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:428:6:HAL_FLASHEx_AdvOBGetConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:460:19:HAL_FLASHEx_OB_SelectPCROP 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:485:19:HAL_FLASHEx_OB_DeSelectPCROP 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:951:13:FLASH_MassErase 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:980:6:FLASH_Erase_Sector 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1030:26:FLASH_OB_EnableWRP 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1066:26:FLASH_OB_DisableWRP 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1099:26:FLASH_OB_EnablePCROP 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1127:26:FLASH_OB_DisablePCROP 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1160:26:FLASH_OB_RDP_LevelConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1194:26:FLASH_OB_UserConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1229:26:FLASH_OB_BOR_LevelConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1247:16:FLASH_OB_GetUser 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1257:17:FLASH_OB_GetWRP 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1271:16:FLASH_OB_GetRDP 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1299:16:FLASH_OB_GetBOR 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c:1309:6:FLASH_FlushCaches 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.cyclo
new file mode 100644
index 0000000..e69de29
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d
new file mode 100644
index 0000000..d808b36
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o
new file mode 100644
index 0000000..aa4ce1a
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su
new file mode 100644
index 0000000..e69de29
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.cyclo
new file mode 100644
index 0000000..ebf185b
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.cyclo
@@ -0,0 +1,8 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:164:6:HAL_GPIO_Init 50
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:294:6:HAL_GPIO_DeInit 19
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:375:15:HAL_GPIO_ReadPin 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:410:6:HAL_GPIO_WritePin 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:433:6:HAL_GPIO_TogglePin 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:458:19:HAL_GPIO_LockPin 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:492:6:HAL_GPIO_EXTI_IRQHandler 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:507:13:HAL_GPIO_EXTI_Callback 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d
new file mode 100644
index 0000000..1632f94
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
new file mode 100644
index 0000000..e684534
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su
new file mode 100644
index 0000000..2ae1321
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su
@@ -0,0 +1,8 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:164:6:HAL_GPIO_Init 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:294:6:HAL_GPIO_DeInit 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:375:15:HAL_GPIO_ReadPin 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:410:6:HAL_GPIO_WritePin 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:433:6:HAL_GPIO_TogglePin 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:458:19:HAL_GPIO_LockPin 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:492:6:HAL_GPIO_EXTI_IRQHandler 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c:507:13:HAL_GPIO_EXTI_Callback 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.cyclo
new file mode 100644
index 0000000..dc83379
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.cyclo
@@ -0,0 +1,17 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:90:6:HAL_PWR_DeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:108:6:HAL_PWR_EnableBkUpAccess 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:128:6:HAL_PWR_DisableBkUpAccess 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:275:6:HAL_PWR_ConfigPVD 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:318:6:HAL_PWR_EnablePVD 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:327:6:HAL_PWR_DisablePVD 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:341:6:HAL_PWR_EnableWakeUpPin 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:359:6:HAL_PWR_DisableWakeUpPin 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:391:6:HAL_PWR_EnterSLEEPMode 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:445:6:HAL_PWR_EnterSTOPMode 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:488:6:HAL_PWR_EnterSTANDBYMode 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:509:6:HAL_PWR_PVD_IRQHandler 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:526:13:HAL_PWR_PVDCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:541:6:HAL_PWR_EnableSleepOnExit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:553:6:HAL_PWR_DisableSleepOnExit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:565:6:HAL_PWR_EnableSEVOnPend 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:577:6:HAL_PWR_DisableSEVOnPend 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d
new file mode 100644
index 0000000..138b909
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o
new file mode 100644
index 0000000..ed6839f
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su
new file mode 100644
index 0000000..4eb40e8
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su
@@ -0,0 +1,17 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:90:6:HAL_PWR_DeInit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:108:6:HAL_PWR_EnableBkUpAccess 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:128:6:HAL_PWR_DisableBkUpAccess 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:275:6:HAL_PWR_ConfigPVD 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:318:6:HAL_PWR_EnablePVD 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:327:6:HAL_PWR_DisablePVD 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:341:6:HAL_PWR_EnableWakeUpPin 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:359:6:HAL_PWR_DisableWakeUpPin 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:391:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:445:6:HAL_PWR_EnterSTOPMode 16 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:488:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:509:6:HAL_PWR_PVD_IRQHandler 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:526:13:HAL_PWR_PVDCallback 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:541:6:HAL_PWR_EnableSleepOnExit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:553:6:HAL_PWR_DisableSleepOnExit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:565:6:HAL_PWR_EnableSEVOnPend 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c:577:6:HAL_PWR_DisableSEVOnPend 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.cyclo
new file mode 100644
index 0000000..230e0c0
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.cyclo
@@ -0,0 +1,10 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:141:19:HAL_PWREx_EnableBkUpReg 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:165:19:HAL_PWREx_DisableBkUpReg 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:189:6:HAL_PWREx_EnableFlashPowerDown 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:198:6:HAL_PWREx_DisableFlashPowerDown 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:211:10:HAL_PWREx_GetVoltageRange 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:288:19:HAL_PWREx_ControlVoltageScaling 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:359:6:HAL_PWREx_EnableMainRegulatorLowVoltage 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:370:6:HAL_PWREx_DisableMainRegulatorLowVoltage 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:381:6:HAL_PWREx_EnableLowRegulatorLowVoltage 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:392:6:HAL_PWREx_DisableLowRegulatorLowVoltage 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d
new file mode 100644
index 0000000..2bd8f21
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o
new file mode 100644
index 0000000..5835e50
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su
new file mode 100644
index 0000000..35abba9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su
@@ -0,0 +1,10 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:141:19:HAL_PWREx_EnableBkUpReg 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:165:19:HAL_PWREx_DisableBkUpReg 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:189:6:HAL_PWREx_EnableFlashPowerDown 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:198:6:HAL_PWREx_DisableFlashPowerDown 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:211:10:HAL_PWREx_GetVoltageRange 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:288:19:HAL_PWREx_ControlVoltageScaling 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:359:6:HAL_PWREx_EnableMainRegulatorLowVoltage 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:370:6:HAL_PWREx_DisableMainRegulatorLowVoltage 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:381:6:HAL_PWREx_EnableLowRegulatorLowVoltage 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c:392:6:HAL_PWREx_DisableLowRegulatorLowVoltage 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.cyclo
new file mode 100644
index 0000000..48d193f
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.cyclo
@@ -0,0 +1,14 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:200:26:HAL_RCC_DeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:219:26:HAL_RCC_OscConfig 89
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:591:19:HAL_RCC_ClockConfig 53
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:775:6:HAL_RCC_MCOConfig 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:841:6:HAL_RCC_EnableCSS 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:850:6:HAL_RCC_DisableCSS 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:885:17:HAL_RCC_GetSysClockFreq 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:941:10:HAL_RCC_GetHCLKFreq 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:952:10:HAL_RCC_GetPCLK1Freq 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:964:10:HAL_RCC_GetPCLK2Freq 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:977:13:HAL_RCC_GetOscConfig 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1056:6:HAL_RCC_GetClockConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1082:6:HAL_RCC_NMI_IRQHandler 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1099:13:HAL_RCC_CSSCallback 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d
new file mode 100644
index 0000000..2f968e9
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
new file mode 100644
index 0000000..ca30b10
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su
new file mode 100644
index 0000000..9dfcbbe
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su
@@ -0,0 +1,14 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:200:26:HAL_RCC_DeInit 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:219:26:HAL_RCC_OscConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:591:19:HAL_RCC_ClockConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:775:6:HAL_RCC_MCOConfig 56 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:841:6:HAL_RCC_EnableCSS 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:850:6:HAL_RCC_DisableCSS 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:885:17:HAL_RCC_GetSysClockFreq 112 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:941:10:HAL_RCC_GetHCLKFreq 4 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:952:10:HAL_RCC_GetPCLK1Freq 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:964:10:HAL_RCC_GetPCLK2Freq 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:977:13:HAL_RCC_GetOscConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1056:6:HAL_RCC_GetClockConfig 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1082:6:HAL_RCC_NMI_IRQHandler 8 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c:1099:13:HAL_RCC_CSSCallback 4 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.cyclo
new file mode 100644
index 0000000..dcb330c
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.cyclo
@@ -0,0 +1,9 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1284:19:HAL_RCCEx_PeriphCLKConfig 141
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1642:6:HAL_RCCEx_GetPeriphCLKConfig 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1738:10:HAL_RCCEx_GetPeriphCLKFreq 23
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2790:6:HAL_RCCEx_SelectLSEMode 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2827:19:HAL_RCCEx_EnablePLLI2S 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2910:19:HAL_RCCEx_DisablePLLI2S 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3167:19:HAL_RCC_DeInit 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3357:19:HAL_RCC_OscConfig 91
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3727:6:HAL_RCC_GetOscConfig 8
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d
new file mode 100644
index 0000000..91389ad
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o
new file mode 100644
index 0000000..033d4e6
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su
new file mode 100644
index 0000000..e289ad3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su
@@ -0,0 +1,9 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1284:19:HAL_RCCEx_PeriphCLKConfig 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1642:6:HAL_RCCEx_GetPeriphCLKConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:1738:10:HAL_RCCEx_GetPeriphCLKFreq 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2790:6:HAL_RCCEx_SelectLSEMode 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2827:19:HAL_RCCEx_EnablePLLI2S 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:2910:19:HAL_RCCEx_DisablePLLI2S 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3167:19:HAL_RCC_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3357:19:HAL_RCC_OscConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c:3727:6:HAL_RCC_GetOscConfig 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.cyclo
new file mode 100644
index 0000000..9308e31
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.cyclo
@@ -0,0 +1,55 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:311:19:HAL_SPI_Init 52
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:437:19:HAL_SPI_DeInit 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:481:13:HAL_SPI_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:497:13:HAL_SPI_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:769:19:HAL_SPI_Transmit 27
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:939:19:HAL_SPI_Receive 22
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1142:19:HAL_SPI_TransmitReceive 39
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1393:19:HAL_SPI_Transmit_IT 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1479:19:HAL_SPI_Receive_IT 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1575:19:HAL_SPI_TransmitReceive_IT 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1664:19:HAL_SPI_Transmit_DMA 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1771:19:HAL_SPI_Receive_DMA 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1885:19:HAL_SPI_TransmitReceive_DMA 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2029:19:HAL_SPI_Abort 16
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2174:19:HAL_SPI_Abort_IT 19
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2335:19:HAL_SPI_DMAPause 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2355:19:HAL_SPI_DMAResume 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2375:19:HAL_SPI_DMAStop 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2415:6:HAL_SPI_IRQHandler 21
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2522:13:HAL_SPI_TxCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2538:13:HAL_SPI_RxCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2554:13:HAL_SPI_TxRxCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2570:13:HAL_SPI_TxHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2586:13:HAL_SPI_RxHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2602:13:HAL_SPI_TxRxHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2618:13:HAL_SPI_ErrorCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2636:13:HAL_SPI_AbortCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2671:22:HAL_SPI_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2683:10:HAL_SPI_GetError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2708:13:SPI_DMATransmitCplt 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2765:13:SPI_DMAReceiveCplt 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2854:13:SPI_DMATransmitReceiveCplt 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2934:13:SPI_DMAHalfTransmitCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2952:13:SPI_DMAHalfReceiveCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2970:13:SPI_DMAHalfTransmitReceiveCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2988:13:SPI_DMAError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3011:13:SPI_DMAAbortOnError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3033:13:SPI_DMATxAbortCallback 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3098:13:SPI_DMARxAbortCallback 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3157:13:SPI_2linesRxISR_8BIT 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3220:13:SPI_2linesTxISR_8BIT 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3256:13:SPI_2linesRxISR_16BIT 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3312:13:SPI_2linesTxISR_16BIT 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3372:13:SPI_RxISR_8BIT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3428:13:SPI_RxISR_16BIT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3461:13:SPI_TxISR_8BIT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3486:13:SPI_TxISR_16BIT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3516:26:SPI_WaitFlagStateUntilTimeout 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3583:26:SPI_EndRxTransaction 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3633:26:SPI_EndRxTxTransaction 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3680:13:SPI_CloseRxTx_ISR 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3775:13:SPI_CloseRx_ISR 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3838:13:SPI_CloseTx_ISR 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3899:13:SPI_AbortRx_ISR 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3935:13:SPI_AbortTx_ISR 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d
new file mode 100644
index 0000000..fe409e3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o
new file mode 100644
index 0000000..c6992c7
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su
new file mode 100644
index 0000000..720d082
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su
@@ -0,0 +1,55 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:311:19:HAL_SPI_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:437:19:HAL_SPI_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:481:13:HAL_SPI_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:497:13:HAL_SPI_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:769:19:HAL_SPI_Transmit 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:939:19:HAL_SPI_Receive 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1142:19:HAL_SPI_TransmitReceive 56 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1393:19:HAL_SPI_Transmit_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1479:19:HAL_SPI_Receive_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1575:19:HAL_SPI_TransmitReceive_IT 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1664:19:HAL_SPI_Transmit_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1771:19:HAL_SPI_Receive_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:1885:19:HAL_SPI_TransmitReceive_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2029:19:HAL_SPI_Abort 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2174:19:HAL_SPI_Abort_IT 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2335:19:HAL_SPI_DMAPause 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2355:19:HAL_SPI_DMAResume 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2375:19:HAL_SPI_DMAStop 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2415:6:HAL_SPI_IRQHandler 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2522:13:HAL_SPI_TxCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2538:13:HAL_SPI_RxCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2554:13:HAL_SPI_TxRxCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2570:13:HAL_SPI_TxHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2586:13:HAL_SPI_RxHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2602:13:HAL_SPI_TxRxHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2618:13:HAL_SPI_ErrorCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2636:13:HAL_SPI_AbortCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2671:22:HAL_SPI_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2683:10:HAL_SPI_GetError 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2708:13:SPI_DMATransmitCplt 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2765:13:SPI_DMAReceiveCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2854:13:SPI_DMATransmitReceiveCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2934:13:SPI_DMAHalfTransmitCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2952:13:SPI_DMAHalfReceiveCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2970:13:SPI_DMAHalfTransmitReceiveCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:2988:13:SPI_DMAError 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3011:13:SPI_DMAAbortOnError 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3033:13:SPI_DMATxAbortCallback 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3098:13:SPI_DMARxAbortCallback 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3157:13:SPI_2linesRxISR_8BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3220:13:SPI_2linesTxISR_8BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3256:13:SPI_2linesRxISR_16BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3312:13:SPI_2linesTxISR_16BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3372:13:SPI_RxISR_8BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3428:13:SPI_RxISR_16BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3461:13:SPI_TxISR_8BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3486:13:SPI_TxISR_16BIT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3516:26:SPI_WaitFlagStateUntilTimeout 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3583:26:SPI_EndRxTransaction 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3633:26:SPI_EndRxTxTransaction 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3680:13:SPI_CloseRxTx_ISR 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3775:13:SPI_CloseRx_ISR 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3838:13:SPI_CloseTx_ISR 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3899:13:SPI_AbortRx_ISR 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c:3935:13:SPI_AbortTx_ISR 16 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.cyclo
new file mode 100644
index 0000000..9bf2841
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.cyclo
@@ -0,0 +1,119 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:266:19:HAL_TIM_Base_Init 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:326:19:HAL_TIM_Base_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:369:13:HAL_TIM_Base_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:384:13:HAL_TIM_Base_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:400:19:HAL_TIM_Base_Start 25
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:439:19:HAL_TIM_Base_Stop 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:459:19:HAL_TIM_Base_Start_IT 25
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:501:19:HAL_TIM_Base_Stop_IT 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:526:19:HAL_TIM_Base_Start_DMA 23
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:595:19:HAL_TIM_Base_Stop_DMA 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:650:19:HAL_TIM_OC_Init 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:710:19:HAL_TIM_OC_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:753:13:HAL_TIM_OC_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:768:13:HAL_TIM_OC_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:789:19:HAL_TIM_OC_Start 64
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:843:19:HAL_TIM_OC_Stop 55
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:878:19:HAL_TIM_OC_Start_IT 69
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:971:19:HAL_TIM_OC_Stop_IT 60
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1048:19:HAL_TIM_OC_Start_DMA 79
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1212:19:HAL_TIM_OC_Stop_DMA 60
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1315:19:HAL_TIM_PWM_Init 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1375:19:HAL_TIM_PWM_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1418:13:HAL_TIM_PWM_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1433:13:HAL_TIM_PWM_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1454:19:HAL_TIM_PWM_Start 64
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1508:19:HAL_TIM_PWM_Stop 55
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1543:19:HAL_TIM_PWM_Start_IT 69
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1636:19:HAL_TIM_PWM_Stop_IT 60
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1713:19:HAL_TIM_PWM_Start_DMA 79
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1876:19:HAL_TIM_PWM_Stop_DMA 60
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1979:19:HAL_TIM_IC_Init 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2039:19:HAL_TIM_IC_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2082:13:HAL_TIM_IC_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2097:13:HAL_TIM_IC_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2118:19:HAL_TIM_IC_Start 68
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2170:19:HAL_TIM_IC_Stop 53
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2200:19:HAL_TIM_IC_Start_IT 73
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2292:19:HAL_TIM_IC_Stop_IT 58
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2364:19:HAL_TIM_IC_Start_DMA 86
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2523:19:HAL_TIM_IC_Stop_DMA 64
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2628:19:HAL_TIM_OnePulse_Init 34
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2697:19:HAL_TIM_OnePulse_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2742:13:HAL_TIM_OnePulse_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2757:13:HAL_TIM_OnePulse_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2777:19:HAL_TIM_OnePulse_Start 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2834:19:HAL_TIM_OnePulse_Stop 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2877:19:HAL_TIM_OnePulse_Start_IT 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2940:19:HAL_TIM_OnePulse_Stop_IT 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3019:19:HAL_TIM_Encoder_Init 48
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3134:19:HAL_TIM_Encoder_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3179:13:HAL_TIM_Encoder_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3194:13:HAL_TIM_Encoder_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3214:19:HAL_TIM_Encoder_Start 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3308:19:HAL_TIM_Encoder_Stop 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3368:19:HAL_TIM_Encoder_Start_IT 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3468:19:HAL_TIM_Encoder_Stop_IT 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3533:19:HAL_TIM_Encoder_Start_DMA 39
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3746:19:HAL_TIM_Encoder_Stop_DMA 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3823:6:HAL_TIM_IRQHandler 21
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4041:19:HAL_TIM_OC_ConfigChannel 51
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4120:19:HAL_TIM_IC_ConfigChannel 49
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4219:19:HAL_TIM_PWM_ConfigChannel 49
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4333:19:HAL_TIM_OnePulse_ConfigChannel 52
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4481:19:HAL_TIM_DMABurst_WriteStart 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4534:19:HAL_TIM_DMABurst_MultiWriteStart 71
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4718:19:HAL_TIM_DMABurst_WriteStop 16
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4819:19:HAL_TIM_DMABurst_ReadStart 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4870:19:HAL_TIM_DMABurst_MultiReadStart 71
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5054:19:HAL_TIM_DMABurst_ReadStop 16
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5137:19:HAL_TIM_GenerateEvent 18
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5174:19:HAL_TIM_ConfigOCrefClear 29
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5304:19:HAL_TIM_ConfigClockSource 128
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5458:19:HAL_TIM_ConfigTI1Input 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5490:19:HAL_TIM_SlaveConfigSynchro 24
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5530:19:HAL_TIM_SlaveConfigSynchro_IT 24
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5573:10:HAL_TIM_ReadCapturedValue 37
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5657:13:HAL_TIM_PeriodElapsedCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5672:13:HAL_TIM_PeriodElapsedHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5687:13:HAL_TIM_OC_DelayElapsedCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5702:13:HAL_TIM_IC_CaptureCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5717:13:HAL_TIM_IC_CaptureHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5732:13:HAL_TIM_PWM_PulseFinishedCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5747:13:HAL_TIM_PWM_PulseFinishedHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5762:13:HAL_TIM_TriggerCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5777:13:HAL_TIM_TriggerHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5792:13:HAL_TIM_ErrorCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6339:22:HAL_TIM_Base_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6349:22:HAL_TIM_OC_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6359:22:HAL_TIM_PWM_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6369:22:HAL_TIM_IC_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6379:22:HAL_TIM_OnePulse_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6389:22:HAL_TIM_Encoder_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6399:23:HAL_TIM_GetActiveChannel 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6417:29:HAL_TIM_GetChannelState 48
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6434:30:HAL_TIM_DMABurstState 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6459:6:TIM_DMAError 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6502:13:TIM_DMADelayPulseCplt 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6561:6:TIM_DMADelayPulseHalfCplt 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6600:6:TIM_DMACaptureCplt 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6663:6:TIM_DMACaptureHalfCplt 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6702:13:TIM_DMAPeriodElapsedCplt 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6723:13:TIM_DMAPeriodElapsedHalfCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6739:13:TIM_DMATriggerCplt 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6760:13:TIM_DMATriggerHalfCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6777:6:TIM_Base_SetConfig 22
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6832:13:TIM_OC1_SetConfig 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6908:6:TIM_OC2_SetConfig 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6984:13:TIM_OC3_SetConfig 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7059:13:TIM_OC4_SetConfig 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7120:26:TIM_SlaveTimer_SetConfig 87
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7254:6:TIM_TI1_SetConfig 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7301:13:TIM_TI1_ConfigInputStage 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7344:13:TIM_TI2_SetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7384:13:TIM_TI2_ConfigInputStage 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7427:13:TIM_TI3_SetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7475:13:TIM_TI4_SetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7518:13:TIM_ITRx_SetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7548:6:TIM_ETR_SetConfig 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7578:6:TIM_CCxChannelCmd 18
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d
new file mode 100644
index 0000000..0dbb856
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
new file mode 100644
index 0000000..3221d05
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su
new file mode 100644
index 0000000..f0bc724
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su
@@ -0,0 +1,119 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:266:19:HAL_TIM_Base_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:326:19:HAL_TIM_Base_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:369:13:HAL_TIM_Base_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:384:13:HAL_TIM_Base_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:400:19:HAL_TIM_Base_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:439:19:HAL_TIM_Base_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:459:19:HAL_TIM_Base_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:501:19:HAL_TIM_Base_Stop_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:526:19:HAL_TIM_Base_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:595:19:HAL_TIM_Base_Stop_DMA 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:650:19:HAL_TIM_OC_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:710:19:HAL_TIM_OC_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:753:13:HAL_TIM_OC_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:768:13:HAL_TIM_OC_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:789:19:HAL_TIM_OC_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:843:19:HAL_TIM_OC_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:878:19:HAL_TIM_OC_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:971:19:HAL_TIM_OC_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1048:19:HAL_TIM_OC_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1212:19:HAL_TIM_OC_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1315:19:HAL_TIM_PWM_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1375:19:HAL_TIM_PWM_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1418:13:HAL_TIM_PWM_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1433:13:HAL_TIM_PWM_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1454:19:HAL_TIM_PWM_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1508:19:HAL_TIM_PWM_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1543:19:HAL_TIM_PWM_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1636:19:HAL_TIM_PWM_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1713:19:HAL_TIM_PWM_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1876:19:HAL_TIM_PWM_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:1979:19:HAL_TIM_IC_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2039:19:HAL_TIM_IC_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2082:13:HAL_TIM_IC_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2097:13:HAL_TIM_IC_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2118:19:HAL_TIM_IC_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2170:19:HAL_TIM_IC_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2200:19:HAL_TIM_IC_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2292:19:HAL_TIM_IC_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2364:19:HAL_TIM_IC_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2523:19:HAL_TIM_IC_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2628:19:HAL_TIM_OnePulse_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2697:19:HAL_TIM_OnePulse_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2742:13:HAL_TIM_OnePulse_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2757:13:HAL_TIM_OnePulse_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2777:19:HAL_TIM_OnePulse_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2834:19:HAL_TIM_OnePulse_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2877:19:HAL_TIM_OnePulse_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:2940:19:HAL_TIM_OnePulse_Stop_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3019:19:HAL_TIM_Encoder_Init 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3134:19:HAL_TIM_Encoder_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3179:13:HAL_TIM_Encoder_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3194:13:HAL_TIM_Encoder_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3214:19:HAL_TIM_Encoder_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3308:19:HAL_TIM_Encoder_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3368:19:HAL_TIM_Encoder_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3468:19:HAL_TIM_Encoder_Stop_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3533:19:HAL_TIM_Encoder_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3746:19:HAL_TIM_Encoder_Stop_DMA 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:3823:6:HAL_TIM_IRQHandler 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4041:19:HAL_TIM_OC_ConfigChannel 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4120:19:HAL_TIM_IC_ConfigChannel 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4219:19:HAL_TIM_PWM_ConfigChannel 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4333:19:HAL_TIM_OnePulse_ConfigChannel 56 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4481:19:HAL_TIM_DMABurst_WriteStart 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4534:19:HAL_TIM_DMABurst_MultiWriteStart 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4718:19:HAL_TIM_DMABurst_WriteStop 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4819:19:HAL_TIM_DMABurst_ReadStart 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:4870:19:HAL_TIM_DMABurst_MultiReadStart 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5054:19:HAL_TIM_DMABurst_ReadStop 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5137:19:HAL_TIM_GenerateEvent 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5174:19:HAL_TIM_ConfigOCrefClear 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5304:19:HAL_TIM_ConfigClockSource 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5458:19:HAL_TIM_ConfigTI1Input 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5490:19:HAL_TIM_SlaveConfigSynchro 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5530:19:HAL_TIM_SlaveConfigSynchro_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5573:10:HAL_TIM_ReadCapturedValue 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5657:13:HAL_TIM_PeriodElapsedCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5672:13:HAL_TIM_PeriodElapsedHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5687:13:HAL_TIM_OC_DelayElapsedCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5702:13:HAL_TIM_IC_CaptureCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5717:13:HAL_TIM_IC_CaptureHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5732:13:HAL_TIM_PWM_PulseFinishedCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5747:13:HAL_TIM_PWM_PulseFinishedHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5762:13:HAL_TIM_TriggerCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5777:13:HAL_TIM_TriggerHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:5792:13:HAL_TIM_ErrorCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6339:22:HAL_TIM_Base_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6349:22:HAL_TIM_OC_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6359:22:HAL_TIM_PWM_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6369:22:HAL_TIM_IC_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6379:22:HAL_TIM_OnePulse_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6389:22:HAL_TIM_Encoder_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6399:23:HAL_TIM_GetActiveChannel 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6417:29:HAL_TIM_GetChannelState 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6434:30:HAL_TIM_DMABurstState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6459:6:TIM_DMAError 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6502:13:TIM_DMADelayPulseCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6561:6:TIM_DMADelayPulseHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6600:6:TIM_DMACaptureCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6663:6:TIM_DMACaptureHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6702:13:TIM_DMAPeriodElapsedCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6723:13:TIM_DMAPeriodElapsedHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6739:13:TIM_DMATriggerCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6760:13:TIM_DMATriggerHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6777:6:TIM_Base_SetConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6832:13:TIM_OC1_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6908:6:TIM_OC2_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:6984:13:TIM_OC3_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7059:13:TIM_OC4_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7120:26:TIM_SlaveTimer_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7254:6:TIM_TI1_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7301:13:TIM_TI1_ConfigInputStage 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7344:13:TIM_TI2_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7384:13:TIM_TI2_ConfigInputStage 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7427:13:TIM_TI3_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7475:13:TIM_TI4_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7518:13:TIM_ITRx_SetConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7548:6:TIM_ETR_SetConfig 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c:7578:6:TIM_CCxChannelCmd 32 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.cyclo
new file mode 100644
index 0000000..5905edf
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.cyclo
@@ -0,0 +1,42 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:138:19:HAL_TIMEx_HallSensor_Init 32
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:240:19:HAL_TIMEx_HallSensor_DeInit 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:285:13:HAL_TIMEx_HallSensor_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:300:13:HAL_TIMEx_HallSensor_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:315:19:HAL_TIMEx_HallSensor_Start 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:369:19:HAL_TIMEx_HallSensor_Stop 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:397:19:HAL_TIMEx_HallSensor_Start_IT 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:454:19:HAL_TIMEx_HallSensor_Stop_IT 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:487:19:HAL_TIMEx_HallSensor_Start_DMA 23
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:563:19:HAL_TIMEx_HallSensor_Stop_DMA 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:625:19:HAL_TIMEx_OCN_Start 25
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:676:19:HAL_TIMEx_OCN_Stop 16
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:708:19:HAL_TIMEx_OCN_Start_IT 30
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:795:19:HAL_TIMEx_OCN_Stop_IT 22
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:870:19:HAL_TIMEx_OCN_Start_DMA 39
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1008:19:HAL_TIMEx_OCN_Stop_DMA 21
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1098:19:HAL_TIMEx_PWMN_Start 25
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1148:19:HAL_TIMEx_PWMN_Stop 16
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1180:19:HAL_TIMEx_PWMN_Start_IT 30
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1266:19:HAL_TIMEx_PWMN_Stop_IT 22
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1341:19:HAL_TIMEx_PWMN_Start_DMA 39
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1479:19:HAL_TIMEx_PWMN_Stop_DMA 21
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1570:19:HAL_TIMEx_OnePulseN_Start 14
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1619:19:HAL_TIMEx_OnePulseN_Stop 14
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1658:19:HAL_TIMEx_OnePulseN_Start_IT 14
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1713:19:HAL_TIMEx_OnePulseN_Stop_IT 14
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1792:19:HAL_TIMEx_ConfigCommutEvent 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1848:19:HAL_TIMEx_ConfigCommutEvent_IT 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1905:19:HAL_TIMEx_ConfigCommutEvent_DMA 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1954:19:HAL_TIMEx_MasterConfigSynchronization 28
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2015:19:HAL_TIMEx_ConfigBreakDeadTime 19
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2091:19:HAL_TIMEx_RemapConfig 24
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2147:13:HAL_TIMEx_CommutCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2161:13:HAL_TIMEx_CommutHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2176:13:HAL_TIMEx_BreakCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2209:22:HAL_TIMEx_HallSensor_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2224:29:HAL_TIMEx_GetChannelNState 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2253:6:TIMEx_DMACommutationCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2272:6:TIMEx_DMACommutationHalfCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2292:13:TIM_DMADelayPulseNCplt 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2342:13:TIM_DMAErrorCCxN 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2387:13:TIM_CCxNChannelCmd 1
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d
new file mode 100644
index 0000000..5f76413
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
new file mode 100644
index 0000000..cc74185
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su
new file mode 100644
index 0000000..4be8fb3
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su
@@ -0,0 +1,42 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:138:19:HAL_TIMEx_HallSensor_Init 48 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:240:19:HAL_TIMEx_HallSensor_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:285:13:HAL_TIMEx_HallSensor_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:300:13:HAL_TIMEx_HallSensor_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:315:19:HAL_TIMEx_HallSensor_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:369:19:HAL_TIMEx_HallSensor_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:397:19:HAL_TIMEx_HallSensor_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:454:19:HAL_TIMEx_HallSensor_Stop_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:487:19:HAL_TIMEx_HallSensor_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:563:19:HAL_TIMEx_HallSensor_Stop_DMA 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:625:19:HAL_TIMEx_OCN_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:676:19:HAL_TIMEx_OCN_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:708:19:HAL_TIMEx_OCN_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:795:19:HAL_TIMEx_OCN_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:870:19:HAL_TIMEx_OCN_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1008:19:HAL_TIMEx_OCN_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1098:19:HAL_TIMEx_PWMN_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1148:19:HAL_TIMEx_PWMN_Stop 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1180:19:HAL_TIMEx_PWMN_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1266:19:HAL_TIMEx_PWMN_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1341:19:HAL_TIMEx_PWMN_Start_DMA 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1479:19:HAL_TIMEx_PWMN_Stop_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1570:19:HAL_TIMEx_OnePulseN_Start 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1619:19:HAL_TIMEx_OnePulseN_Stop 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1658:19:HAL_TIMEx_OnePulseN_Start_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1713:19:HAL_TIMEx_OnePulseN_Stop_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1792:19:HAL_TIMEx_ConfigCommutEvent 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1848:19:HAL_TIMEx_ConfigCommutEvent_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1905:19:HAL_TIMEx_ConfigCommutEvent_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:1954:19:HAL_TIMEx_MasterConfigSynchronization 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2015:19:HAL_TIMEx_ConfigBreakDeadTime 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2091:19:HAL_TIMEx_RemapConfig 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2147:13:HAL_TIMEx_CommutCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2161:13:HAL_TIMEx_CommutHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2176:13:HAL_TIMEx_BreakCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2209:22:HAL_TIMEx_HallSensor_GetState 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2224:29:HAL_TIMEx_GetChannelNState 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2253:6:TIMEx_DMACommutationCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2272:6:TIMEx_DMACommutationHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2292:13:TIM_DMADelayPulseNCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2342:13:TIM_DMAErrorCCxN 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c:2387:13:TIM_CCxNChannelCmd 32 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.cyclo
new file mode 100644
index 0000000..4dbe3d4
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.cyclo
@@ -0,0 +1,62 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:357:19:HAL_UART_Init 26
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:435:19:HAL_HalfDuplex_Init 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:509:19:HAL_LIN_Init 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:591:19:HAL_MultiProcessor_Init 20
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:669:19:HAL_UART_DeInit 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:715:13:HAL_UART_MspInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:730:13:HAL_UART_MspDeInit 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1135:19:HAL_UART_Transmit 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1221:19:HAL_UART_Receive 12
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1308:19:HAL_UART_Transmit_IT 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1347:19:HAL_UART_Receive_IT 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1379:19:HAL_UART_Transmit_DMA 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1441:19:HAL_UART_Receive_DMA 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1468:19:HAL_UART_DMAPause 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1499:19:HAL_UART_DMAResume 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1533:19:HAL_UART_DMAStop 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1588:19:HAL_UARTEx_ReceiveToIdle 17
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1713:19:HAL_UARTEx_ReceiveToIdle_IT 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1773:19:HAL_UARTEx_ReceiveToIdle_DMA 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1841:29:HAL_UARTEx_GetRxEventType 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1859:19:HAL_UART_Abort 15
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1948:19:HAL_UART_AbortTransmit 7
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1999:19:HAL_UART_AbortReceive 10
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2060:19:HAL_UART_Abort_IT 18
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2195:19:HAL_UART_AbortTransmit_IT 6
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2272:19:HAL_UART_AbortReceive_IT 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2350:6:HAL_UART_IRQHandler 45
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2592:13:HAL_UART_TxCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2607:13:HAL_UART_TxHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2622:13:HAL_UART_RxCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2637:13:HAL_UART_RxHalfCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2652:13:HAL_UART_ErrorCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2666:13:HAL_UART_AbortCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2681:13:HAL_UART_AbortTransmitCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2696:13:HAL_UART_AbortReceiveCpltCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2713:13:HAL_UARTEx_RxEventCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2753:19:HAL_LIN_SendBreak 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2780:19:HAL_MultiProcessor_EnterMuteMode 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2808:19:HAL_MultiProcessor_ExitMuteMode 13
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2836:19:HAL_HalfDuplex_EnableTransmitter 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2871:19:HAL_HalfDuplex_EnableReceiver 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2928:23:HAL_UART_GetState 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2943:10:HAL_UART_GetError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2988:13:UART_DMATransmitCplt 4
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3023:13:UART_DMATxHalfCplt 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3042:13:UART_DMAReceiveCplt 8
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3104:13:UART_DMARxHalfCplt 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3143:13:UART_DMAError 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3185:26:UART_WaitOnFlagUntilTimeout 9
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3236:19:UART_Start_Receive_IT 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3271:19:UART_Start_Receive_DMA 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3321:13:UART_EndTxTransfer 2
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3335:13:UART_EndRxTransfer 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3359:13:UART_DMAAbortOnError 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3383:13:UART_DMATxAbortCallback 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3429:13:UART_DMARxAbortCallback 3
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3475:13:UART_DMATxOnlyAbortCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3503:13:UART_DMARxOnlyAbortCallback 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3529:26:UART_Transmit_IT 5
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3569:26:UART_EndTransmit_IT 1
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3594:26:UART_Receive_IT 11
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3695:13:UART_SetConfig 14
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d
new file mode 100644
index 0000000..25e4bab
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d
@@ -0,0 +1,66 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+../Core/Inc/stm32f4xx_hal_conf.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f413xx.h:
+../Drivers/CMSIS/Include/core_cm4.h:
+../Drivers/CMSIS/Include/cmsis_version.h:
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+../Drivers/CMSIS/Include/mpu_armv7.h:
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h:
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
new file mode 100644
index 0000000..ad888cc
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su
new file mode 100644
index 0000000..5fa616c
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su
@@ -0,0 +1,62 @@
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:357:19:HAL_UART_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:435:19:HAL_HalfDuplex_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:509:19:HAL_LIN_Init 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:591:19:HAL_MultiProcessor_Init 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:669:19:HAL_UART_DeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:715:13:HAL_UART_MspInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:730:13:HAL_UART_MspDeInit 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1135:19:HAL_UART_Transmit 48 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1221:19:HAL_UART_Receive 48 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1308:19:HAL_UART_Transmit_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1347:19:HAL_UART_Receive_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1379:19:HAL_UART_Transmit_DMA 56 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1441:19:HAL_UART_Receive_DMA 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1468:19:HAL_UART_DMAPause 120 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1499:19:HAL_UART_DMAResume 120 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1533:19:HAL_UART_DMAStop 72 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1588:19:HAL_UARTEx_ReceiveToIdle 40 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1713:19:HAL_UARTEx_ReceiveToIdle_IT 56 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1773:19:HAL_UARTEx_ReceiveToIdle_DMA 56 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1841:29:HAL_UARTEx_GetRxEventType 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1859:19:HAL_UART_Abort 136 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1948:19:HAL_UART_AbortTransmit 64 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:1999:19:HAL_UART_AbortReceive 112 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2060:19:HAL_UART_Abort_IT 144 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2195:19:HAL_UART_AbortTransmit_IT 64 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2272:19:HAL_UART_AbortReceive_IT 112 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2350:6:HAL_UART_IRQHandler 240 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2592:13:HAL_UART_TxCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2607:13:HAL_UART_TxHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2622:13:HAL_UART_RxCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2637:13:HAL_UART_RxHalfCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2652:13:HAL_UART_ErrorCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2666:13:HAL_UART_AbortCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2681:13:HAL_UART_AbortTransmitCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2696:13:HAL_UART_AbortReceiveCpltCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2713:13:HAL_UARTEx_RxEventCallback 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2753:19:HAL_LIN_SendBreak 40 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2780:19:HAL_MultiProcessor_EnterMuteMode 40 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2808:19:HAL_MultiProcessor_ExitMuteMode 40 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2836:19:HAL_HalfDuplex_EnableTransmitter 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2871:19:HAL_HalfDuplex_EnableReceiver 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2928:23:HAL_UART_GetState 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2943:10:HAL_UART_GetError 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:2988:13:UART_DMATransmitCplt 72 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3023:13:UART_DMATxHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3042:13:UART_DMAReceiveCplt 120 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3104:13:UART_DMARxHalfCplt 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3143:13:UART_DMAError 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3185:26:UART_WaitOnFlagUntilTimeout 32 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3236:19:UART_Start_Receive_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3271:19:UART_Start_Receive_DMA 104 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3321:13:UART_EndTxTransfer 40 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3335:13:UART_EndRxTransfer 88 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3359:13:UART_DMAAbortOnError 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3383:13:UART_DMATxAbortCallback 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3429:13:UART_DMARxAbortCallback 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3475:13:UART_DMATxOnlyAbortCallback 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3503:13:UART_DMARxOnlyAbortCallback 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3529:26:UART_Transmit_IT 24 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3569:26:UART_EndTransmit_IT 16 static
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3594:26:UART_Receive_IT 56 static,ignoring_inline_asm
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c:3695:13:UART_SetConfig 288 static
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.cyclo b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.cyclo
new file mode 100644
index 0000000..e69de29
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.d b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.d
new file mode 100644
index 0000000..b7bd6f6
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.d
@@ -0,0 +1,2 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o
new file mode 100644
index 0000000..08ca0ca
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.su b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.su
new file mode 100644
index 0000000..e69de29
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
new file mode 100644
index 0000000..616ffbd
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
@@ -0,0 +1,84 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c
+
+OBJS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o
+
+C_DEPS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/STM32F4xx_HAL_Driver/Src/%.o Drivers/STM32F4xx_HAL_Driver/Src/%.su Drivers/STM32F4xx_HAL_Driver/Src/%.cyclo: ../Drivers/STM32F4xx_HAL_Driver/Src/%.c Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F413xx -D__FPU_PRESENT -DARM_MATH_CM4 -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src
+
+clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src:
+ -$(RM) ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.cyclo ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.su
+
+.PHONY: clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src
+
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.elf b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.elf
new file mode 100644
index 0000000..fdc31e1
Binary files /dev/null and b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.elf differ
diff --git a/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.list b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.list
new file mode 100644
index 0000000..fab46af
--- /dev/null
+++ b/2_iteration/v.0.1/firmware/ICD_0.1_100pin_07082025/Debug/ICD_0.1_100pin_07082025.list
@@ -0,0 +1,34766 @@
+
+ICD_0.1_100pin_07082025.elf: file format elf32-littlearm
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .isr_vector 000001d8 08000000 08000000 00001000 2**0
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 1 .text 0000e3a4 080001e0 080001e0 000011e0 2**4
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .rodata 00000490 0800e584 0800e584 0000f584 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 3 .ARM.extab 00000000 0800ea14 0800ea14 00010070 2**0
+ CONTENTS
+ 4 .ARM 00000008 0800ea14 0800ea14 0000fa14 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 5 .preinit_array 00000000 0800ea1c 0800ea1c 00010070 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 6 .init_array 00000004 0800ea1c 0800ea1c 0000fa1c 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 7 .fini_array 00000004 0800ea20 0800ea20 0000fa20 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 8 .data 00000070 20000000 0800ea24 00010000 2**3
+ CONTENTS, ALLOC, LOAD, DATA
+ 9 .bss 00011148 20000070 0800ea94 00010070 2**2
+ ALLOC
+ 10 ._user_heap_stack 00001e00 200111b8 0800ea94 000101b8 2**0
+ ALLOC
+ 11 .ARM.attributes 00000030 00000000 00000000 00010070 2**0
+ CONTENTS, READONLY
+ 12 .debug_info 0001f496 00000000 00000000 000100a0 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 13 .debug_abbrev 00004a99 00000000 00000000 0002f536 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 14 .debug_aranges 000018a8 00000000 00000000 00033fd0 2**3
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 15 .debug_rnglists 0000130e 00000000 00000000 00035878 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 16 .debug_macro 000270df 00000000 00000000 00036b86 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 17 .debug_line 000243e9 00000000 00000000 0005dc65 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 18 .debug_str 000e79a1 00000000 00000000 0008204e 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 19 .comment 00000043 00000000 00000000 001699ef 2**0
+ CONTENTS, READONLY
+ 20 .debug_frame 00006bd8 00000000 00000000 00169a34 2**2
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 21 .debug_line_str 00000070 00000000 00000000 0017060c 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+
+Disassembly of section .text:
+
+080001e0 <__do_global_dtors_aux>:
+ 80001e0: b510 push {r4, lr}
+ 80001e2: 4c05 ldr r4, [pc, #20] @ (80001f8 <__do_global_dtors_aux+0x18>)
+ 80001e4: 7823 ldrb r3, [r4, #0]
+ 80001e6: b933 cbnz r3, 80001f6 <__do_global_dtors_aux+0x16>
+ 80001e8: 4b04 ldr r3, [pc, #16] @ (80001fc <__do_global_dtors_aux+0x1c>)
+ 80001ea: b113 cbz r3, 80001f2 <__do_global_dtors_aux+0x12>
+ 80001ec: 4804 ldr r0, [pc, #16] @ (8000200 <__do_global_dtors_aux+0x20>)
+ 80001ee: f3af 8000 nop.w
+ 80001f2: 2301 movs r3, #1
+ 80001f4: 7023 strb r3, [r4, #0]
+ 80001f6: bd10 pop {r4, pc}
+ 80001f8: 20000070 .word 0x20000070
+ 80001fc: 00000000 .word 0x00000000
+ 8000200: 0800e56c .word 0x0800e56c
+
+08000204 :
+ 8000204: b508 push {r3, lr}
+ 8000206: 4b03 ldr r3, [pc, #12] @ (8000214 )
+ 8000208: b11b cbz r3, 8000212
+ 800020a: 4903 ldr r1, [pc, #12] @ (8000218 )
+ 800020c: 4803 ldr r0, [pc, #12] @ (800021c )
+ 800020e: f3af 8000 nop.w
+ 8000212: bd08 pop {r3, pc}
+ 8000214: 00000000 .word 0x00000000
+ 8000218: 20000074 .word 0x20000074
+ 800021c: 0800e56c .word 0x0800e56c
+
+08000220 :
+ 8000220: 4603 mov r3, r0
+ 8000222: f813 2b01 ldrb.w r2, [r3], #1
+ 8000226: 2a00 cmp r2, #0
+ 8000228: d1fb bne.n 8000222
+ 800022a: 1a18 subs r0, r3, r0
+ 800022c: 3801 subs r0, #1
+ 800022e: 4770 bx lr
+
+08000230 :
+ 8000230: f001 01ff and.w r1, r1, #255 @ 0xff
+ 8000234: 2a10 cmp r2, #16
+ 8000236: db2b blt.n 8000290
+ 8000238: f010 0f07 tst.w r0, #7
+ 800023c: d008 beq.n 8000250
+ 800023e: f810 3b01 ldrb.w r3, [r0], #1
+ 8000242: 3a01 subs r2, #1
+ 8000244: 428b cmp r3, r1
+ 8000246: d02d beq.n 80002a4
+ 8000248: f010 0f07 tst.w r0, #7
+ 800024c: b342 cbz r2, 80002a0
+ 800024e: d1f6 bne.n 800023e
+ 8000250: b4f0 push {r4, r5, r6, r7}
+ 8000252: ea41 2101 orr.w r1, r1, r1, lsl #8
+ 8000256: ea41 4101 orr.w r1, r1, r1, lsl #16
+ 800025a: f022 0407 bic.w r4, r2, #7
+ 800025e: f07f 0700 mvns.w r7, #0
+ 8000262: 2300 movs r3, #0
+ 8000264: e8f0 5602 ldrd r5, r6, [r0], #8
+ 8000268: 3c08 subs r4, #8
+ 800026a: ea85 0501 eor.w r5, r5, r1
+ 800026e: ea86 0601 eor.w r6, r6, r1
+ 8000272: fa85 f547 uadd8 r5, r5, r7
+ 8000276: faa3 f587 sel r5, r3, r7
+ 800027a: fa86 f647 uadd8 r6, r6, r7
+ 800027e: faa5 f687 sel r6, r5, r7
+ 8000282: b98e cbnz r6, 80002a8
+ 8000284: d1ee bne.n 8000264
+ 8000286: bcf0 pop {r4, r5, r6, r7}
+ 8000288: f001 01ff and.w r1, r1, #255 @ 0xff
+ 800028c: f002 0207 and.w r2, r2, #7
+ 8000290: b132 cbz r2, 80002a0
+ 8000292: f810 3b01 ldrb.w r3, [r0], #1
+ 8000296: 3a01 subs r2, #1
+ 8000298: ea83 0301 eor.w r3, r3, r1
+ 800029c: b113 cbz r3, 80002a4
+ 800029e: d1f8 bne.n 8000292
+ 80002a0: 2000 movs r0, #0
+ 80002a2: 4770 bx lr
+ 80002a4: 3801 subs r0, #1
+ 80002a6: 4770 bx lr
+ 80002a8: 2d00 cmp r5, #0
+ 80002aa: bf06 itte eq
+ 80002ac: 4635 moveq r5, r6
+ 80002ae: 3803 subeq r0, #3
+ 80002b0: 3807 subne r0, #7
+ 80002b2: f015 0f01 tst.w r5, #1
+ 80002b6: d107 bne.n 80002c8
+ 80002b8: 3001 adds r0, #1
+ 80002ba: f415 7f80 tst.w r5, #256 @ 0x100
+ 80002be: bf02 ittt eq
+ 80002c0: 3001 addeq r0, #1
+ 80002c2: f415 3fc0 tsteq.w r5, #98304 @ 0x18000
+ 80002c6: 3001 addeq r0, #1
+ 80002c8: bcf0 pop {r4, r5, r6, r7}
+ 80002ca: 3801 subs r0, #1
+ 80002cc: 4770 bx lr
+ 80002ce: bf00 nop
+
+080002d0 <__aeabi_drsub>:
+ 80002d0: f081 4100 eor.w r1, r1, #2147483648 @ 0x80000000
+ 80002d4: e002 b.n 80002dc <__adddf3>
+ 80002d6: bf00 nop
+
+080002d8 <__aeabi_dsub>:
+ 80002d8: f083 4300 eor.w r3, r3, #2147483648 @ 0x80000000
+
+080002dc <__adddf3>:
+ 80002dc: b530 push {r4, r5, lr}
+ 80002de: ea4f 0441 mov.w r4, r1, lsl #1
+ 80002e2: ea4f 0543 mov.w r5, r3, lsl #1
+ 80002e6: ea94 0f05 teq r4, r5
+ 80002ea: bf08 it eq
+ 80002ec: ea90 0f02 teqeq r0, r2
+ 80002f0: bf1f itttt ne
+ 80002f2: ea54 0c00 orrsne.w ip, r4, r0
+ 80002f6: ea55 0c02 orrsne.w ip, r5, r2
+ 80002fa: ea7f 5c64 mvnsne.w ip, r4, asr #21
+ 80002fe: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 8000302: f000 80e2 beq.w 80004ca <__adddf3+0x1ee>
+ 8000306: ea4f 5454 mov.w r4, r4, lsr #21
+ 800030a: ebd4 5555 rsbs r5, r4, r5, lsr #21
+ 800030e: bfb8 it lt
+ 8000310: 426d neglt r5, r5
+ 8000312: dd0c ble.n 800032e <__adddf3+0x52>
+ 8000314: 442c add r4, r5
+ 8000316: ea80 0202 eor.w r2, r0, r2
+ 800031a: ea81 0303 eor.w r3, r1, r3
+ 800031e: ea82 0000 eor.w r0, r2, r0
+ 8000322: ea83 0101 eor.w r1, r3, r1
+ 8000326: ea80 0202 eor.w r2, r0, r2
+ 800032a: ea81 0303 eor.w r3, r1, r3
+ 800032e: 2d36 cmp r5, #54 @ 0x36
+ 8000330: bf88 it hi
+ 8000332: bd30 pophi {r4, r5, pc}
+ 8000334: f011 4f00 tst.w r1, #2147483648 @ 0x80000000
+ 8000338: ea4f 3101 mov.w r1, r1, lsl #12
+ 800033c: f44f 1c80 mov.w ip, #1048576 @ 0x100000
+ 8000340: ea4c 3111 orr.w r1, ip, r1, lsr #12
+ 8000344: d002 beq.n 800034c <__adddf3+0x70>
+ 8000346: 4240 negs r0, r0
+ 8000348: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 800034c: f013 4f00 tst.w r3, #2147483648 @ 0x80000000
+ 8000350: ea4f 3303 mov.w r3, r3, lsl #12
+ 8000354: ea4c 3313 orr.w r3, ip, r3, lsr #12
+ 8000358: d002 beq.n 8000360 <__adddf3+0x84>
+ 800035a: 4252 negs r2, r2
+ 800035c: eb63 0343 sbc.w r3, r3, r3, lsl #1
+ 8000360: ea94 0f05 teq r4, r5
+ 8000364: f000 80a7 beq.w 80004b6 <__adddf3+0x1da>
+ 8000368: f1a4 0401 sub.w r4, r4, #1
+ 800036c: f1d5 0e20 rsbs lr, r5, #32
+ 8000370: db0d blt.n 800038e <__adddf3+0xb2>
+ 8000372: fa02 fc0e lsl.w ip, r2, lr
+ 8000376: fa22 f205 lsr.w r2, r2, r5
+ 800037a: 1880 adds r0, r0, r2
+ 800037c: f141 0100 adc.w r1, r1, #0
+ 8000380: fa03 f20e lsl.w r2, r3, lr
+ 8000384: 1880 adds r0, r0, r2
+ 8000386: fa43 f305 asr.w r3, r3, r5
+ 800038a: 4159 adcs r1, r3
+ 800038c: e00e b.n 80003ac <__adddf3+0xd0>
+ 800038e: f1a5 0520 sub.w r5, r5, #32
+ 8000392: f10e 0e20 add.w lr, lr, #32
+ 8000396: 2a01 cmp r2, #1
+ 8000398: fa03 fc0e lsl.w ip, r3, lr
+ 800039c: bf28 it cs
+ 800039e: f04c 0c02 orrcs.w ip, ip, #2
+ 80003a2: fa43 f305 asr.w r3, r3, r5
+ 80003a6: 18c0 adds r0, r0, r3
+ 80003a8: eb51 71e3 adcs.w r1, r1, r3, asr #31
+ 80003ac: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 80003b0: d507 bpl.n 80003c2 <__adddf3+0xe6>
+ 80003b2: f04f 0e00 mov.w lr, #0
+ 80003b6: f1dc 0c00 rsbs ip, ip, #0
+ 80003ba: eb7e 0000 sbcs.w r0, lr, r0
+ 80003be: eb6e 0101 sbc.w r1, lr, r1
+ 80003c2: f5b1 1f80 cmp.w r1, #1048576 @ 0x100000
+ 80003c6: d31b bcc.n 8000400 <__adddf3+0x124>
+ 80003c8: f5b1 1f00 cmp.w r1, #2097152 @ 0x200000
+ 80003cc: d30c bcc.n 80003e8 <__adddf3+0x10c>
+ 80003ce: 0849 lsrs r1, r1, #1
+ 80003d0: ea5f 0030 movs.w r0, r0, rrx
+ 80003d4: ea4f 0c3c mov.w ip, ip, rrx
+ 80003d8: f104 0401 add.w r4, r4, #1
+ 80003dc: ea4f 5244 mov.w r2, r4, lsl #21
+ 80003e0: f512 0f80 cmn.w r2, #4194304 @ 0x400000
+ 80003e4: f080 809a bcs.w 800051c <__adddf3+0x240>
+ 80003e8: f1bc 4f00 cmp.w ip, #2147483648 @ 0x80000000
+ 80003ec: bf08 it eq
+ 80003ee: ea5f 0c50 movseq.w ip, r0, lsr #1
+ 80003f2: f150 0000 adcs.w r0, r0, #0
+ 80003f6: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80003fa: ea41 0105 orr.w r1, r1, r5
+ 80003fe: bd30 pop {r4, r5, pc}
+ 8000400: ea5f 0c4c movs.w ip, ip, lsl #1
+ 8000404: 4140 adcs r0, r0
+ 8000406: eb41 0101 adc.w r1, r1, r1
+ 800040a: 3c01 subs r4, #1
+ 800040c: bf28 it cs
+ 800040e: f5b1 1f80 cmpcs.w r1, #1048576 @ 0x100000
+ 8000412: d2e9 bcs.n 80003e8 <__adddf3+0x10c>
+ 8000414: f091 0f00 teq r1, #0
+ 8000418: bf04 itt eq
+ 800041a: 4601 moveq r1, r0
+ 800041c: 2000 moveq r0, #0
+ 800041e: fab1 f381 clz r3, r1
+ 8000422: bf08 it eq
+ 8000424: 3320 addeq r3, #32
+ 8000426: f1a3 030b sub.w r3, r3, #11
+ 800042a: f1b3 0220 subs.w r2, r3, #32
+ 800042e: da0c bge.n 800044a <__adddf3+0x16e>
+ 8000430: 320c adds r2, #12
+ 8000432: dd08 ble.n 8000446 <__adddf3+0x16a>
+ 8000434: f102 0c14 add.w ip, r2, #20
+ 8000438: f1c2 020c rsb r2, r2, #12
+ 800043c: fa01 f00c lsl.w r0, r1, ip
+ 8000440: fa21 f102 lsr.w r1, r1, r2
+ 8000444: e00c b.n 8000460 <__adddf3+0x184>
+ 8000446: f102 0214 add.w r2, r2, #20
+ 800044a: bfd8 it le
+ 800044c: f1c2 0c20 rsble ip, r2, #32
+ 8000450: fa01 f102 lsl.w r1, r1, r2
+ 8000454: fa20 fc0c lsr.w ip, r0, ip
+ 8000458: bfdc itt le
+ 800045a: ea41 010c orrle.w r1, r1, ip
+ 800045e: 4090 lslle r0, r2
+ 8000460: 1ae4 subs r4, r4, r3
+ 8000462: bfa2 ittt ge
+ 8000464: eb01 5104 addge.w r1, r1, r4, lsl #20
+ 8000468: 4329 orrge r1, r5
+ 800046a: bd30 popge {r4, r5, pc}
+ 800046c: ea6f 0404 mvn.w r4, r4
+ 8000470: 3c1f subs r4, #31
+ 8000472: da1c bge.n 80004ae <__adddf3+0x1d2>
+ 8000474: 340c adds r4, #12
+ 8000476: dc0e bgt.n 8000496 <__adddf3+0x1ba>
+ 8000478: f104 0414 add.w r4, r4, #20
+ 800047c: f1c4 0220 rsb r2, r4, #32
+ 8000480: fa20 f004 lsr.w r0, r0, r4
+ 8000484: fa01 f302 lsl.w r3, r1, r2
+ 8000488: ea40 0003 orr.w r0, r0, r3
+ 800048c: fa21 f304 lsr.w r3, r1, r4
+ 8000490: ea45 0103 orr.w r1, r5, r3
+ 8000494: bd30 pop {r4, r5, pc}
+ 8000496: f1c4 040c rsb r4, r4, #12
+ 800049a: f1c4 0220 rsb r2, r4, #32
+ 800049e: fa20 f002 lsr.w r0, r0, r2
+ 80004a2: fa01 f304 lsl.w r3, r1, r4
+ 80004a6: ea40 0003 orr.w r0, r0, r3
+ 80004aa: 4629 mov r1, r5
+ 80004ac: bd30 pop {r4, r5, pc}
+ 80004ae: fa21 f004 lsr.w r0, r1, r4
+ 80004b2: 4629 mov r1, r5
+ 80004b4: bd30 pop {r4, r5, pc}
+ 80004b6: f094 0f00 teq r4, #0
+ 80004ba: f483 1380 eor.w r3, r3, #1048576 @ 0x100000
+ 80004be: bf06 itte eq
+ 80004c0: f481 1180 eoreq.w r1, r1, #1048576 @ 0x100000
+ 80004c4: 3401 addeq r4, #1
+ 80004c6: 3d01 subne r5, #1
+ 80004c8: e74e b.n 8000368 <__adddf3+0x8c>
+ 80004ca: ea7f 5c64 mvns.w ip, r4, asr #21
+ 80004ce: bf18 it ne
+ 80004d0: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 80004d4: d029 beq.n 800052a <__adddf3+0x24e>
+ 80004d6: ea94 0f05 teq r4, r5
+ 80004da: bf08 it eq
+ 80004dc: ea90 0f02 teqeq r0, r2
+ 80004e0: d005 beq.n 80004ee <__adddf3+0x212>
+ 80004e2: ea54 0c00 orrs.w ip, r4, r0
+ 80004e6: bf04 itt eq
+ 80004e8: 4619 moveq r1, r3
+ 80004ea: 4610 moveq r0, r2
+ 80004ec: bd30 pop {r4, r5, pc}
+ 80004ee: ea91 0f03 teq r1, r3
+ 80004f2: bf1e ittt ne
+ 80004f4: 2100 movne r1, #0
+ 80004f6: 2000 movne r0, #0
+ 80004f8: bd30 popne {r4, r5, pc}
+ 80004fa: ea5f 5c54 movs.w ip, r4, lsr #21
+ 80004fe: d105 bne.n 800050c <__adddf3+0x230>
+ 8000500: 0040 lsls r0, r0, #1
+ 8000502: 4149 adcs r1, r1
+ 8000504: bf28 it cs
+ 8000506: f041 4100 orrcs.w r1, r1, #2147483648 @ 0x80000000
+ 800050a: bd30 pop {r4, r5, pc}
+ 800050c: f514 0480 adds.w r4, r4, #4194304 @ 0x400000
+ 8000510: bf3c itt cc
+ 8000512: f501 1180 addcc.w r1, r1, #1048576 @ 0x100000
+ 8000516: bd30 popcc {r4, r5, pc}
+ 8000518: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 800051c: f045 41fe orr.w r1, r5, #2130706432 @ 0x7f000000
+ 8000520: f441 0170 orr.w r1, r1, #15728640 @ 0xf00000
+ 8000524: f04f 0000 mov.w r0, #0
+ 8000528: bd30 pop {r4, r5, pc}
+ 800052a: ea7f 5c64 mvns.w ip, r4, asr #21
+ 800052e: bf1a itte ne
+ 8000530: 4619 movne r1, r3
+ 8000532: 4610 movne r0, r2
+ 8000534: ea7f 5c65 mvnseq.w ip, r5, asr #21
+ 8000538: bf1c itt ne
+ 800053a: 460b movne r3, r1
+ 800053c: 4602 movne r2, r0
+ 800053e: ea50 3401 orrs.w r4, r0, r1, lsl #12
+ 8000542: bf06 itte eq
+ 8000544: ea52 3503 orrseq.w r5, r2, r3, lsl #12
+ 8000548: ea91 0f03 teqeq r1, r3
+ 800054c: f441 2100 orrne.w r1, r1, #524288 @ 0x80000
+ 8000550: bd30 pop {r4, r5, pc}
+ 8000552: bf00 nop
+
+08000554 <__aeabi_ui2d>:
+ 8000554: f090 0f00 teq r0, #0
+ 8000558: bf04 itt eq
+ 800055a: 2100 moveq r1, #0
+ 800055c: 4770 bxeq lr
+ 800055e: b530 push {r4, r5, lr}
+ 8000560: f44f 6480 mov.w r4, #1024 @ 0x400
+ 8000564: f104 0432 add.w r4, r4, #50 @ 0x32
+ 8000568: f04f 0500 mov.w r5, #0
+ 800056c: f04f 0100 mov.w r1, #0
+ 8000570: e750 b.n 8000414 <__adddf3+0x138>
+ 8000572: bf00 nop
+
+08000574 <__aeabi_i2d>:
+ 8000574: f090 0f00 teq r0, #0
+ 8000578: bf04 itt eq
+ 800057a: 2100 moveq r1, #0
+ 800057c: 4770 bxeq lr
+ 800057e: b530 push {r4, r5, lr}
+ 8000580: f44f 6480 mov.w r4, #1024 @ 0x400
+ 8000584: f104 0432 add.w r4, r4, #50 @ 0x32
+ 8000588: f010 4500 ands.w r5, r0, #2147483648 @ 0x80000000
+ 800058c: bf48 it mi
+ 800058e: 4240 negmi r0, r0
+ 8000590: f04f 0100 mov.w r1, #0
+ 8000594: e73e b.n 8000414 <__adddf3+0x138>
+ 8000596: bf00 nop
+
+08000598 <__aeabi_f2d>:
+ 8000598: 0042 lsls r2, r0, #1
+ 800059a: ea4f 01e2 mov.w r1, r2, asr #3
+ 800059e: ea4f 0131 mov.w r1, r1, rrx
+ 80005a2: ea4f 7002 mov.w r0, r2, lsl #28
+ 80005a6: bf1f itttt ne
+ 80005a8: f012 437f andsne.w r3, r2, #4278190080 @ 0xff000000
+ 80005ac: f093 4f7f teqne r3, #4278190080 @ 0xff000000
+ 80005b0: f081 5160 eorne.w r1, r1, #939524096 @ 0x38000000
+ 80005b4: 4770 bxne lr
+ 80005b6: f032 427f bics.w r2, r2, #4278190080 @ 0xff000000
+ 80005ba: bf08 it eq
+ 80005bc: 4770 bxeq lr
+ 80005be: f093 4f7f teq r3, #4278190080 @ 0xff000000
+ 80005c2: bf04 itt eq
+ 80005c4: f441 2100 orreq.w r1, r1, #524288 @ 0x80000
+ 80005c8: 4770 bxeq lr
+ 80005ca: b530 push {r4, r5, lr}
+ 80005cc: f44f 7460 mov.w r4, #896 @ 0x380
+ 80005d0: f001 4500 and.w r5, r1, #2147483648 @ 0x80000000
+ 80005d4: f021 4100 bic.w r1, r1, #2147483648 @ 0x80000000
+ 80005d8: e71c b.n 8000414 <__adddf3+0x138>
+ 80005da: bf00 nop
+
+080005dc <__aeabi_ul2d>:
+ 80005dc: ea50 0201 orrs.w r2, r0, r1
+ 80005e0: bf08 it eq
+ 80005e2: 4770 bxeq lr
+ 80005e4: b530 push {r4, r5, lr}
+ 80005e6: f04f 0500 mov.w r5, #0
+ 80005ea: e00a b.n 8000602 <__aeabi_l2d+0x16>
+
+080005ec <__aeabi_l2d>:
+ 80005ec: ea50 0201 orrs.w r2, r0, r1
+ 80005f0: bf08 it eq
+ 80005f2: 4770 bxeq lr
+ 80005f4: b530 push {r4, r5, lr}
+ 80005f6: f011 4500 ands.w r5, r1, #2147483648 @ 0x80000000
+ 80005fa: d502 bpl.n 8000602 <__aeabi_l2d+0x16>
+ 80005fc: 4240 negs r0, r0
+ 80005fe: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 8000602: f44f 6480 mov.w r4, #1024 @ 0x400
+ 8000606: f104 0432 add.w r4, r4, #50 @ 0x32
+ 800060a: ea5f 5c91 movs.w ip, r1, lsr #22
+ 800060e: f43f aed8 beq.w 80003c2 <__adddf3+0xe6>
+ 8000612: f04f 0203 mov.w r2, #3
+ 8000616: ea5f 0cdc movs.w ip, ip, lsr #3
+ 800061a: bf18 it ne
+ 800061c: 3203 addne r2, #3
+ 800061e: ea5f 0cdc movs.w ip, ip, lsr #3
+ 8000622: bf18 it ne
+ 8000624: 3203 addne r2, #3
+ 8000626: eb02 02dc add.w r2, r2, ip, lsr #3
+ 800062a: f1c2 0320 rsb r3, r2, #32
+ 800062e: fa00 fc03 lsl.w ip, r0, r3
+ 8000632: fa20 f002 lsr.w r0, r0, r2
+ 8000636: fa01 fe03 lsl.w lr, r1, r3
+ 800063a: ea40 000e orr.w r0, r0, lr
+ 800063e: fa21 f102 lsr.w r1, r1, r2
+ 8000642: 4414 add r4, r2
+ 8000644: e6bd b.n 80003c2 <__adddf3+0xe6>
+ 8000646: bf00 nop
+
+08000648 <__aeabi_dmul>:
+ 8000648: b570 push {r4, r5, r6, lr}
+ 800064a: f04f 0cff mov.w ip, #255 @ 0xff
+ 800064e: f44c 6ce0 orr.w ip, ip, #1792 @ 0x700
+ 8000652: ea1c 5411 ands.w r4, ip, r1, lsr #20
+ 8000656: bf1d ittte ne
+ 8000658: ea1c 5513 andsne.w r5, ip, r3, lsr #20
+ 800065c: ea94 0f0c teqne r4, ip
+ 8000660: ea95 0f0c teqne r5, ip
+ 8000664: f000 f8de bleq 8000824 <__aeabi_dmul+0x1dc>
+ 8000668: 442c add r4, r5
+ 800066a: ea81 0603 eor.w r6, r1, r3
+ 800066e: ea21 514c bic.w r1, r1, ip, lsl #21
+ 8000672: ea23 534c bic.w r3, r3, ip, lsl #21
+ 8000676: ea50 3501 orrs.w r5, r0, r1, lsl #12
+ 800067a: bf18 it ne
+ 800067c: ea52 3503 orrsne.w r5, r2, r3, lsl #12
+ 8000680: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 8000684: f443 1380 orr.w r3, r3, #1048576 @ 0x100000
+ 8000688: d038 beq.n 80006fc <__aeabi_dmul+0xb4>
+ 800068a: fba0 ce02 umull ip, lr, r0, r2
+ 800068e: f04f 0500 mov.w r5, #0
+ 8000692: fbe1 e502 umlal lr, r5, r1, r2
+ 8000696: f006 4200 and.w r2, r6, #2147483648 @ 0x80000000
+ 800069a: fbe0 e503 umlal lr, r5, r0, r3
+ 800069e: f04f 0600 mov.w r6, #0
+ 80006a2: fbe1 5603 umlal r5, r6, r1, r3
+ 80006a6: f09c 0f00 teq ip, #0
+ 80006aa: bf18 it ne
+ 80006ac: f04e 0e01 orrne.w lr, lr, #1
+ 80006b0: f1a4 04ff sub.w r4, r4, #255 @ 0xff
+ 80006b4: f5b6 7f00 cmp.w r6, #512 @ 0x200
+ 80006b8: f564 7440 sbc.w r4, r4, #768 @ 0x300
+ 80006bc: d204 bcs.n 80006c8 <__aeabi_dmul+0x80>
+ 80006be: ea5f 0e4e movs.w lr, lr, lsl #1
+ 80006c2: 416d adcs r5, r5
+ 80006c4: eb46 0606 adc.w r6, r6, r6
+ 80006c8: ea42 21c6 orr.w r1, r2, r6, lsl #11
+ 80006cc: ea41 5155 orr.w r1, r1, r5, lsr #21
+ 80006d0: ea4f 20c5 mov.w r0, r5, lsl #11
+ 80006d4: ea40 505e orr.w r0, r0, lr, lsr #21
+ 80006d8: ea4f 2ece mov.w lr, lr, lsl #11
+ 80006dc: f1b4 0cfd subs.w ip, r4, #253 @ 0xfd
+ 80006e0: bf88 it hi
+ 80006e2: f5bc 6fe0 cmphi.w ip, #1792 @ 0x700
+ 80006e6: d81e bhi.n 8000726 <__aeabi_dmul+0xde>
+ 80006e8: f1be 4f00 cmp.w lr, #2147483648 @ 0x80000000
+ 80006ec: bf08 it eq
+ 80006ee: ea5f 0e50 movseq.w lr, r0, lsr #1
+ 80006f2: f150 0000 adcs.w r0, r0, #0
+ 80006f6: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80006fa: bd70 pop {r4, r5, r6, pc}
+ 80006fc: f006 4600 and.w r6, r6, #2147483648 @ 0x80000000
+ 8000700: ea46 0101 orr.w r1, r6, r1
+ 8000704: ea40 0002 orr.w r0, r0, r2
+ 8000708: ea81 0103 eor.w r1, r1, r3
+ 800070c: ebb4 045c subs.w r4, r4, ip, lsr #1
+ 8000710: bfc2 ittt gt
+ 8000712: ebd4 050c rsbsgt r5, r4, ip
+ 8000716: ea41 5104 orrgt.w r1, r1, r4, lsl #20
+ 800071a: bd70 popgt {r4, r5, r6, pc}
+ 800071c: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 8000720: f04f 0e00 mov.w lr, #0
+ 8000724: 3c01 subs r4, #1
+ 8000726: f300 80ab bgt.w 8000880 <__aeabi_dmul+0x238>
+ 800072a: f114 0f36 cmn.w r4, #54 @ 0x36
+ 800072e: bfde ittt le
+ 8000730: 2000 movle r0, #0
+ 8000732: f001 4100 andle.w r1, r1, #2147483648 @ 0x80000000
+ 8000736: bd70 pople {r4, r5, r6, pc}
+ 8000738: f1c4 0400 rsb r4, r4, #0
+ 800073c: 3c20 subs r4, #32
+ 800073e: da35 bge.n 80007ac <__aeabi_dmul+0x164>
+ 8000740: 340c adds r4, #12
+ 8000742: dc1b bgt.n 800077c <__aeabi_dmul+0x134>
+ 8000744: f104 0414 add.w r4, r4, #20
+ 8000748: f1c4 0520 rsb r5, r4, #32
+ 800074c: fa00 f305 lsl.w r3, r0, r5
+ 8000750: fa20 f004 lsr.w r0, r0, r4
+ 8000754: fa01 f205 lsl.w r2, r1, r5
+ 8000758: ea40 0002 orr.w r0, r0, r2
+ 800075c: f001 4200 and.w r2, r1, #2147483648 @ 0x80000000
+ 8000760: f021 4100 bic.w r1, r1, #2147483648 @ 0x80000000
+ 8000764: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 8000768: fa21 f604 lsr.w r6, r1, r4
+ 800076c: eb42 0106 adc.w r1, r2, r6
+ 8000770: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 8000774: bf08 it eq
+ 8000776: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 800077a: bd70 pop {r4, r5, r6, pc}
+ 800077c: f1c4 040c rsb r4, r4, #12
+ 8000780: f1c4 0520 rsb r5, r4, #32
+ 8000784: fa00 f304 lsl.w r3, r0, r4
+ 8000788: fa20 f005 lsr.w r0, r0, r5
+ 800078c: fa01 f204 lsl.w r2, r1, r4
+ 8000790: ea40 0002 orr.w r0, r0, r2
+ 8000794: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000798: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 800079c: f141 0100 adc.w r1, r1, #0
+ 80007a0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 80007a4: bf08 it eq
+ 80007a6: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 80007aa: bd70 pop {r4, r5, r6, pc}
+ 80007ac: f1c4 0520 rsb r5, r4, #32
+ 80007b0: fa00 f205 lsl.w r2, r0, r5
+ 80007b4: ea4e 0e02 orr.w lr, lr, r2
+ 80007b8: fa20 f304 lsr.w r3, r0, r4
+ 80007bc: fa01 f205 lsl.w r2, r1, r5
+ 80007c0: ea43 0302 orr.w r3, r3, r2
+ 80007c4: fa21 f004 lsr.w r0, r1, r4
+ 80007c8: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 80007cc: fa21 f204 lsr.w r2, r1, r4
+ 80007d0: ea20 0002 bic.w r0, r0, r2
+ 80007d4: eb00 70d3 add.w r0, r0, r3, lsr #31
+ 80007d8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 80007dc: bf08 it eq
+ 80007de: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 80007e2: bd70 pop {r4, r5, r6, pc}
+ 80007e4: f094 0f00 teq r4, #0
+ 80007e8: d10f bne.n 800080a <__aeabi_dmul+0x1c2>
+ 80007ea: f001 4600 and.w r6, r1, #2147483648 @ 0x80000000
+ 80007ee: 0040 lsls r0, r0, #1
+ 80007f0: eb41 0101 adc.w r1, r1, r1
+ 80007f4: f411 1f80 tst.w r1, #1048576 @ 0x100000
+ 80007f8: bf08 it eq
+ 80007fa: 3c01 subeq r4, #1
+ 80007fc: d0f7 beq.n 80007ee <__aeabi_dmul+0x1a6>
+ 80007fe: ea41 0106 orr.w r1, r1, r6
+ 8000802: f095 0f00 teq r5, #0
+ 8000806: bf18 it ne
+ 8000808: 4770 bxne lr
+ 800080a: f003 4600 and.w r6, r3, #2147483648 @ 0x80000000
+ 800080e: 0052 lsls r2, r2, #1
+ 8000810: eb43 0303 adc.w r3, r3, r3
+ 8000814: f413 1f80 tst.w r3, #1048576 @ 0x100000
+ 8000818: bf08 it eq
+ 800081a: 3d01 subeq r5, #1
+ 800081c: d0f7 beq.n 800080e <__aeabi_dmul+0x1c6>
+ 800081e: ea43 0306 orr.w r3, r3, r6
+ 8000822: 4770 bx lr
+ 8000824: ea94 0f0c teq r4, ip
+ 8000828: ea0c 5513 and.w r5, ip, r3, lsr #20
+ 800082c: bf18 it ne
+ 800082e: ea95 0f0c teqne r5, ip
+ 8000832: d00c beq.n 800084e <__aeabi_dmul+0x206>
+ 8000834: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000838: bf18 it ne
+ 800083a: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800083e: d1d1 bne.n 80007e4 <__aeabi_dmul+0x19c>
+ 8000840: ea81 0103 eor.w r1, r1, r3
+ 8000844: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000848: f04f 0000 mov.w r0, #0
+ 800084c: bd70 pop {r4, r5, r6, pc}
+ 800084e: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000852: bf06 itte eq
+ 8000854: 4610 moveq r0, r2
+ 8000856: 4619 moveq r1, r3
+ 8000858: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800085c: d019 beq.n 8000892 <__aeabi_dmul+0x24a>
+ 800085e: ea94 0f0c teq r4, ip
+ 8000862: d102 bne.n 800086a <__aeabi_dmul+0x222>
+ 8000864: ea50 3601 orrs.w r6, r0, r1, lsl #12
+ 8000868: d113 bne.n 8000892 <__aeabi_dmul+0x24a>
+ 800086a: ea95 0f0c teq r5, ip
+ 800086e: d105 bne.n 800087c <__aeabi_dmul+0x234>
+ 8000870: ea52 3603 orrs.w r6, r2, r3, lsl #12
+ 8000874: bf1c itt ne
+ 8000876: 4610 movne r0, r2
+ 8000878: 4619 movne r1, r3
+ 800087a: d10a bne.n 8000892 <__aeabi_dmul+0x24a>
+ 800087c: ea81 0103 eor.w r1, r1, r3
+ 8000880: f001 4100 and.w r1, r1, #2147483648 @ 0x80000000
+ 8000884: f041 41fe orr.w r1, r1, #2130706432 @ 0x7f000000
+ 8000888: f441 0170 orr.w r1, r1, #15728640 @ 0xf00000
+ 800088c: f04f 0000 mov.w r0, #0
+ 8000890: bd70 pop {r4, r5, r6, pc}
+ 8000892: f041 41fe orr.w r1, r1, #2130706432 @ 0x7f000000
+ 8000896: f441 0178 orr.w r1, r1, #16252928 @ 0xf80000
+ 800089a: bd70 pop {r4, r5, r6, pc}
+
+0800089c <__aeabi_ddiv>:
+ 800089c: b570 push {r4, r5, r6, lr}
+ 800089e: f04f 0cff mov.w ip, #255 @ 0xff
+ 80008a2: f44c 6ce0 orr.w ip, ip, #1792 @ 0x700
+ 80008a6: ea1c 5411 ands.w r4, ip, r1, lsr #20
+ 80008aa: bf1d ittte ne
+ 80008ac: ea1c 5513 andsne.w r5, ip, r3, lsr #20
+ 80008b0: ea94 0f0c teqne r4, ip
+ 80008b4: ea95 0f0c teqne r5, ip
+ 80008b8: f000 f8a7 bleq 8000a0a <__aeabi_ddiv+0x16e>
+ 80008bc: eba4 0405 sub.w r4, r4, r5
+ 80008c0: ea81 0e03 eor.w lr, r1, r3
+ 80008c4: ea52 3503 orrs.w r5, r2, r3, lsl #12
+ 80008c8: ea4f 3101 mov.w r1, r1, lsl #12
+ 80008cc: f000 8088 beq.w 80009e0 <__aeabi_ddiv+0x144>
+ 80008d0: ea4f 3303 mov.w r3, r3, lsl #12
+ 80008d4: f04f 5580 mov.w r5, #268435456 @ 0x10000000
+ 80008d8: ea45 1313 orr.w r3, r5, r3, lsr #4
+ 80008dc: ea43 6312 orr.w r3, r3, r2, lsr #24
+ 80008e0: ea4f 2202 mov.w r2, r2, lsl #8
+ 80008e4: ea45 1511 orr.w r5, r5, r1, lsr #4
+ 80008e8: ea45 6510 orr.w r5, r5, r0, lsr #24
+ 80008ec: ea4f 2600 mov.w r6, r0, lsl #8
+ 80008f0: f00e 4100 and.w r1, lr, #2147483648 @ 0x80000000
+ 80008f4: 429d cmp r5, r3
+ 80008f6: bf08 it eq
+ 80008f8: 4296 cmpeq r6, r2
+ 80008fa: f144 04fd adc.w r4, r4, #253 @ 0xfd
+ 80008fe: f504 7440 add.w r4, r4, #768 @ 0x300
+ 8000902: d202 bcs.n 800090a <__aeabi_ddiv+0x6e>
+ 8000904: 085b lsrs r3, r3, #1
+ 8000906: ea4f 0232 mov.w r2, r2, rrx
+ 800090a: 1ab6 subs r6, r6, r2
+ 800090c: eb65 0503 sbc.w r5, r5, r3
+ 8000910: 085b lsrs r3, r3, #1
+ 8000912: ea4f 0232 mov.w r2, r2, rrx
+ 8000916: f44f 1080 mov.w r0, #1048576 @ 0x100000
+ 800091a: f44f 2c00 mov.w ip, #524288 @ 0x80000
+ 800091e: ebb6 0e02 subs.w lr, r6, r2
+ 8000922: eb75 0e03 sbcs.w lr, r5, r3
+ 8000926: bf22 ittt cs
+ 8000928: 1ab6 subcs r6, r6, r2
+ 800092a: 4675 movcs r5, lr
+ 800092c: ea40 000c orrcs.w r0, r0, ip
+ 8000930: 085b lsrs r3, r3, #1
+ 8000932: ea4f 0232 mov.w r2, r2, rrx
+ 8000936: ebb6 0e02 subs.w lr, r6, r2
+ 800093a: eb75 0e03 sbcs.w lr, r5, r3
+ 800093e: bf22 ittt cs
+ 8000940: 1ab6 subcs r6, r6, r2
+ 8000942: 4675 movcs r5, lr
+ 8000944: ea40 005c orrcs.w r0, r0, ip, lsr #1
+ 8000948: 085b lsrs r3, r3, #1
+ 800094a: ea4f 0232 mov.w r2, r2, rrx
+ 800094e: ebb6 0e02 subs.w lr, r6, r2
+ 8000952: eb75 0e03 sbcs.w lr, r5, r3
+ 8000956: bf22 ittt cs
+ 8000958: 1ab6 subcs r6, r6, r2
+ 800095a: 4675 movcs r5, lr
+ 800095c: ea40 009c orrcs.w r0, r0, ip, lsr #2
+ 8000960: 085b lsrs r3, r3, #1
+ 8000962: ea4f 0232 mov.w r2, r2, rrx
+ 8000966: ebb6 0e02 subs.w lr, r6, r2
+ 800096a: eb75 0e03 sbcs.w lr, r5, r3
+ 800096e: bf22 ittt cs
+ 8000970: 1ab6 subcs r6, r6, r2
+ 8000972: 4675 movcs r5, lr
+ 8000974: ea40 00dc orrcs.w r0, r0, ip, lsr #3
+ 8000978: ea55 0e06 orrs.w lr, r5, r6
+ 800097c: d018 beq.n 80009b0 <__aeabi_ddiv+0x114>
+ 800097e: ea4f 1505 mov.w r5, r5, lsl #4
+ 8000982: ea45 7516 orr.w r5, r5, r6, lsr #28
+ 8000986: ea4f 1606 mov.w r6, r6, lsl #4
+ 800098a: ea4f 03c3 mov.w r3, r3, lsl #3
+ 800098e: ea43 7352 orr.w r3, r3, r2, lsr #29
+ 8000992: ea4f 02c2 mov.w r2, r2, lsl #3
+ 8000996: ea5f 1c1c movs.w ip, ip, lsr #4
+ 800099a: d1c0 bne.n 800091e <__aeabi_ddiv+0x82>
+ 800099c: f411 1f80 tst.w r1, #1048576 @ 0x100000
+ 80009a0: d10b bne.n 80009ba <__aeabi_ddiv+0x11e>
+ 80009a2: ea41 0100 orr.w r1, r1, r0
+ 80009a6: f04f 0000 mov.w r0, #0
+ 80009aa: f04f 4c00 mov.w ip, #2147483648 @ 0x80000000
+ 80009ae: e7b6 b.n 800091e <__aeabi_ddiv+0x82>
+ 80009b0: f411 1f80 tst.w r1, #1048576 @ 0x100000
+ 80009b4: bf04 itt eq
+ 80009b6: 4301 orreq r1, r0
+ 80009b8: 2000 moveq r0, #0
+ 80009ba: f1b4 0cfd subs.w ip, r4, #253 @ 0xfd
+ 80009be: bf88 it hi
+ 80009c0: f5bc 6fe0 cmphi.w ip, #1792 @ 0x700
+ 80009c4: f63f aeaf bhi.w 8000726 <__aeabi_dmul+0xde>
+ 80009c8: ebb5 0c03 subs.w ip, r5, r3
+ 80009cc: bf04 itt eq
+ 80009ce: ebb6 0c02 subseq.w ip, r6, r2
+ 80009d2: ea5f 0c50 movseq.w ip, r0, lsr #1
+ 80009d6: f150 0000 adcs.w r0, r0, #0
+ 80009da: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80009de: bd70 pop {r4, r5, r6, pc}
+ 80009e0: f00e 4e00 and.w lr, lr, #2147483648 @ 0x80000000
+ 80009e4: ea4e 3111 orr.w r1, lr, r1, lsr #12
+ 80009e8: eb14 045c adds.w r4, r4, ip, lsr #1
+ 80009ec: bfc2 ittt gt
+ 80009ee: ebd4 050c rsbsgt r5, r4, ip
+ 80009f2: ea41 5104 orrgt.w r1, r1, r4, lsl #20
+ 80009f6: bd70 popgt {r4, r5, r6, pc}
+ 80009f8: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 80009fc: f04f 0e00 mov.w lr, #0
+ 8000a00: 3c01 subs r4, #1
+ 8000a02: e690 b.n 8000726 <__aeabi_dmul+0xde>
+ 8000a04: ea45 0e06 orr.w lr, r5, r6
+ 8000a08: e68d b.n 8000726 <__aeabi_dmul+0xde>
+ 8000a0a: ea0c 5513 and.w r5, ip, r3, lsr #20
+ 8000a0e: ea94 0f0c teq r4, ip
+ 8000a12: bf08 it eq
+ 8000a14: ea95 0f0c teqeq r5, ip
+ 8000a18: f43f af3b beq.w 8000892 <__aeabi_dmul+0x24a>
+ 8000a1c: ea94 0f0c teq r4, ip
+ 8000a20: d10a bne.n 8000a38 <__aeabi_ddiv+0x19c>
+ 8000a22: ea50 3401 orrs.w r4, r0, r1, lsl #12
+ 8000a26: f47f af34 bne.w 8000892 <__aeabi_dmul+0x24a>
+ 8000a2a: ea95 0f0c teq r5, ip
+ 8000a2e: f47f af25 bne.w 800087c <__aeabi_dmul+0x234>
+ 8000a32: 4610 mov r0, r2
+ 8000a34: 4619 mov r1, r3
+ 8000a36: e72c b.n 8000892 <__aeabi_dmul+0x24a>
+ 8000a38: ea95 0f0c teq r5, ip
+ 8000a3c: d106 bne.n 8000a4c <__aeabi_ddiv+0x1b0>
+ 8000a3e: ea52 3503 orrs.w r5, r2, r3, lsl #12
+ 8000a42: f43f aefd beq.w 8000840 <__aeabi_dmul+0x1f8>
+ 8000a46: 4610 mov r0, r2
+ 8000a48: 4619 mov r1, r3
+ 8000a4a: e722 b.n 8000892 <__aeabi_dmul+0x24a>
+ 8000a4c: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000a50: bf18 it ne
+ 8000a52: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 8000a56: f47f aec5 bne.w 80007e4 <__aeabi_dmul+0x19c>
+ 8000a5a: ea50 0441 orrs.w r4, r0, r1, lsl #1
+ 8000a5e: f47f af0d bne.w 800087c <__aeabi_dmul+0x234>
+ 8000a62: ea52 0543 orrs.w r5, r2, r3, lsl #1
+ 8000a66: f47f aeeb bne.w 8000840 <__aeabi_dmul+0x1f8>
+ 8000a6a: e712 b.n 8000892 <__aeabi_dmul+0x24a>
+
+08000a6c <__gedf2>:
+ 8000a6c: f04f 3cff mov.w ip, #4294967295
+ 8000a70: e006 b.n 8000a80 <__cmpdf2+0x4>
+ 8000a72: bf00 nop
+
+08000a74 <__ledf2>:
+ 8000a74: f04f 0c01 mov.w ip, #1
+ 8000a78: e002 b.n 8000a80 <__cmpdf2+0x4>
+ 8000a7a: bf00 nop
+
+08000a7c <__cmpdf2>:
+ 8000a7c: f04f 0c01 mov.w ip, #1
+ 8000a80: f84d cd04 str.w ip, [sp, #-4]!
+ 8000a84: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000a88: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000a8c: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000a90: bf18 it ne
+ 8000a92: ea7f 5c6c mvnsne.w ip, ip, asr #21
+ 8000a96: d01b beq.n 8000ad0 <__cmpdf2+0x54>
+ 8000a98: b001 add sp, #4
+ 8000a9a: ea50 0c41 orrs.w ip, r0, r1, lsl #1
+ 8000a9e: bf0c ite eq
+ 8000aa0: ea52 0c43 orrseq.w ip, r2, r3, lsl #1
+ 8000aa4: ea91 0f03 teqne r1, r3
+ 8000aa8: bf02 ittt eq
+ 8000aaa: ea90 0f02 teqeq r0, r2
+ 8000aae: 2000 moveq r0, #0
+ 8000ab0: 4770 bxeq lr
+ 8000ab2: f110 0f00 cmn.w r0, #0
+ 8000ab6: ea91 0f03 teq r1, r3
+ 8000aba: bf58 it pl
+ 8000abc: 4299 cmppl r1, r3
+ 8000abe: bf08 it eq
+ 8000ac0: 4290 cmpeq r0, r2
+ 8000ac2: bf2c ite cs
+ 8000ac4: 17d8 asrcs r0, r3, #31
+ 8000ac6: ea6f 70e3 mvncc.w r0, r3, asr #31
+ 8000aca: f040 0001 orr.w r0, r0, #1
+ 8000ace: 4770 bx lr
+ 8000ad0: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000ad4: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000ad8: d102 bne.n 8000ae0 <__cmpdf2+0x64>
+ 8000ada: ea50 3c01 orrs.w ip, r0, r1, lsl #12
+ 8000ade: d107 bne.n 8000af0 <__cmpdf2+0x74>
+ 8000ae0: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000ae4: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000ae8: d1d6 bne.n 8000a98 <__cmpdf2+0x1c>
+ 8000aea: ea52 3c03 orrs.w ip, r2, r3, lsl #12
+ 8000aee: d0d3 beq.n 8000a98 <__cmpdf2+0x1c>
+ 8000af0: f85d 0b04 ldr.w r0, [sp], #4
+ 8000af4: 4770 bx lr
+ 8000af6: bf00 nop
+
+08000af8 <__aeabi_cdrcmple>:
+ 8000af8: 4684 mov ip, r0
+ 8000afa: 4610 mov r0, r2
+ 8000afc: 4662 mov r2, ip
+ 8000afe: 468c mov ip, r1
+ 8000b00: 4619 mov r1, r3
+ 8000b02: 4663 mov r3, ip
+ 8000b04: e000 b.n 8000b08 <__aeabi_cdcmpeq>
+ 8000b06: bf00 nop
+
+08000b08 <__aeabi_cdcmpeq>:
+ 8000b08: b501 push {r0, lr}
+ 8000b0a: f7ff ffb7 bl 8000a7c <__cmpdf2>
+ 8000b0e: 2800 cmp r0, #0
+ 8000b10: bf48 it mi
+ 8000b12: f110 0f00 cmnmi.w r0, #0
+ 8000b16: bd01 pop {r0, pc}
+
+08000b18 <__aeabi_dcmpeq>:
+ 8000b18: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b1c: f7ff fff4 bl 8000b08 <__aeabi_cdcmpeq>
+ 8000b20: bf0c ite eq
+ 8000b22: 2001 moveq r0, #1
+ 8000b24: 2000 movne r0, #0
+ 8000b26: f85d fb08 ldr.w pc, [sp], #8
+ 8000b2a: bf00 nop
+
+08000b2c <__aeabi_dcmplt>:
+ 8000b2c: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b30: f7ff ffea bl 8000b08 <__aeabi_cdcmpeq>
+ 8000b34: bf34 ite cc
+ 8000b36: 2001 movcc r0, #1
+ 8000b38: 2000 movcs r0, #0
+ 8000b3a: f85d fb08 ldr.w pc, [sp], #8
+ 8000b3e: bf00 nop
+
+08000b40 <__aeabi_dcmple>:
+ 8000b40: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b44: f7ff ffe0 bl 8000b08 <__aeabi_cdcmpeq>
+ 8000b48: bf94 ite ls
+ 8000b4a: 2001 movls r0, #1
+ 8000b4c: 2000 movhi r0, #0
+ 8000b4e: f85d fb08 ldr.w pc, [sp], #8
+ 8000b52: bf00 nop
+
+08000b54 <__aeabi_dcmpge>:
+ 8000b54: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b58: f7ff ffce bl 8000af8 <__aeabi_cdrcmple>
+ 8000b5c: bf94 ite ls
+ 8000b5e: 2001 movls r0, #1
+ 8000b60: 2000 movhi r0, #0
+ 8000b62: f85d fb08 ldr.w pc, [sp], #8
+ 8000b66: bf00 nop
+
+08000b68 <__aeabi_dcmpgt>:
+ 8000b68: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b6c: f7ff ffc4 bl 8000af8 <__aeabi_cdrcmple>
+ 8000b70: bf34 ite cc
+ 8000b72: 2001 movcc r0, #1
+ 8000b74: 2000 movcs r0, #0
+ 8000b76: f85d fb08 ldr.w pc, [sp], #8
+ 8000b7a: bf00 nop
+
+08000b7c <__aeabi_dcmpun>:
+ 8000b7c: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000b80: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000b84: d102 bne.n 8000b8c <__aeabi_dcmpun+0x10>
+ 8000b86: ea50 3c01 orrs.w ip, r0, r1, lsl #12
+ 8000b8a: d10a bne.n 8000ba2 <__aeabi_dcmpun+0x26>
+ 8000b8c: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000b90: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000b94: d102 bne.n 8000b9c <__aeabi_dcmpun+0x20>
+ 8000b96: ea52 3c03 orrs.w ip, r2, r3, lsl #12
+ 8000b9a: d102 bne.n 8000ba2 <__aeabi_dcmpun+0x26>
+ 8000b9c: f04f 0000 mov.w r0, #0
+ 8000ba0: 4770 bx lr
+ 8000ba2: f04f 0001 mov.w r0, #1
+ 8000ba6: 4770 bx lr
+
+08000ba8 <__aeabi_d2uiz>:
+ 8000ba8: 004a lsls r2, r1, #1
+ 8000baa: d211 bcs.n 8000bd0 <__aeabi_d2uiz+0x28>
+ 8000bac: f512 1200 adds.w r2, r2, #2097152 @ 0x200000
+ 8000bb0: d211 bcs.n 8000bd6 <__aeabi_d2uiz+0x2e>
+ 8000bb2: d50d bpl.n 8000bd0 <__aeabi_d2uiz+0x28>
+ 8000bb4: f46f 7378 mvn.w r3, #992 @ 0x3e0
+ 8000bb8: ebb3 5262 subs.w r2, r3, r2, asr #21
+ 8000bbc: d40e bmi.n 8000bdc <__aeabi_d2uiz+0x34>
+ 8000bbe: ea4f 23c1 mov.w r3, r1, lsl #11
+ 8000bc2: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000
+ 8000bc6: ea43 5350 orr.w r3, r3, r0, lsr #21
+ 8000bca: fa23 f002 lsr.w r0, r3, r2
+ 8000bce: 4770 bx lr
+ 8000bd0: f04f 0000 mov.w r0, #0
+ 8000bd4: 4770 bx lr
+ 8000bd6: ea50 3001 orrs.w r0, r0, r1, lsl #12
+ 8000bda: d102 bne.n 8000be2 <__aeabi_d2uiz+0x3a>
+ 8000bdc: f04f 30ff mov.w r0, #4294967295
+ 8000be0: 4770 bx lr
+ 8000be2: f04f 0000 mov.w r0, #0
+ 8000be6: 4770 bx lr
+
+08000be8 <__aeabi_d2f>:
+ 8000be8: ea4f 0241 mov.w r2, r1, lsl #1
+ 8000bec: f1b2 43e0 subs.w r3, r2, #1879048192 @ 0x70000000
+ 8000bf0: bf24 itt cs
+ 8000bf2: f5b3 1c00 subscs.w ip, r3, #2097152 @ 0x200000
+ 8000bf6: f1dc 5cfe rsbscs ip, ip, #532676608 @ 0x1fc00000
+ 8000bfa: d90d bls.n 8000c18 <__aeabi_d2f+0x30>
+ 8000bfc: f001 4c00 and.w ip, r1, #2147483648 @ 0x80000000
+ 8000c00: ea4f 02c0 mov.w r2, r0, lsl #3
+ 8000c04: ea4c 7050 orr.w r0, ip, r0, lsr #29
+ 8000c08: f1b2 4f00 cmp.w r2, #2147483648 @ 0x80000000
+ 8000c0c: eb40 0083 adc.w r0, r0, r3, lsl #2
+ 8000c10: bf08 it eq
+ 8000c12: f020 0001 biceq.w r0, r0, #1
+ 8000c16: 4770 bx lr
+ 8000c18: f011 4f80 tst.w r1, #1073741824 @ 0x40000000
+ 8000c1c: d121 bne.n 8000c62 <__aeabi_d2f+0x7a>
+ 8000c1e: f113 7238 adds.w r2, r3, #48234496 @ 0x2e00000
+ 8000c22: bfbc itt lt
+ 8000c24: f001 4000 andlt.w r0, r1, #2147483648 @ 0x80000000
+ 8000c28: 4770 bxlt lr
+ 8000c2a: f441 1180 orr.w r1, r1, #1048576 @ 0x100000
+ 8000c2e: ea4f 5252 mov.w r2, r2, lsr #21
+ 8000c32: f1c2 0218 rsb r2, r2, #24
+ 8000c36: f1c2 0c20 rsb ip, r2, #32
+ 8000c3a: fa10 f30c lsls.w r3, r0, ip
+ 8000c3e: fa20 f002 lsr.w r0, r0, r2
+ 8000c42: bf18 it ne
+ 8000c44: f040 0001 orrne.w r0, r0, #1
+ 8000c48: ea4f 23c1 mov.w r3, r1, lsl #11
+ 8000c4c: ea4f 23d3 mov.w r3, r3, lsr #11
+ 8000c50: fa03 fc0c lsl.w ip, r3, ip
+ 8000c54: ea40 000c orr.w r0, r0, ip
+ 8000c58: fa23 f302 lsr.w r3, r3, r2
+ 8000c5c: ea4f 0343 mov.w r3, r3, lsl #1
+ 8000c60: e7cc b.n 8000bfc <__aeabi_d2f+0x14>
+ 8000c62: ea7f 5362 mvns.w r3, r2, asr #21
+ 8000c66: d107 bne.n 8000c78 <__aeabi_d2f+0x90>
+ 8000c68: ea50 3301 orrs.w r3, r0, r1, lsl #12
+ 8000c6c: bf1e ittt ne
+ 8000c6e: f04f 40fe movne.w r0, #2130706432 @ 0x7f000000
+ 8000c72: f440 0040 orrne.w r0, r0, #12582912 @ 0xc00000
+ 8000c76: 4770 bxne lr
+ 8000c78: f001 4000 and.w r0, r1, #2147483648 @ 0x80000000
+ 8000c7c: f040 40fe orr.w r0, r0, #2130706432 @ 0x7f000000
+ 8000c80: f440 0000 orr.w r0, r0, #8388608 @ 0x800000
+ 8000c84: 4770 bx lr
+ 8000c86: bf00 nop
+
+08000c88 <__aeabi_uldivmod>:
+ 8000c88: b953 cbnz r3, 8000ca0 <__aeabi_uldivmod+0x18>
+ 8000c8a: b94a cbnz r2, 8000ca0 <__aeabi_uldivmod+0x18>
+ 8000c8c: 2900 cmp r1, #0
+ 8000c8e: bf08 it eq
+ 8000c90: 2800 cmpeq r0, #0
+ 8000c92: bf1c itt ne
+ 8000c94: f04f 31ff movne.w r1, #4294967295
+ 8000c98: f04f 30ff movne.w r0, #4294967295
+ 8000c9c: f000 b96a b.w 8000f74 <__aeabi_idiv0>
+ 8000ca0: f1ad 0c08 sub.w ip, sp, #8
+ 8000ca4: e96d ce04 strd ip, lr, [sp, #-16]!
+ 8000ca8: f000 f806 bl 8000cb8 <__udivmoddi4>
+ 8000cac: f8dd e004 ldr.w lr, [sp, #4]
+ 8000cb0: e9dd 2302 ldrd r2, r3, [sp, #8]
+ 8000cb4: b004 add sp, #16
+ 8000cb6: 4770 bx lr
+
+08000cb8 <__udivmoddi4>:
+ 8000cb8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000cbc: 9d08 ldr r5, [sp, #32]
+ 8000cbe: 460c mov r4, r1
+ 8000cc0: 2b00 cmp r3, #0
+ 8000cc2: d14e bne.n 8000d62 <__udivmoddi4+0xaa>
+ 8000cc4: 4694 mov ip, r2
+ 8000cc6: 458c cmp ip, r1
+ 8000cc8: 4686 mov lr, r0
+ 8000cca: fab2 f282 clz r2, r2
+ 8000cce: d962 bls.n 8000d96 <__udivmoddi4+0xde>
+ 8000cd0: b14a cbz r2, 8000ce6 <__udivmoddi4+0x2e>
+ 8000cd2: f1c2 0320 rsb r3, r2, #32
+ 8000cd6: 4091 lsls r1, r2
+ 8000cd8: fa20 f303 lsr.w r3, r0, r3
+ 8000cdc: fa0c fc02 lsl.w ip, ip, r2
+ 8000ce0: 4319 orrs r1, r3
+ 8000ce2: fa00 fe02 lsl.w lr, r0, r2
+ 8000ce6: ea4f 471c mov.w r7, ip, lsr #16
+ 8000cea: fa1f f68c uxth.w r6, ip
+ 8000cee: fbb1 f4f7 udiv r4, r1, r7
+ 8000cf2: ea4f 431e mov.w r3, lr, lsr #16
+ 8000cf6: fb07 1114 mls r1, r7, r4, r1
+ 8000cfa: ea43 4301 orr.w r3, r3, r1, lsl #16
+ 8000cfe: fb04 f106 mul.w r1, r4, r6
+ 8000d02: 4299 cmp r1, r3
+ 8000d04: d90a bls.n 8000d1c <__udivmoddi4+0x64>
+ 8000d06: eb1c 0303 adds.w r3, ip, r3
+ 8000d0a: f104 30ff add.w r0, r4, #4294967295
+ 8000d0e: f080 8112 bcs.w 8000f36 <__udivmoddi4+0x27e>
+ 8000d12: 4299 cmp r1, r3
+ 8000d14: f240 810f bls.w 8000f36 <__udivmoddi4+0x27e>
+ 8000d18: 3c02 subs r4, #2
+ 8000d1a: 4463 add r3, ip
+ 8000d1c: 1a59 subs r1, r3, r1
+ 8000d1e: fa1f f38e uxth.w r3, lr
+ 8000d22: fbb1 f0f7 udiv r0, r1, r7
+ 8000d26: fb07 1110 mls r1, r7, r0, r1
+ 8000d2a: ea43 4301 orr.w r3, r3, r1, lsl #16
+ 8000d2e: fb00 f606 mul.w r6, r0, r6
+ 8000d32: 429e cmp r6, r3
+ 8000d34: d90a bls.n 8000d4c <__udivmoddi4+0x94>
+ 8000d36: eb1c 0303 adds.w r3, ip, r3
+ 8000d3a: f100 31ff add.w r1, r0, #4294967295
+ 8000d3e: f080 80fc bcs.w 8000f3a <__udivmoddi4+0x282>
+ 8000d42: 429e cmp r6, r3
+ 8000d44: f240 80f9 bls.w 8000f3a <__udivmoddi4+0x282>
+ 8000d48: 4463 add r3, ip
+ 8000d4a: 3802 subs r0, #2
+ 8000d4c: 1b9b subs r3, r3, r6
+ 8000d4e: ea40 4004 orr.w r0, r0, r4, lsl #16
+ 8000d52: 2100 movs r1, #0
+ 8000d54: b11d cbz r5, 8000d5e <__udivmoddi4+0xa6>
+ 8000d56: 40d3 lsrs r3, r2
+ 8000d58: 2200 movs r2, #0
+ 8000d5a: e9c5 3200 strd r3, r2, [r5]
+ 8000d5e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000d62: 428b cmp r3, r1
+ 8000d64: d905 bls.n 8000d72 <__udivmoddi4+0xba>
+ 8000d66: b10d cbz r5, 8000d6c <__udivmoddi4+0xb4>
+ 8000d68: e9c5 0100 strd r0, r1, [r5]
+ 8000d6c: 2100 movs r1, #0
+ 8000d6e: 4608 mov r0, r1
+ 8000d70: e7f5 b.n 8000d5e <__udivmoddi4+0xa6>
+ 8000d72: fab3 f183 clz r1, r3
+ 8000d76: 2900 cmp r1, #0
+ 8000d78: d146 bne.n 8000e08 <__udivmoddi4+0x150>
+ 8000d7a: 42a3 cmp r3, r4
+ 8000d7c: d302 bcc.n 8000d84 <__udivmoddi4+0xcc>
+ 8000d7e: 4290 cmp r0, r2
+ 8000d80: f0c0 80f0 bcc.w 8000f64 <__udivmoddi4+0x2ac>
+ 8000d84: 1a86 subs r6, r0, r2
+ 8000d86: eb64 0303 sbc.w r3, r4, r3
+ 8000d8a: 2001 movs r0, #1
+ 8000d8c: 2d00 cmp r5, #0
+ 8000d8e: d0e6 beq.n 8000d5e <__udivmoddi4+0xa6>
+ 8000d90: e9c5 6300 strd r6, r3, [r5]
+ 8000d94: e7e3 b.n 8000d5e <__udivmoddi4+0xa6>
+ 8000d96: 2a00 cmp r2, #0
+ 8000d98: f040 8090 bne.w 8000ebc <__udivmoddi4+0x204>
+ 8000d9c: eba1 040c sub.w r4, r1, ip
+ 8000da0: ea4f 481c mov.w r8, ip, lsr #16
+ 8000da4: fa1f f78c uxth.w r7, ip
+ 8000da8: 2101 movs r1, #1
+ 8000daa: fbb4 f6f8 udiv r6, r4, r8
+ 8000dae: ea4f 431e mov.w r3, lr, lsr #16
+ 8000db2: fb08 4416 mls r4, r8, r6, r4
+ 8000db6: ea43 4304 orr.w r3, r3, r4, lsl #16
+ 8000dba: fb07 f006 mul.w r0, r7, r6
+ 8000dbe: 4298 cmp r0, r3
+ 8000dc0: d908 bls.n 8000dd4 <__udivmoddi4+0x11c>
+ 8000dc2: eb1c 0303 adds.w r3, ip, r3
+ 8000dc6: f106 34ff add.w r4, r6, #4294967295
+ 8000dca: d202 bcs.n 8000dd2 <__udivmoddi4+0x11a>
+ 8000dcc: 4298 cmp r0, r3
+ 8000dce: f200 80cd bhi.w 8000f6c <__udivmoddi4+0x2b4>
+ 8000dd2: 4626 mov r6, r4
+ 8000dd4: 1a1c subs r4, r3, r0
+ 8000dd6: fa1f f38e uxth.w r3, lr
+ 8000dda: fbb4 f0f8 udiv r0, r4, r8
+ 8000dde: fb08 4410 mls r4, r8, r0, r4
+ 8000de2: ea43 4304 orr.w r3, r3, r4, lsl #16
+ 8000de6: fb00 f707 mul.w r7, r0, r7
+ 8000dea: 429f cmp r7, r3
+ 8000dec: d908 bls.n 8000e00 <__udivmoddi4+0x148>
+ 8000dee: eb1c 0303 adds.w r3, ip, r3
+ 8000df2: f100 34ff add.w r4, r0, #4294967295
+ 8000df6: d202 bcs.n 8000dfe <__udivmoddi4+0x146>
+ 8000df8: 429f cmp r7, r3
+ 8000dfa: f200 80b0 bhi.w 8000f5e <__udivmoddi4+0x2a6>
+ 8000dfe: 4620 mov r0, r4
+ 8000e00: 1bdb subs r3, r3, r7
+ 8000e02: ea40 4006 orr.w r0, r0, r6, lsl #16
+ 8000e06: e7a5 b.n 8000d54 <__udivmoddi4+0x9c>
+ 8000e08: f1c1 0620 rsb r6, r1, #32
+ 8000e0c: 408b lsls r3, r1
+ 8000e0e: fa22 f706 lsr.w r7, r2, r6
+ 8000e12: 431f orrs r7, r3
+ 8000e14: fa20 fc06 lsr.w ip, r0, r6
+ 8000e18: fa04 f301 lsl.w r3, r4, r1
+ 8000e1c: ea43 030c orr.w r3, r3, ip
+ 8000e20: 40f4 lsrs r4, r6
+ 8000e22: fa00 f801 lsl.w r8, r0, r1
+ 8000e26: 0c38 lsrs r0, r7, #16
+ 8000e28: ea4f 4913 mov.w r9, r3, lsr #16
+ 8000e2c: fbb4 fef0 udiv lr, r4, r0
+ 8000e30: fa1f fc87 uxth.w ip, r7
+ 8000e34: fb00 441e mls r4, r0, lr, r4
+ 8000e38: ea49 4404 orr.w r4, r9, r4, lsl #16
+ 8000e3c: fb0e f90c mul.w r9, lr, ip
+ 8000e40: 45a1 cmp r9, r4
+ 8000e42: fa02 f201 lsl.w r2, r2, r1
+ 8000e46: d90a bls.n 8000e5e <__udivmoddi4+0x1a6>
+ 8000e48: 193c adds r4, r7, r4
+ 8000e4a: f10e 3aff add.w sl, lr, #4294967295
+ 8000e4e: f080 8084 bcs.w 8000f5a <__udivmoddi4+0x2a2>
+ 8000e52: 45a1 cmp r9, r4
+ 8000e54: f240 8081 bls.w 8000f5a <__udivmoddi4+0x2a2>
+ 8000e58: f1ae 0e02 sub.w lr, lr, #2
+ 8000e5c: 443c add r4, r7
+ 8000e5e: eba4 0409 sub.w r4, r4, r9
+ 8000e62: fa1f f983 uxth.w r9, r3
+ 8000e66: fbb4 f3f0 udiv r3, r4, r0
+ 8000e6a: fb00 4413 mls r4, r0, r3, r4
+ 8000e6e: ea49 4404 orr.w r4, r9, r4, lsl #16
+ 8000e72: fb03 fc0c mul.w ip, r3, ip
+ 8000e76: 45a4 cmp ip, r4
+ 8000e78: d907 bls.n 8000e8a <__udivmoddi4+0x1d2>
+ 8000e7a: 193c adds r4, r7, r4
+ 8000e7c: f103 30ff add.w r0, r3, #4294967295
+ 8000e80: d267 bcs.n 8000f52 <__udivmoddi4+0x29a>
+ 8000e82: 45a4 cmp ip, r4
+ 8000e84: d965 bls.n 8000f52 <__udivmoddi4+0x29a>
+ 8000e86: 3b02 subs r3, #2
+ 8000e88: 443c add r4, r7
+ 8000e8a: ea43 400e orr.w r0, r3, lr, lsl #16
+ 8000e8e: fba0 9302 umull r9, r3, r0, r2
+ 8000e92: eba4 040c sub.w r4, r4, ip
+ 8000e96: 429c cmp r4, r3
+ 8000e98: 46ce mov lr, r9
+ 8000e9a: 469c mov ip, r3
+ 8000e9c: d351 bcc.n 8000f42 <__udivmoddi4+0x28a>
+ 8000e9e: d04e beq.n 8000f3e <__udivmoddi4+0x286>
+ 8000ea0: b155 cbz r5, 8000eb8 <__udivmoddi4+0x200>
+ 8000ea2: ebb8 030e subs.w r3, r8, lr
+ 8000ea6: eb64 040c sbc.w r4, r4, ip
+ 8000eaa: fa04 f606 lsl.w r6, r4, r6
+ 8000eae: 40cb lsrs r3, r1
+ 8000eb0: 431e orrs r6, r3
+ 8000eb2: 40cc lsrs r4, r1
+ 8000eb4: e9c5 6400 strd r6, r4, [r5]
+ 8000eb8: 2100 movs r1, #0
+ 8000eba: e750 b.n 8000d5e <__udivmoddi4+0xa6>
+ 8000ebc: f1c2 0320 rsb r3, r2, #32
+ 8000ec0: fa20 f103 lsr.w r1, r0, r3
+ 8000ec4: fa0c fc02 lsl.w ip, ip, r2
+ 8000ec8: fa24 f303 lsr.w r3, r4, r3
+ 8000ecc: 4094 lsls r4, r2
+ 8000ece: 430c orrs r4, r1
+ 8000ed0: ea4f 481c mov.w r8, ip, lsr #16
+ 8000ed4: fa00 fe02 lsl.w lr, r0, r2
+ 8000ed8: fa1f f78c uxth.w r7, ip
+ 8000edc: fbb3 f0f8 udiv r0, r3, r8
+ 8000ee0: fb08 3110 mls r1, r8, r0, r3
+ 8000ee4: 0c23 lsrs r3, r4, #16
+ 8000ee6: ea43 4301 orr.w r3, r3, r1, lsl #16
+ 8000eea: fb00 f107 mul.w r1, r0, r7
+ 8000eee: 4299 cmp r1, r3
+ 8000ef0: d908 bls.n 8000f04 <__udivmoddi4+0x24c>
+ 8000ef2: eb1c 0303 adds.w r3, ip, r3
+ 8000ef6: f100 36ff add.w r6, r0, #4294967295
+ 8000efa: d22c bcs.n 8000f56 <__udivmoddi4+0x29e>
+ 8000efc: 4299 cmp r1, r3
+ 8000efe: d92a bls.n 8000f56 <__udivmoddi4+0x29e>
+ 8000f00: 3802 subs r0, #2
+ 8000f02: 4463 add r3, ip
+ 8000f04: 1a5b subs r3, r3, r1
+ 8000f06: b2a4 uxth r4, r4
+ 8000f08: fbb3 f1f8 udiv r1, r3, r8
+ 8000f0c: fb08 3311 mls r3, r8, r1, r3
+ 8000f10: ea44 4403 orr.w r4, r4, r3, lsl #16
+ 8000f14: fb01 f307 mul.w r3, r1, r7
+ 8000f18: 42a3 cmp r3, r4
+ 8000f1a: d908 bls.n 8000f2e <__udivmoddi4+0x276>
+ 8000f1c: eb1c 0404 adds.w r4, ip, r4
+ 8000f20: f101 36ff add.w r6, r1, #4294967295
+ 8000f24: d213 bcs.n 8000f4e <__udivmoddi4+0x296>
+ 8000f26: 42a3 cmp r3, r4
+ 8000f28: d911 bls.n 8000f4e <__udivmoddi4+0x296>
+ 8000f2a: 3902 subs r1, #2
+ 8000f2c: 4464 add r4, ip
+ 8000f2e: 1ae4 subs r4, r4, r3
+ 8000f30: ea41 4100 orr.w r1, r1, r0, lsl #16
+ 8000f34: e739 b.n 8000daa <__udivmoddi4+0xf2>
+ 8000f36: 4604 mov r4, r0
+ 8000f38: e6f0 b.n 8000d1c <__udivmoddi4+0x64>
+ 8000f3a: 4608 mov r0, r1
+ 8000f3c: e706 b.n 8000d4c <__udivmoddi4+0x94>
+ 8000f3e: 45c8 cmp r8, r9
+ 8000f40: d2ae bcs.n 8000ea0 <__udivmoddi4+0x1e8>
+ 8000f42: ebb9 0e02 subs.w lr, r9, r2
+ 8000f46: eb63 0c07 sbc.w ip, r3, r7
+ 8000f4a: 3801 subs r0, #1
+ 8000f4c: e7a8 b.n 8000ea0 <__udivmoddi4+0x1e8>
+ 8000f4e: 4631 mov r1, r6
+ 8000f50: e7ed b.n 8000f2e <__udivmoddi4+0x276>
+ 8000f52: 4603 mov r3, r0
+ 8000f54: e799 b.n 8000e8a <__udivmoddi4+0x1d2>
+ 8000f56: 4630 mov r0, r6
+ 8000f58: e7d4 b.n 8000f04 <__udivmoddi4+0x24c>
+ 8000f5a: 46d6 mov lr, sl
+ 8000f5c: e77f b.n 8000e5e <__udivmoddi4+0x1a6>
+ 8000f5e: 4463 add r3, ip
+ 8000f60: 3802 subs r0, #2
+ 8000f62: e74d b.n 8000e00 <__udivmoddi4+0x148>
+ 8000f64: 4606 mov r6, r0
+ 8000f66: 4623 mov r3, r4
+ 8000f68: 4608 mov r0, r1
+ 8000f6a: e70f b.n 8000d8c <__udivmoddi4+0xd4>
+ 8000f6c: 3e02 subs r6, #2
+ 8000f6e: 4463 add r3, ip
+ 8000f70: e730 b.n 8000dd4 <__udivmoddi4+0x11c>
+ 8000f72: bf00 nop
+
+08000f74 <__aeabi_idiv0>:
+ 8000f74: 4770 bx lr
+ 8000f76: bf00 nop
+
+08000f78 :
+
+ADC_HandleTypeDef hadc1;
+
+/* ADC1 init function */
+void MX_ADC1_Init(void)
+{
+ 8000f78: b580 push {r7, lr}
+ 8000f7a: b084 sub sp, #16
+ 8000f7c: af00 add r7, sp, #0
+
+ /* USER CODE BEGIN ADC1_Init 0 */
+
+ /* USER CODE END ADC1_Init 0 */
+
+ ADC_ChannelConfTypeDef sConfig = {0};
+ 8000f7e: 463b mov r3, r7
+ 8000f80: 2200 movs r2, #0
+ 8000f82: 601a str r2, [r3, #0]
+ 8000f84: 605a str r2, [r3, #4]
+ 8000f86: 609a str r2, [r3, #8]
+ 8000f88: 60da str r2, [r3, #12]
+
+ /* USER CODE END ADC1_Init 1 */
+
+ /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
+ */
+ hadc1.Instance = ADC1;
+ 8000f8a: 4b53 ldr r3, [pc, #332] @ (80010d8 )
+ 8000f8c: 4a53 ldr r2, [pc, #332] @ (80010dc )
+ 8000f8e: 601a str r2, [r3, #0]
+ hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
+ 8000f90: 4b51 ldr r3, [pc, #324] @ (80010d8 )
+ 8000f92: 2200 movs r2, #0
+ 8000f94: 605a str r2, [r3, #4]
+ hadc1.Init.Resolution = ADC_RESOLUTION_12B;
+ 8000f96: 4b50 ldr r3, [pc, #320] @ (80010d8 )
+ 8000f98: 2200 movs r2, #0
+ 8000f9a: 609a str r2, [r3, #8]
+ hadc1.Init.ScanConvMode = ENABLE;
+ 8000f9c: 4b4e ldr r3, [pc, #312] @ (80010d8 )
+ 8000f9e: 2201 movs r2, #1
+ 8000fa0: 611a str r2, [r3, #16]
+ hadc1.Init.ContinuousConvMode = DISABLE;
+ 8000fa2: 4b4d ldr r3, [pc, #308] @ (80010d8 )
+ 8000fa4: 2200 movs r2, #0
+ 8000fa6: 761a strb r2, [r3, #24]
+ hadc1.Init.DiscontinuousConvMode = ENABLE;
+ 8000fa8: 4b4b ldr r3, [pc, #300] @ (80010d8 )
+ 8000faa: 2201 movs r2, #1
+ 8000fac: f883 2020 strb.w r2, [r3, #32]
+ hadc1.Init.NbrOfDiscConversion = 1;
+ 8000fb0: 4b49 ldr r3, [pc, #292] @ (80010d8 )
+ 8000fb2: 2201 movs r2, #1
+ 8000fb4: 625a str r2, [r3, #36] @ 0x24
+ hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
+ 8000fb6: 4b48 ldr r3, [pc, #288] @ (80010d8 )
+ 8000fb8: 2200 movs r2, #0
+ 8000fba: 62da str r2, [r3, #44] @ 0x2c
+ hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
+ 8000fbc: 4b46 ldr r3, [pc, #280] @ (80010d8 )
+ 8000fbe: 4a48 ldr r2, [pc, #288] @ (80010e0 )
+ 8000fc0: 629a str r2, [r3, #40] @ 0x28
+ hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
+ 8000fc2: 4b45 ldr r3, [pc, #276] @ (80010d8 )
+ 8000fc4: 2200 movs r2, #0
+ 8000fc6: 60da str r2, [r3, #12]
+ hadc1.Init.NbrOfConversion = 8;
+ 8000fc8: 4b43 ldr r3, [pc, #268] @ (80010d8 )
+ 8000fca: 2208 movs r2, #8
+ 8000fcc: 61da str r2, [r3, #28]
+ hadc1.Init.DMAContinuousRequests = DISABLE;
+ 8000fce: 4b42 ldr r3, [pc, #264] @ (80010d8 )
+ 8000fd0: 2200 movs r2, #0
+ 8000fd2: f883 2030 strb.w r2, [r3, #48] @ 0x30
+ hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
+ 8000fd6: 4b40 ldr r3, [pc, #256] @ (80010d8 )
+ 8000fd8: 2201 movs r2, #1
+ 8000fda: 615a str r2, [r3, #20]
+ if (HAL_ADC_Init(&hadc1) != HAL_OK)
+ 8000fdc: 483e ldr r0, [pc, #248] @ (80010d8 )
+ 8000fde: f004 fd67 bl 8005ab0
+ 8000fe2: 4603 mov r3, r0
+ 8000fe4: 2b00 cmp r3, #0
+ 8000fe6: d001 beq.n 8000fec
+ {
+ Error_Handler();
+ 8000fe8: f002 f8be bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_4;
+ 8000fec: 2304 movs r3, #4
+ 8000fee: 603b str r3, [r7, #0]
+ sConfig.Rank = 1;
+ 8000ff0: 2301 movs r3, #1
+ 8000ff2: 607b str r3, [r7, #4]
+ sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES;
+ 8000ff4: 2302 movs r3, #2
+ 8000ff6: 60bb str r3, [r7, #8]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 8000ff8: 463b mov r3, r7
+ 8000ffa: 4619 mov r1, r3
+ 8000ffc: 4836 ldr r0, [pc, #216] @ (80010d8 )
+ 8000ffe: f005 f865 bl 80060cc
+ 8001002: 4603 mov r3, r0
+ 8001004: 2b00 cmp r3, #0
+ 8001006: d001 beq.n 800100c
+ {
+ Error_Handler();
+ 8001008: f002 f8ae bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_5;
+ 800100c: 2305 movs r3, #5
+ 800100e: 603b str r3, [r7, #0]
+ sConfig.Rank = 2;
+ 8001010: 2302 movs r3, #2
+ 8001012: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 8001014: 463b mov r3, r7
+ 8001016: 4619 mov r1, r3
+ 8001018: 482f ldr r0, [pc, #188] @ (80010d8 )
+ 800101a: f005 f857 bl 80060cc
+ 800101e: 4603 mov r3, r0
+ 8001020: 2b00 cmp r3, #0
+ 8001022: d001 beq.n 8001028
+ {
+ Error_Handler();
+ 8001024: f002 f8a0 bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_6;
+ 8001028: 2306 movs r3, #6
+ 800102a: 603b str r3, [r7, #0]
+ sConfig.Rank = 3;
+ 800102c: 2303 movs r3, #3
+ 800102e: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 8001030: 463b mov r3, r7
+ 8001032: 4619 mov r1, r3
+ 8001034: 4828 ldr r0, [pc, #160] @ (80010d8 )
+ 8001036: f005 f849 bl 80060cc
+ 800103a: 4603 mov r3, r0
+ 800103c: 2b00 cmp r3, #0
+ 800103e: d001 beq.n 8001044
+ {
+ Error_Handler();
+ 8001040: f002 f892 bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_11;
+ 8001044: 230b movs r3, #11
+ 8001046: 603b str r3, [r7, #0]
+ sConfig.Rank = 4;
+ 8001048: 2304 movs r3, #4
+ 800104a: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 800104c: 463b mov r3, r7
+ 800104e: 4619 mov r1, r3
+ 8001050: 4821 ldr r0, [pc, #132] @ (80010d8 )
+ 8001052: f005 f83b bl 80060cc
+ 8001056: 4603 mov r3, r0
+ 8001058: 2b00 cmp r3, #0
+ 800105a: d001 beq.n 8001060
+ {
+ Error_Handler();
+ 800105c: f002 f884 bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_12;
+ 8001060: 230c movs r3, #12
+ 8001062: 603b str r3, [r7, #0]
+ sConfig.Rank = 5;
+ 8001064: 2305 movs r3, #5
+ 8001066: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 8001068: 463b mov r3, r7
+ 800106a: 4619 mov r1, r3
+ 800106c: 481a ldr r0, [pc, #104] @ (80010d8 )
+ 800106e: f005 f82d bl 80060cc
+ 8001072: 4603 mov r3, r0
+ 8001074: 2b00 cmp r3, #0
+ 8001076: d001 beq.n 800107c
+ {
+ Error_Handler();
+ 8001078: f002 f876 bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_13;
+ 800107c: 230d movs r3, #13
+ 800107e: 603b str r3, [r7, #0]
+ sConfig.Rank = 6;
+ 8001080: 2306 movs r3, #6
+ 8001082: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 8001084: 463b mov r3, r7
+ 8001086: 4619 mov r1, r3
+ 8001088: 4813 ldr r0, [pc, #76] @ (80010d8 )
+ 800108a: f005 f81f bl 80060cc
+ 800108e: 4603 mov r3, r0
+ 8001090: 2b00 cmp r3, #0
+ 8001092: d001 beq.n 8001098
+ {
+ Error_Handler();
+ 8001094: f002 f868 bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_14;
+ 8001098: 230e movs r3, #14
+ 800109a: 603b str r3, [r7, #0]
+ sConfig.Rank = 7;
+ 800109c: 2307 movs r3, #7
+ 800109e: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 80010a0: 463b mov r3, r7
+ 80010a2: 4619 mov r1, r3
+ 80010a4: 480c ldr r0, [pc, #48] @ (80010d8 )
+ 80010a6: f005 f811 bl 80060cc
+ 80010aa: 4603 mov r3, r0
+ 80010ac: 2b00 cmp r3, #0
+ 80010ae: d001 beq.n 80010b4
+ {
+ Error_Handler();
+ 80010b0: f002 f85a bl 8003168
+ }
+
+ /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
+ */
+ sConfig.Channel = ADC_CHANNEL_15;
+ 80010b4: 230f movs r3, #15
+ 80010b6: 603b str r3, [r7, #0]
+ sConfig.Rank = 8;
+ 80010b8: 2308 movs r3, #8
+ 80010ba: 607b str r3, [r7, #4]
+ if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
+ 80010bc: 463b mov r3, r7
+ 80010be: 4619 mov r1, r3
+ 80010c0: 4805 ldr r0, [pc, #20] @ (80010d8 )
+ 80010c2: f005 f803 bl 80060cc
+ 80010c6: 4603 mov r3, r0
+ 80010c8: 2b00 cmp r3, #0
+ 80010ca: d001 beq.n 80010d0
+ {
+ Error_Handler();
+ 80010cc: f002 f84c bl 8003168
+ }
+ /* USER CODE BEGIN ADC1_Init 2 */
+
+ /* USER CODE END ADC1_Init 2 */
+
+}
+ 80010d0: bf00 nop
+ 80010d2: 3710 adds r7, #16
+ 80010d4: 46bd mov sp, r7
+ 80010d6: bd80 pop {r7, pc}
+ 80010d8: 200000a8 .word 0x200000a8
+ 80010dc: 40012000 .word 0x40012000
+ 80010e0: 0f000001 .word 0x0f000001
+
+080010e4 :
+
+void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
+{
+ 80010e4: b580 push {r7, lr}
+ 80010e6: b08a sub sp, #40 @ 0x28
+ 80010e8: af00 add r7, sp, #0
+ 80010ea: 6078 str r0, [r7, #4]
+
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 80010ec: f107 0314 add.w r3, r7, #20
+ 80010f0: 2200 movs r2, #0
+ 80010f2: 601a str r2, [r3, #0]
+ 80010f4: 605a str r2, [r3, #4]
+ 80010f6: 609a str r2, [r3, #8]
+ 80010f8: 60da str r2, [r3, #12]
+ 80010fa: 611a str r2, [r3, #16]
+ if(adcHandle->Instance==ADC1)
+ 80010fc: 687b ldr r3, [r7, #4]
+ 80010fe: 681b ldr r3, [r3, #0]
+ 8001100: 4a24 ldr r2, [pc, #144] @ (8001194 )
+ 8001102: 4293 cmp r3, r2
+ 8001104: d141 bne.n 800118a
+ {
+ /* USER CODE BEGIN ADC1_MspInit 0 */
+
+ /* USER CODE END ADC1_MspInit 0 */
+ /* ADC1 clock enable */
+ __HAL_RCC_ADC1_CLK_ENABLE();
+ 8001106: 2300 movs r3, #0
+ 8001108: 613b str r3, [r7, #16]
+ 800110a: 4b23 ldr r3, [pc, #140] @ (8001198 )
+ 800110c: 6c5b ldr r3, [r3, #68] @ 0x44
+ 800110e: 4a22 ldr r2, [pc, #136] @ (8001198 )
+ 8001110: f443 7380 orr.w r3, r3, #256 @ 0x100
+ 8001114: 6453 str r3, [r2, #68] @ 0x44
+ 8001116: 4b20 ldr r3, [pc, #128] @ (8001198 )
+ 8001118: 6c5b ldr r3, [r3, #68] @ 0x44
+ 800111a: f403 7380 and.w r3, r3, #256 @ 0x100
+ 800111e: 613b str r3, [r7, #16]
+ 8001120: 693b ldr r3, [r7, #16]
+
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ 8001122: 2300 movs r3, #0
+ 8001124: 60fb str r3, [r7, #12]
+ 8001126: 4b1c ldr r3, [pc, #112] @ (8001198 )
+ 8001128: 6b1b ldr r3, [r3, #48] @ 0x30
+ 800112a: 4a1b ldr r2, [pc, #108] @ (8001198 )
+ 800112c: f043 0304 orr.w r3, r3, #4
+ 8001130: 6313 str r3, [r2, #48] @ 0x30
+ 8001132: 4b19 ldr r3, [pc, #100] @ (8001198 )
+ 8001134: 6b1b ldr r3, [r3, #48] @ 0x30
+ 8001136: f003 0304 and.w r3, r3, #4
+ 800113a: 60fb str r3, [r7, #12]
+ 800113c: 68fb ldr r3, [r7, #12]
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ 800113e: 2300 movs r3, #0
+ 8001140: 60bb str r3, [r7, #8]
+ 8001142: 4b15 ldr r3, [pc, #84] @ (8001198 )
+ 8001144: 6b1b ldr r3, [r3, #48] @ 0x30
+ 8001146: 4a14 ldr r2, [pc, #80] @ (8001198 )
+ 8001148: f043 0301 orr.w r3, r3, #1
+ 800114c: 6313 str r3, [r2, #48] @ 0x30
+ 800114e: 4b12 ldr r3, [pc, #72] @ (8001198 )
+ 8001150: 6b1b ldr r3, [r3, #48] @ 0x30
+ 8001152: f003 0301 and.w r3, r3, #1
+ 8001156: 60bb str r3, [r7, #8]
+ 8001158: 68bb ldr r3, [r7, #8]
+ PA5 ------> ADC1_IN5
+ PA6 ------> ADC1_IN6
+ PC4 ------> ADC1_IN14
+ PC5 ------> ADC1_IN15
+ */
+ GPIO_InitStruct.Pin = RV_COMP_ADC_Pin|RA_COMP_ADC_Pin|LV_COMP_ADC_Pin|HV_ADC_Pin
+ 800115a: 233e movs r3, #62 @ 0x3e
+ 800115c: 617b str r3, [r7, #20]
+ |BAT_ADC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ 800115e: 2303 movs r3, #3
+ 8001160: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 8001162: 2300 movs r3, #0
+ 8001164: 61fb str r3, [r7, #28]
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ 8001166: f107 0314 add.w r3, r7, #20
+ 800116a: 4619 mov r1, r3
+ 800116c: 480b ldr r0, [pc, #44] @ (800119c )
+ 800116e: f006 f8e5 bl 800733c
+
+ GPIO_InitStruct.Pin = RA_ADC_Pin|RV_ADC_Pin|LV_ADC_Pin;
+ 8001172: 2370 movs r3, #112 @ 0x70
+ 8001174: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ 8001176: 2303 movs r3, #3
+ 8001178: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 800117a: 2300 movs r3, #0
+ 800117c: 61fb str r3, [r7, #28]
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ 800117e: f107 0314 add.w r3, r7, #20
+ 8001182: 4619 mov r1, r3
+ 8001184: 4806 ldr r0, [pc, #24] @ (80011a0 )
+ 8001186: f006 f8d9 bl 800733c
+
+ /* USER CODE BEGIN ADC1_MspInit 1 */
+
+ /* USER CODE END ADC1_MspInit 1 */
+ }
+}
+ 800118a: bf00 nop
+ 800118c: 3728 adds r7, #40 @ 0x28
+ 800118e: 46bd mov sp, r7
+ 8001190: bd80 pop {r7, pc}
+ 8001192: bf00 nop
+ 8001194: 40012000 .word 0x40012000
+ 8001198: 40023800 .word 0x40023800
+ 800119c: 40020800 .word 0x40020800
+ 80011a0: 40020000 .word 0x40020000
+
+080011a4 :
+}
+
+/* USER CODE BEGIN 1 */
+
+uint8_t volt_to_pers(uint32_t vin)
+{
+ 80011a4: b480 push {r7}
+ 80011a6: b085 sub sp, #20
+ 80011a8: af00 add r7, sp, #0
+ 80011aa: 6078 str r0, [r7, #4]
+ if(vin < Low_volt)
+ 80011ac: 687b ldr r3, [r7, #4]
+ 80011ae: f5b3 6f61 cmp.w r3, #3600 @ 0xe10
+ 80011b2: d201 bcs.n 80011b8
+ {
+ return 0;
+ 80011b4: 2300 movs r3, #0
+ 80011b6: e00f b.n 80011d8
+ }
+ if(vin > High_volt)
+ 80011b8: 687b ldr r3, [r7, #4]
+ 80011ba: f241 0204 movw r2, #4100 @ 0x1004
+ 80011be: 4293 cmp r3, r2
+ 80011c0: d901 bls.n 80011c6
+ {
+ return 100;
+ 80011c2: 2364 movs r3, #100 @ 0x64
+ 80011c4: e008 b.n 80011d8
+ }
+ else
+ {
+ uint8_t vout = (uint8_t)((vin-3600)/5);
+ 80011c6: 687b ldr r3, [r7, #4]
+ 80011c8: f5a3 6361 sub.w r3, r3, #3600 @ 0xe10
+ 80011cc: 4a05 ldr r2, [pc, #20] @ (80011e4 )
+ 80011ce: fba2 2303 umull r2, r3, r2, r3
+ 80011d2: 089b lsrs r3, r3, #2
+ 80011d4: 73fb strb r3, [r7, #15]
+ return vout;
+ 80011d6: 7bfb ldrb r3, [r7, #15]
+ }
+}
+ 80011d8: 4618 mov r0, r3
+ 80011da: 3714 adds r7, #20
+ 80011dc: 46bd mov sp, r7
+ 80011de: f85d 7b04 ldr.w r7, [sp], #4
+ 80011e2: 4770 bx lr
+ 80011e4: cccccccd .word 0xcccccccd
+
+080011e8 :
+
+void adc_read(adc_struct* adc)
+{
+ 80011e8: b580 push {r7, lr}
+ 80011ea: b082 sub sp, #8
+ 80011ec: af00 add r7, sp, #0
+ 80011ee: 6078 str r0, [r7, #4]
+ adc->error = HAL_ADC_Start(&hadc1);
+ 80011f0: 4875 ldr r0, [pc, #468] @ (80013c8 )
+ 80011f2: f004 fdbb bl 8005d6c
+ 80011f6: 4603 mov r3, r0
+ 80011f8: 461a mov r2, r3
+ 80011fa: 687b ldr r3, [r7, #4]
+ 80011fc: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 80011fe: 2101 movs r1, #1
+ 8001200: 4871 ldr r0, [pc, #452] @ (80013c8 )
+ 8001202: f004 fecb bl 8005f9c
+ 8001206: 4603 mov r3, r0
+ 8001208: 461a mov r2, r3
+ 800120a: 687b ldr r3, [r7, #4]
+ 800120c: 701a strb r2, [r3, #0]
+ adc->ecg_1_raw = HAL_ADC_GetValue(&hadc1);//Небольшой псевдо фильтр цифровой K - 0.1
+ 800120e: 486e ldr r0, [pc, #440] @ (80013c8 )
+ 8001210: f004 ff4f bl 80060b2
+ 8001214: 4603 mov r3, r0
+ 8001216: b29a uxth r2, r3
+ 8001218: 687b ldr r3, [r7, #4]
+ 800121a: 805a strh r2, [r3, #2]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 800121c: 486a ldr r0, [pc, #424] @ (80013c8 )
+ 800121e: f004 fda5 bl 8005d6c
+ 8001222: 4603 mov r3, r0
+ 8001224: 461a mov r2, r3
+ 8001226: 687b ldr r3, [r7, #4]
+ 8001228: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 800122a: 2101 movs r1, #1
+ 800122c: 4866 ldr r0, [pc, #408] @ (80013c8 )
+ 800122e: f004 feb5 bl 8005f9c
+ 8001232: 4603 mov r3, r0
+ 8001234: 461a mov r2, r3
+ 8001236: 687b ldr r3, [r7, #4]
+ 8001238: 701a strb r2, [r3, #0]
+ adc->ecg_2_raw = HAL_ADC_GetValue(&hadc1);
+ 800123a: 4863 ldr r0, [pc, #396] @ (80013c8 )
+ 800123c: f004 ff39 bl 80060b2
+ 8001240: 4603 mov r3, r0
+ 8001242: b29a uxth r2, r3
+ 8001244: 687b ldr r3, [r7, #4]
+ 8001246: 809a strh r2, [r3, #4]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 8001248: 485f ldr r0, [pc, #380] @ (80013c8 )
+ 800124a: f004 fd8f bl 8005d6c
+ 800124e: 4603 mov r3, r0
+ 8001250: 461a mov r2, r3
+ 8001252: 687b ldr r3, [r7, #4]
+ 8001254: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 8001256: 2101 movs r1, #1
+ 8001258: 485b ldr r0, [pc, #364] @ (80013c8 )
+ 800125a: f004 fe9f bl 8005f9c
+ 800125e: 4603 mov r3, r0
+ 8001260: 461a mov r2, r3
+ 8001262: 687b ldr r3, [r7, #4]
+ 8001264: 701a strb r2, [r3, #0]
+ adc->ecg_3_raw = HAL_ADC_GetValue(&hadc1);
+ 8001266: 4858 ldr r0, [pc, #352] @ (80013c8 )
+ 8001268: f004 ff23 bl 80060b2
+ 800126c: 4603 mov r3, r0
+ 800126e: b29a uxth r2, r3
+ 8001270: 687b ldr r3, [r7, #4]
+ 8001272: 80da strh r2, [r3, #6]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 8001274: 4854 ldr r0, [pc, #336] @ (80013c8 )
+ 8001276: f004 fd79 bl 8005d6c
+ 800127a: 4603 mov r3, r0
+ 800127c: 461a mov r2, r3
+ 800127e: 687b ldr r3, [r7, #4]
+ 8001280: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 8001282: 2101 movs r1, #1
+ 8001284: 4850 ldr r0, [pc, #320] @ (80013c8 )
+ 8001286: f004 fe89 bl 8005f9c
+ 800128a: 4603 mov r3, r0
+ 800128c: 461a mov r2, r3
+ 800128e: 687b ldr r3, [r7, #4]
+ 8001290: 701a strb r2, [r3, #0]
+ adc->rv_comp_raw = HAL_ADC_GetValue(&hadc1);//Небольшой псевдо фильтр цифровой K - 0.1
+ 8001292: 484d ldr r0, [pc, #308] @ (80013c8 )
+ 8001294: f004 ff0d bl 80060b2
+ 8001298: 4603 mov r3, r0
+ 800129a: b29a uxth r2, r3
+ 800129c: 687b ldr r3, [r7, #4]
+ 800129e: 825a strh r2, [r3, #18]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 80012a0: 4849 ldr r0, [pc, #292] @ (80013c8 )
+ 80012a2: f004 fd63 bl 8005d6c
+ 80012a6: 4603 mov r3, r0
+ 80012a8: 461a mov r2, r3
+ 80012aa: 687b ldr r3, [r7, #4]
+ 80012ac: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 80012ae: 2101 movs r1, #1
+ 80012b0: 4845 ldr r0, [pc, #276] @ (80013c8 )
+ 80012b2: f004 fe73 bl 8005f9c
+ 80012b6: 4603 mov r3, r0
+ 80012b8: 461a mov r2, r3
+ 80012ba: 687b ldr r3, [r7, #4]
+ 80012bc: 701a strb r2, [r3, #0]
+ adc->ra_comp_raw = HAL_ADC_GetValue(&hadc1);
+ 80012be: 4842 ldr r0, [pc, #264] @ (80013c8 )
+ 80012c0: f004 fef7 bl 80060b2
+ 80012c4: 4603 mov r3, r0
+ 80012c6: b29a uxth r2, r3
+ 80012c8: 687b ldr r3, [r7, #4]
+ 80012ca: 829a strh r2, [r3, #20]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 80012cc: 483e ldr r0, [pc, #248] @ (80013c8 )
+ 80012ce: f004 fd4d bl 8005d6c
+ 80012d2: 4603 mov r3, r0
+ 80012d4: 461a mov r2, r3
+ 80012d6: 687b ldr r3, [r7, #4]
+ 80012d8: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 80012da: 2101 movs r1, #1
+ 80012dc: 483a ldr r0, [pc, #232] @ (80013c8 )
+ 80012de: f004 fe5d bl 8005f9c
+ 80012e2: 4603 mov r3, r0
+ 80012e4: 461a mov r2, r3
+ 80012e6: 687b ldr r3, [r7, #4]
+ 80012e8: 701a strb r2, [r3, #0]
+ adc->lv_comp_raw = HAL_ADC_GetValue(&hadc1);
+ 80012ea: 4837 ldr r0, [pc, #220] @ (80013c8 )
+ 80012ec: f004 fee1 bl 80060b2
+ 80012f0: 4603 mov r3, r0
+ 80012f2: b29a uxth r2, r3
+ 80012f4: 687b ldr r3, [r7, #4]
+ 80012f6: 82da strh r2, [r3, #22]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 80012f8: 4833 ldr r0, [pc, #204] @ (80013c8 )
+ 80012fa: f004 fd37 bl 8005d6c
+ 80012fe: 4603 mov r3, r0
+ 8001300: 461a mov r2, r3
+ 8001302: 687b ldr r3, [r7, #4]
+ 8001304: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 8001306: 2101 movs r1, #1
+ 8001308: 482f ldr r0, [pc, #188] @ (80013c8 )
+ 800130a: f004 fe47 bl 8005f9c
+ 800130e: 4603 mov r3, r0
+ 8001310: 461a mov r2, r3
+ 8001312: 687b ldr r3, [r7, #4]
+ 8001314: 701a strb r2, [r3, #0]
+ adc->hv_raw = HAL_ADC_GetValue(&hadc1);
+ 8001316: 482c ldr r0, [pc, #176] @ (80013c8 )
+ 8001318: f004 fecb bl 80060b2
+ 800131c: 4603 mov r3, r0
+ 800131e: b29a uxth r2, r3
+ 8001320: 687b ldr r3, [r7, #4]
+ 8001322: 81da strh r2, [r3, #14]
+ adc->hv_volt = ((uint32_t)(adc->hv_raw) * 9700)/4095;//40 миливольт падение на идеальном диоде
+ 8001324: 687b ldr r3, [r7, #4]
+ 8001326: 89db ldrh r3, [r3, #14]
+ 8001328: 461a mov r2, r3
+ 800132a: f242 53e4 movw r3, #9700 @ 0x25e4
+ 800132e: fb03 f202 mul.w r2, r3, r2
+ 8001332: 4b26 ldr r3, [pc, #152] @ (80013cc )
+ 8001334: fba3 1302 umull r1, r3, r3, r2
+ 8001338: 1ad2 subs r2, r2, r3
+ 800133a: 0852 lsrs r2, r2, #1
+ 800133c: 4413 add r3, r2
+ 800133e: 0adb lsrs r3, r3, #11
+ 8001340: b29a uxth r2, r3
+ 8001342: 687b ldr r3, [r7, #4]
+ 8001344: 821a strh r2, [r3, #16]
+
+ adc->error = HAL_ADC_Start(&hadc1);
+ 8001346: 4820 ldr r0, [pc, #128] @ (80013c8 )
+ 8001348: f004 fd10 bl 8005d6c
+ 800134c: 4603 mov r3, r0
+ 800134e: 461a mov r2, r3
+ 8001350: 687b ldr r3, [r7, #4]
+ 8001352: 701a strb r2, [r3, #0]
+ adc->error = HAL_ADC_PollForConversion(&hadc1, 1);
+ 8001354: 2101 movs r1, #1
+ 8001356: 481c ldr r0, [pc, #112] @ (80013c8 )
+ 8001358: f004 fe20 bl 8005f9c
+ 800135c: 4603 mov r3, r0
+ 800135e: 461a mov r2, r3
+ 8001360: 687b ldr r3, [r7, #4]
+ 8001362: 701a strb r2, [r3, #0]
+ adc->bat_raw = HAL_ADC_GetValue(&hadc1);
+ 8001364: 4818 ldr r0, [pc, #96] @ (80013c8 )
+ 8001366: f004 fea4 bl 80060b2
+ 800136a: 4603 mov r3, r0
+ 800136c: b29a uxth r2, r3
+ 800136e: 687b ldr r3, [r7, #4]
+ 8001370: 811a strh r2, [r3, #8]
+ adc->bat_volt = ((uint32_t)(adc->bat_raw) * 6600)/4095 + 40;//40 миливольт падение на идеальном диоде
+ 8001372: 687b ldr r3, [r7, #4]
+ 8001374: 891b ldrh r3, [r3, #8]
+ 8001376: 461a mov r2, r3
+ 8001378: f641 13c8 movw r3, #6600 @ 0x19c8
+ 800137c: fb03 f202 mul.w r2, r3, r2
+ 8001380: 4b12 ldr r3, [pc, #72] @ (80013cc )
+ 8001382: fba3 1302 umull r1, r3, r3, r2
+ 8001386: 1ad2 subs r2, r2, r3
+ 8001388: 0852 lsrs r2, r2, #1
+ 800138a: 4413 add r3, r2
+ 800138c: 0adb lsrs r3, r3, #11
+ 800138e: b29b uxth r3, r3
+ 8001390: 3328 adds r3, #40 @ 0x28
+ 8001392: b29a uxth r2, r3
+ 8001394: 687b ldr r3, [r7, #4]
+ 8001396: 815a strh r2, [r3, #10]
+ adc->bat_pers = volt_to_pers(adc->bat_volt);//40 миливольт падение на идеальном диоде
+ 8001398: 687b ldr r3, [r7, #4]
+ 800139a: 895b ldrh r3, [r3, #10]
+ 800139c: 4618 mov r0, r3
+ 800139e: f7ff ff01 bl 80011a4
+ 80013a2: 4603 mov r3, r0
+ 80013a4: 461a mov r2, r3
+ 80013a6: 687b ldr r3, [r7, #4]
+ 80013a8: 731a strb r2, [r3, #12]
+
+
+ adc->error = HAL_ADC_Stop(&hadc1);
+ 80013aa: 4807 ldr r0, [pc, #28] @ (80013c8 )
+ 80013ac: f004 fdb6 bl 8005f1c
+ 80013b0: 4603 mov r3, r0
+ 80013b2: 461a mov r2, r3
+ 80013b4: 687b ldr r3, [r7, #4]
+ 80013b6: 701a strb r2, [r3, #0]
+ adc->drdy_trigger = true;
+ 80013b8: 687b ldr r3, [r7, #4]
+ 80013ba: 2201 movs r2, #1
+ 80013bc: 761a strb r2, [r3, #24]
+}
+ 80013be: bf00 nop
+ 80013c0: 3708 adds r7, #8
+ 80013c2: 46bd mov sp, r7
+ 80013c4: bd80 pop {r7, pc}
+ 80013c6: bf00 nop
+ 80013c8: 200000a8 .word 0x200000a8
+ 80013cc: 00100101 .word 0x00100101
+
+080013d0 :
+#include "control.h"
+
+ctrl_struct Control; //FLASH (rx)
+
+void control_init(void)
+{
+ 80013d0: b480 push {r7}
+ 80013d2: af00 add r7, sp, #0
+ Control.dev_type = DEV_TYPE;
+ 80013d4: 4b12 ldr r3, [pc, #72] @ (8001420 )
+ 80013d6: 2201 movs r2, #1
+ 80013d8: 771a strb r2, [r3, #28]
+ Control.ble_mode_set = ble_raw;
+ 80013da: 4b11 ldr r3, [pc, #68] @ (8001420 )
+ 80013dc: 2201 movs r2, #1
+ 80013de: 769a strb r2, [r3, #26]
+ Control.ble_mode_now = ble_off;
+ 80013e0: 4b0f ldr r3, [pc, #60] @ (8001420 )
+ 80013e2: 2200 movs r2, #0
+ 80013e4: 76da strb r2, [r3, #27]
+ Control.serial_number = BASE_SERIAL_NUM;
+ 80013e6: 4b0e ldr r3, [pc, #56] @ (8001420 )
+ 80013e8: f244 0201 movw r2, #16385 @ 0x4001
+ 80013ec: 621a str r2, [r3, #32]
+ Control.password = BASE_PASSWORD;
+ 80013ee: 4b0c ldr r3, [pc, #48] @ (8001420 )
+ 80013f0: 4a0c ldr r2, [pc, #48] @ (8001424 )
+ 80013f2: 625a str r2, [r3, #36] @ 0x24
+ Control.mesh_netid = BASE_MESH_ID;
+ 80013f4: 4b0a ldr r3, [pc, #40] @ (8001420 )
+ 80013f6: f241 3213 movw r2, #4883 @ 0x1313
+ 80013fa: 629a str r2, [r3, #40] @ 0x28
+ Control.mesh_adr = BASE_MESH_ADR;
+ 80013fc: 4b08 ldr r3, [pc, #32] @ (8001420 )
+ 80013fe: f244 0201 movw r2, #16385 @ 0x4001
+ 8001402: 62da str r2, [r3, #44] @ 0x2c
+ Control.master_adr = BASE_MASTER_ADR;
+ 8001404: 4b06 ldr r3, [pc, #24] @ (8001420 )
+ 8001406: f241 0201 movw r2, #4097 @ 0x1001
+ 800140a: 631a str r2, [r3, #48] @ 0x30
+ Control.ble_ask = false;
+ 800140c: 4b04 ldr r3, [pc, #16] @ (8001420 )
+ 800140e: 2200 movs r2, #0
+ 8001410: f883 2034 strb.w r2, [r3, #52] @ 0x34
+}
+ 8001414: bf00 nop
+ 8001416: 46bd mov sp, r7
+ 8001418: f85d 7b04 ldr.w r7, [sp], #4
+ 800141c: 4770 bx lr
+ 800141e: bf00 nop
+ 8001420: 200000f0 .word 0x200000f0
+ 8001424: 000bde31 .word 0x000bde31
+
+08001428 :
+ control->ble_ask = false;
+}
+
+
+void lets_sleep(void)
+{
+ 8001428: b580 push {r7, lr}
+ 800142a: af00 add r7, sp, #0
+ //Выключили питание АЦП
+ HAL_GPIO_WritePin(INA_PWR_GPIO_Port, INA_PWR_Pin, RESET);
+ 800142c: 2200 movs r2, #0
+ 800142e: 2180 movs r1, #128 @ 0x80
+ 8001430: 4810 ldr r0, [pc, #64] @ (8001474 )
+ 8001432: f006 f9e7 bl 8007804
+ //Выключили питание потенциометра
+ HAL_GPIO_WritePin(POT_PWR_GPIO_Port, POT_PWR_Pin, GPIO_PIN_RESET);
+ 8001436: 2200 movs r2, #0
+ 8001438: f44f 4180 mov.w r1, #16384 @ 0x4000
+ 800143c: 480e ldr r0, [pc, #56] @ (8001478 )
+ 800143e: f006 f9e1 bl 8007804
+ HAL_GPIO_WritePin(BLE_PWR_GPIO_Port, BLE_PWR_Pin, SET);
+ 8001442: 2201 movs r2, #1
+ 8001444: f44f 5180 mov.w r1, #4096 @ 0x1000
+ 8001448: 480c ldr r0, [pc, #48] @ (800147c )
+ 800144a: f006 f9db bl 8007804
+
+ HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);
+ 800144e: f44f 7080 mov.w r0, #256 @ 0x100
+ 8001452: f006 fa25 bl 80078a0
+ //Сейчас второй кнопки нет!!
+ //HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2);//если вторая кнопка тоже подключена PC0
+ __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
+ 8001456: 4b0a ldr r3, [pc, #40] @ (8001480 )
+ 8001458: 681b ldr r3, [r3, #0]
+ 800145a: 4a09 ldr r2, [pc, #36] @ (8001480 )
+ 800145c: f043 0304 orr.w r3, r3, #4
+ 8001460: 6013 str r3, [r2, #0]
+ HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
+ 8001462: f44f 7080 mov.w r0, #256 @ 0x100
+ 8001466: f006 f9f9 bl 800785c
+ HAL_PWR_EnterSTANDBYMode();
+ 800146a: f006 fa3b bl 80078e4
+}
+ 800146e: bf00 nop
+ 8001470: bd80 pop {r7, pc}
+ 8001472: bf00 nop
+ 8001474: 40021000 .word 0x40021000
+ 8001478: 40020400 .word 0x40020400
+ 800147c: 40020000 .word 0x40020000
+ 8001480: 40007000 .word 0x40007000
+
+08001484 :
+
+//===============================================================
+// Задержка времени в мкс
+//===============================================================
+void delay_us(unsigned int t)
+{
+ 8001484: b480 push {r7}
+ 8001486: b085 sub sp, #20
+ 8001488: af00 add r7, sp, #0
+ 800148a: 6078 str r0, [r7, #4]
+ unsigned long i;
+ i = t*SYSCLK;
+ 800148c: 687a ldr r2, [r7, #4]
+ 800148e: 4613 mov r3, r2
+ 8001490: 005b lsls r3, r3, #1
+ 8001492: 4413 add r3, r2
+ 8001494: 00db lsls r3, r3, #3
+ 8001496: 60fb str r3, [r7, #12]
+ while(i--);
+ 8001498: bf00 nop
+ 800149a: 68fb ldr r3, [r7, #12]
+ 800149c: 1e5a subs r2, r3, #1
+ 800149e: 60fa str r2, [r7, #12]
+ 80014a0: 2b00 cmp r3, #0
+ 80014a2: d1fa bne.n 800149a
+}
+ 80014a4: bf00 nop
+ 80014a6: bf00 nop
+ 80014a8: 3714 adds r7, #20
+ 80014aa: 46bd mov sp, r7
+ 80014ac: f85d 7b04 ldr.w r7, [sp], #4
+ 80014b0: 4770 bx lr
+ ...
+
+080014b4 :
+
+/**
+ * Enable DMA controller clock
+ */
+void MX_DMA_Init(void)
+{
+ 80014b4: b580 push {r7, lr}
+ 80014b6: b082 sub sp, #8
+ 80014b8: af00 add r7, sp, #0
+
+ /* DMA controller clock enable */
+ __HAL_RCC_DMA2_CLK_ENABLE();
+ 80014ba: 2300 movs r3, #0
+ 80014bc: 607b str r3, [r7, #4]
+ 80014be: 4b10 ldr r3, [pc, #64] @ (8001500 )
+ 80014c0: 6b1b ldr r3, [r3, #48] @ 0x30
+ 80014c2: 4a0f ldr r2, [pc, #60] @ (8001500 )
+ 80014c4: f443 0380 orr.w r3, r3, #4194304 @ 0x400000
+ 80014c8: 6313 str r3, [r2, #48] @ 0x30
+ 80014ca: 4b0d ldr r3, [pc, #52] @ (8001500 )
+ 80014cc: 6b1b ldr r3, [r3, #48] @ 0x30
+ 80014ce: f403 0380 and.w r3, r3, #4194304 @ 0x400000
+ 80014d2: 607b str r3, [r7, #4]
+ 80014d4: 687b ldr r3, [r7, #4]
+
+ /* DMA interrupt init */
+ /* DMA2_Stream2_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
+ 80014d6: 2200 movs r2, #0
+ 80014d8: 2105 movs r1, #5
+ 80014da: 203a movs r0, #58 @ 0x3a
+ 80014dc: f005 f944 bl 8006768
+ HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
+ 80014e0: 203a movs r0, #58 @ 0x3a
+ 80014e2: f005 f96d bl 80067c0
+ /* DMA2_Stream7_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 5, 0);
+ 80014e6: 2200 movs r2, #0
+ 80014e8: 2105 movs r1, #5
+ 80014ea: 2046 movs r0, #70 @ 0x46
+ 80014ec: f005 f93c bl 8006768
+ HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
+ 80014f0: 2046 movs r0, #70 @ 0x46
+ 80014f2: f005 f965 bl 80067c0
+
+}
+ 80014f6: bf00 nop
+ 80014f8: 3708 adds r7, #8
+ 80014fa: 46bd mov sp, r7
+ 80014fc: bd80 pop {r7, pc}
+ 80014fe: bf00 nop
+ 8001500: 40023800 .word 0x40023800
+
+08001504 :
+
+ return y[0];
+}
+
+#define NCoef_lp 4
+float iir_lp30(float NewSample) {
+ 8001504: b4b0 push {r4, r5, r7}
+ 8001506: b08f sub sp, #60 @ 0x3c
+ 8001508: af00 add r7, sp, #0
+ 800150a: ed87 0a01 vstr s0, [r7, #4]
+ float ACoef[NCoef_lp+1] = {
+ 800150e: 4b3b ldr r3, [pc, #236] @ (80015fc )
+ 8001510: f107 0420 add.w r4, r7, #32
+ 8001514: 461d mov r5, r3
+ 8001516: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 8001518: c40f stmia r4!, {r0, r1, r2, r3}
+ 800151a: 682b ldr r3, [r5, #0]
+ 800151c: 6023 str r3, [r4, #0]
+ 0.11138063027330414000,
+ 0.07425375351553609200,
+ 0.01856343837888402300
+ };
+
+ float BCoef[NCoef_lp+1] = {
+ 800151e: 4b38 ldr r3, [pc, #224] @ (8001600 )
+ 8001520: f107 040c add.w r4, r7, #12
+ 8001524: 461d mov r5, r3
+ 8001526: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 8001528: c40f stmia r4!, {r0, r1, r2, r3}
+ 800152a: 682b ldr r3, [r5, #0]
+ 800152c: 6023 str r3, [r4, #0]
+ static float y[NCoef_lp+1]; //output samples
+ static float x[NCoef_lp+1]; //input samples
+ int n;
+
+ //shift the old samples
+ for(n=NCoef_lp; n>0; n--) {
+ 800152e: 2304 movs r3, #4
+ 8001530: 637b str r3, [r7, #52] @ 0x34
+ 8001532: e018 b.n 8001566
+ x[n] = x[n-1];
+ 8001534: 6b7b ldr r3, [r7, #52] @ 0x34
+ 8001536: 3b01 subs r3, #1
+ 8001538: 4a32 ldr r2, [pc, #200] @ (8001604 )
+ 800153a: 009b lsls r3, r3, #2
+ 800153c: 4413 add r3, r2
+ 800153e: 681a ldr r2, [r3, #0]
+ 8001540: 4930 ldr r1, [pc, #192] @ (8001604 )
+ 8001542: 6b7b ldr r3, [r7, #52] @ 0x34
+ 8001544: 009b lsls r3, r3, #2
+ 8001546: 440b add r3, r1
+ 8001548: 601a str r2, [r3, #0]
+ y[n] = y[n-1];
+ 800154a: 6b7b ldr r3, [r7, #52] @ 0x34
+ 800154c: 3b01 subs r3, #1
+ 800154e: 4a2e ldr r2, [pc, #184] @ (8001608 )
+ 8001550: 009b lsls r3, r3, #2
+ 8001552: 4413 add r3, r2
+ 8001554: 681a ldr r2, [r3, #0]
+ 8001556: 492c ldr r1, [pc, #176] @ (8001608 )
+ 8001558: 6b7b ldr r3, [r7, #52] @ 0x34
+ 800155a: 009b lsls r3, r3, #2
+ 800155c: 440b add r3, r1
+ 800155e: 601a str r2, [r3, #0]
+ for(n=NCoef_lp; n>0; n--) {
+ 8001560: 6b7b ldr r3, [r7, #52] @ 0x34
+ 8001562: 3b01 subs r3, #1
+ 8001564: 637b str r3, [r7, #52] @ 0x34
+ 8001566: 6b7b ldr r3, [r7, #52] @ 0x34
+ 8001568: 2b00 cmp r3, #0
+ 800156a: dce3 bgt.n 8001534
+ }
+
+ //Calculate the new output
+ x[0] = NewSample;
+ 800156c: 4a25 ldr r2, [pc, #148] @ (8001604 )
+ 800156e: 687b ldr r3, [r7, #4]
+ 8001570: 6013 str r3, [r2, #0]
+ y[0] = ACoef[0] * x[0];
+ 8001572: ed97 7a08 vldr s14, [r7, #32]
+ 8001576: 4b23 ldr r3, [pc, #140] @ (8001604 )
+ 8001578: edd3 7a00 vldr s15, [r3]
+ 800157c: ee67 7a27 vmul.f32 s15, s14, s15
+ 8001580: 4b21 ldr r3, [pc, #132] @ (8001608 )
+ 8001582: edc3 7a00 vstr s15, [r3]
+ for(n=1; n<=NCoef_lp; n++)
+ 8001586: 2301 movs r3, #1
+ 8001588: 637b str r3, [r7, #52] @ 0x34
+ 800158a: e02a b.n 80015e2
+ y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
+ 800158c: 4b1e ldr r3, [pc, #120] @ (8001608 )
+ 800158e: ed93 7a00 vldr s14, [r3]
+ 8001592: 6b7b ldr r3, [r7, #52] @ 0x34
+ 8001594: 009b lsls r3, r3, #2
+ 8001596: 3338 adds r3, #56 @ 0x38
+ 8001598: 443b add r3, r7
+ 800159a: 3b18 subs r3, #24
+ 800159c: edd3 6a00 vldr s13, [r3]
+ 80015a0: 4a18 ldr r2, [pc, #96] @ (8001604 )
+ 80015a2: 6b7b ldr r3, [r7, #52] @ 0x34
+ 80015a4: 009b lsls r3, r3, #2
+ 80015a6: 4413 add r3, r2
+ 80015a8: edd3 7a00 vldr s15, [r3]
+ 80015ac: ee66 6aa7 vmul.f32 s13, s13, s15
+ 80015b0: 6b7b ldr r3, [r7, #52] @ 0x34
+ 80015b2: 009b lsls r3, r3, #2
+ 80015b4: 3338 adds r3, #56 @ 0x38
+ 80015b6: 443b add r3, r7
+ 80015b8: 3b2c subs r3, #44 @ 0x2c
+ 80015ba: ed93 6a00 vldr s12, [r3]
+ 80015be: 4a12 ldr r2, [pc, #72] @ (8001608 )
+ 80015c0: 6b7b ldr r3, [r7, #52] @ 0x34
+ 80015c2: 009b lsls r3, r3, #2
+ 80015c4: 4413 add r3, r2
+ 80015c6: edd3 7a00 vldr s15, [r3]
+ 80015ca: ee66 7a27 vmul.f32 s15, s12, s15
+ 80015ce: ee76 7ae7 vsub.f32 s15, s13, s15
+ 80015d2: ee77 7a27 vadd.f32 s15, s14, s15
+ 80015d6: 4b0c ldr r3, [pc, #48] @ (8001608 )
+ 80015d8: edc3 7a00 vstr s15, [r3]
+ for(n=1; n<=NCoef_lp; n++)
+ 80015dc: 6b7b ldr r3, [r7, #52] @ 0x34
+ 80015de: 3301 adds r3, #1
+ 80015e0: 637b str r3, [r7, #52] @ 0x34
+ 80015e2: 6b7b ldr r3, [r7, #52] @ 0x34
+ 80015e4: 2b04 cmp r3, #4
+ 80015e6: ddd1 ble.n 800158c
+
+ return y[0];
+ 80015e8: 4b07 ldr r3, [pc, #28] @ (8001608 )
+ 80015ea: 681b ldr r3, [r3, #0]
+ 80015ec: ee07 3a90 vmov s15, r3
+}
+ 80015f0: eeb0 0a67 vmov.f32 s0, s15
+ 80015f4: 373c adds r7, #60 @ 0x3c
+ 80015f6: 46bd mov sp, r7
+ 80015f8: bcb0 pop {r4, r5, r7}
+ 80015fa: 4770 bx lr
+ 80015fc: 0800e5fc .word 0x0800e5fc
+ 8001600: 0800e610 .word 0x0800e610
+ 8001604: 20000128 .word 0x20000128
+ 8001608: 2000013c .word 0x2000013c
+
+0800160c :
+/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
+static StaticTask_t xIdleTaskTCBBuffer;
+static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
+
+void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
+{
+ 800160c: b480 push {r7}
+ 800160e: b085 sub sp, #20
+ 8001610: af00 add r7, sp, #0
+ 8001612: 60f8 str r0, [r7, #12]
+ 8001614: 60b9 str r1, [r7, #8]
+ 8001616: 607a str r2, [r7, #4]
+ *ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
+ 8001618: 68fb ldr r3, [r7, #12]
+ 800161a: 4a07 ldr r2, [pc, #28] @ (8001638 )
+ 800161c: 601a str r2, [r3, #0]
+ *ppxIdleTaskStackBuffer = &xIdleStack[0];
+ 800161e: 68bb ldr r3, [r7, #8]
+ 8001620: 4a06 ldr r2, [pc, #24] @ (800163c )
+ 8001622: 601a str r2, [r3, #0]
+ *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
+ 8001624: 687b ldr r3, [r7, #4]
+ 8001626: 2280 movs r2, #128 @ 0x80
+ 8001628: 601a str r2, [r3, #0]
+ /* place for user code */
+}
+ 800162a: bf00 nop
+ 800162c: 3714 adds r7, #20
+ 800162e: 46bd mov sp, r7
+ 8001630: f85d 7b04 ldr.w r7, [sp], #4
+ 8001634: 4770 bx lr
+ 8001636: bf00 nop
+ 8001638: 20001bf4 .word 0x20001bf4
+ 800163c: 20001c94 .word 0x20001c94
+
+08001640 :
+/**
+ * @brief FreeRTOS initialization
+ * @param None
+ * @retval None
+ */
+void MX_FREERTOS_Init(void) {
+ 8001640: b5b0 push {r4, r5, r7, lr}
+ 8001642: b0a4 sub sp, #144 @ 0x90
+ 8001644: af00 add r7, sp, #0
+ /* USER CODE BEGIN Init */
+ init_icd(&ICD);
+ 8001646: 4832 ldr r0, [pc, #200] @ (8001710 )
+ 8001648: f000 fa96 bl 8001b78
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadStaticDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 300, defaultTaskBuffer, &defaultTaskControlBlock);
+ 800164c: 4b31 ldr r3, [pc, #196] @ (8001714 )
+ 800164e: f107 0474 add.w r4, r7, #116 @ 0x74
+ 8001652: 461d mov r5, r3
+ 8001654: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 8001656: c40f stmia r4!, {r0, r1, r2, r3}
+ 8001658: e895 0007 ldmia.w r5, {r0, r1, r2}
+ 800165c: e884 0007 stmia.w r4, {r0, r1, r2}
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+ 8001660: f107 0374 add.w r3, r7, #116 @ 0x74
+ 8001664: 2100 movs r1, #0
+ 8001666: 4618 mov r0, r3
+ 8001668: f00a ff15 bl 800c496
+ 800166c: 4603 mov r3, r0
+ 800166e: 4a2a ldr r2, [pc, #168] @ (8001718 )
+ 8001670: 6013 str r3, [r2, #0]
+
+ /* definition and creation of OprosTask */
+ osThreadStaticDef(OprosTask, StartOprosTask, osPriorityNormal, 0, 300, OprosTaskBuffer, &OprosTaskControlBlock);
+ 8001672: 4b2a ldr r3, [pc, #168] @ (800171c )
+ 8001674: f107 0458 add.w r4, r7, #88 @ 0x58
+ 8001678: 461d mov r5, r3
+ 800167a: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 800167c: c40f stmia r4!, {r0, r1, r2, r3}
+ 800167e: e895 0007 ldmia.w r5, {r0, r1, r2}
+ 8001682: e884 0007 stmia.w r4, {r0, r1, r2}
+ OprosTaskHandle = osThreadCreate(osThread(OprosTask), NULL);
+ 8001686: f107 0358 add.w r3, r7, #88 @ 0x58
+ 800168a: 2100 movs r1, #0
+ 800168c: 4618 mov r0, r3
+ 800168e: f00a ff02 bl 800c496
+ 8001692: 4603 mov r3, r0
+ 8001694: 4a22 ldr r2, [pc, #136] @ (8001720 )
+ 8001696: 6013 str r3, [r2, #0]
+
+ /* definition and creation of ControlTask */
+ osThreadStaticDef(ControlTask, StartControlTask, osPriorityIdle, 0, 300, ControlTaskBuffer, &ControlTaskControlBlock);
+ 8001698: 4b22 ldr r3, [pc, #136] @ (8001724 )
+ 800169a: f107 043c add.w r4, r7, #60 @ 0x3c
+ 800169e: 461d mov r5, r3
+ 80016a0: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 80016a2: c40f stmia r4!, {r0, r1, r2, r3}
+ 80016a4: e895 0007 ldmia.w r5, {r0, r1, r2}
+ 80016a8: e884 0007 stmia.w r4, {r0, r1, r2}
+ ControlTaskHandle = osThreadCreate(osThread(ControlTask), NULL);
+ 80016ac: f107 033c add.w r3, r7, #60 @ 0x3c
+ 80016b0: 2100 movs r1, #0
+ 80016b2: 4618 mov r0, r3
+ 80016b4: f00a feef bl 800c496
+ 80016b8: 4603 mov r3, r0
+ 80016ba: 4a1b ldr r2, [pc, #108] @ (8001728 )
+ 80016bc: 6013 str r3, [r2, #0]
+
+ /* definition and creation of LowSpeedTask */
+ osThreadStaticDef(LowSpeedTask, StartLowSpeedTask, osPriorityIdle, 0, 300, LowSpeedTaskBuffer, &LowSpeedTaskControlBlock);
+ 80016be: 4b1b ldr r3, [pc, #108] @ (800172c )
+ 80016c0: f107 0420 add.w r4, r7, #32
+ 80016c4: 461d mov r5, r3
+ 80016c6: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 80016c8: c40f stmia r4!, {r0, r1, r2, r3}
+ 80016ca: e895 0007 ldmia.w r5, {r0, r1, r2}
+ 80016ce: e884 0007 stmia.w r4, {r0, r1, r2}
+ LowSpeedTaskHandle = osThreadCreate(osThread(LowSpeedTask), NULL);
+ 80016d2: f107 0320 add.w r3, r7, #32
+ 80016d6: 2100 movs r1, #0
+ 80016d8: 4618 mov r0, r3
+ 80016da: f00a fedc bl 800c496
+ 80016de: 4603 mov r3, r0
+ 80016e0: 4a13 ldr r2, [pc, #76] @ (8001730 )
+ 80016e2: 6013 str r3, [r2, #0]
+
+ /* definition and creation of ButTask */
+ osThreadStaticDef(ButTask, StartButTask, osPriorityIdle, 0, 300, ButTaskBuffer, &ButTaskControlBlock);
+ 80016e4: 4b13 ldr r3, [pc, #76] @ (8001734 )
+ 80016e6: 1d3c adds r4, r7, #4
+ 80016e8: 461d mov r5, r3
+ 80016ea: cd0f ldmia r5!, {r0, r1, r2, r3}
+ 80016ec: c40f stmia r4!, {r0, r1, r2, r3}
+ 80016ee: e895 0007 ldmia.w r5, {r0, r1, r2}
+ 80016f2: e884 0007 stmia.w r4, {r0, r1, r2}
+ ButTaskHandle = osThreadCreate(osThread(ButTask), NULL);
+ 80016f6: 1d3b adds r3, r7, #4
+ 80016f8: 2100 movs r1, #0
+ 80016fa: 4618 mov r0, r3
+ 80016fc: f00a fecb bl 800c496
+ 8001700: 4603 mov r3, r0
+ 8001702: 4a0d ldr r2, [pc, #52] @ (8001738 )
+ 8001704: 6013 str r3, [r2, #0]
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+}
+ 8001706: bf00 nop
+ 8001708: 3790 adds r7, #144 @ 0x90
+ 800170a: 46bd mov sp, r7
+ 800170c: bdb0 pop {r4, r5, r7, pc}
+ 800170e: bf00 nop
+ 8001710: 20001ea4 .word 0x20001ea4
+ 8001714: 0800e630 .word 0x0800e630
+ 8001718: 20000150 .word 0x20000150
+ 800171c: 0800e658 .word 0x0800e658
+ 8001720: 200006a4 .word 0x200006a4
+ 8001724: 0800e680 .word 0x0800e680
+ 8001728: 20000bf8 .word 0x20000bf8
+ 800172c: 0800e6ac .word 0x0800e6ac
+ 8001730: 2000114c .word 0x2000114c
+ 8001734: 0800e6d0 .word 0x0800e6d0
+ 8001738: 200016a0 .word 0x200016a0
+
+0800173c :
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ 800173c: b580 push {r7, lr}
+ 800173e: b082 sub sp, #8
+ 8001740: af00 add r7, sp, #0
+ 8001742: 6078 str r0, [r7, #4]
+ /* USER CODE BEGIN StartDefaultTask */
+ /* Infinite loop */
+ for (;;)
+ {
+ if(ICD.lv_start == true)
+ 8001744: 4b0e ldr r3, [pc, #56] @ (8001780 )
+ 8001746: f893 3038 ldrb.w r3, [r3, #56] @ 0x38
+ 800174a: 2b00 cmp r3, #0
+ 800174c: d013 beq.n 8001776
+ {
+ rv_lv_control(&ICD,lv_sub_charge);
+ 800174e: 2101 movs r1, #1
+ 8001750: 480b ldr r0, [pc, #44] @ (8001780 )
+ 8001752: f001 fab3 bl 8002cbc
+ rv_lv_control(&ICD,lv_sub_shock);
+ 8001756: 2102 movs r1, #2
+ 8001758: 4809 ldr r0, [pc, #36] @ (8001780 )
+ 800175a: f001 faaf bl 8002cbc
+ rv_lv_control(&ICD,lv_sub_relax);
+ 800175e: 2103 movs r1, #3
+ 8001760: 4807 ldr r0, [pc, #28] @ (8001780 )
+ 8001762: f001 faab bl 8002cbc
+// rv_lv_control(&ICD,lv_sub_free);
+ rv_lv_control(&ICD,lv_sub_discharge);
+ 8001766: 2104 movs r1, #4
+ 8001768: 4805 ldr r0, [pc, #20] @ (8001780 )
+ 800176a: f001 faa7 bl 8002cbc
+ ICD.lv_start = false;
+ 800176e: 4b04 ldr r3, [pc, #16] @ (8001780 )
+ 8001770: 2200 movs r2, #0
+ 8001772: f883 2038 strb.w r2, [r3, #56] @ 0x38
+// rv_lv_control(icd_str,lv_sub_free);
+ }
+ osDelay(5);
+ 8001776: 2005 movs r0, #5
+ 8001778: f00a fed9 bl 800c52e
+ if(ICD.lv_start == true)
+ 800177c: e7e2 b.n 8001744
+ 800177e: bf00 nop
+ 8001780: 20001ea4 .word 0x20001ea4
+
+08001784