]> mj.ucw.cz Git - home-hw.git/commitdiff
We have a working timer interrupt!
authorMartin Mares <mj@ucw.cz>
Mon, 25 Jun 2018 22:41:24 +0000 (00:41 +0200)
committerMartin Mares <mj@ucw.cz>
Mon, 25 Jun 2018 22:41:24 +0000 (00:41 +0200)
Src/main.c
Src/stm32f1xx_it.c

index de59f78369fc054eb53e7c83b568cc3ba3b56503..57349e4521dd5e5ef16e148492eb2daa2b8bc153 100644 (file)
@@ -124,6 +124,10 @@ int main(void)
   display_init();
   usb_start(&usb);
 
+  LL_TIM_EnableCounter(TIM4);
+  LL_TIM_EnableIT_UPDATE(TIM4);
+  LL_TIM_GenerateEvent_UPDATE(TIM4);
+
   /* USER CODE END 2 */
 
   /* Infinite loop */
@@ -133,10 +137,7 @@ int main(void)
   {
     debug_printf("Counter = %d\n", cnt);
     display_counter(cnt);
-    LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);
-    LL_mDelay(500);
-    LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);
-    LL_mDelay(500);
+    LL_mDelay(1000);
     cnt++;
 
   /* USER CODE END WHILE */
index a02f0014754618139d7787c71c644e43a2cbee98..67ae5fe53330627f035d347aeaa3b70df8749ca9 100644 (file)
@@ -36,6 +36,8 @@
 #include "stm32f1xx_it.h"
 
 /* USER CODE BEGIN 0 */
+#include "util.h"
+#include "app.h"
 
 /* USER CODE END 0 */
 
@@ -226,6 +228,16 @@ void USB_LP_CAN1_RX0_IRQHandler(void)
 void TIM4_IRQHandler(void)
 {
   /* USER CODE BEGIN TIM4_IRQn 0 */
+  if (LL_TIM_IsActiveFlag_UPDATE(TIM4))
+    {
+      static byte led_state;
+      if (led_state)
+       LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin);
+      else
+       LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin);
+      led_state ^= 1;
+      LL_TIM_ClearFlag_UPDATE(TIM4);
+    }
 
   /* USER CODE END TIM4_IRQn 0 */
   /* USER CODE BEGIN TIM4_IRQn 1 */