]> mj.ucw.cz Git - home-hw.git/blobdiff - Src/main.c
More I2C debugging
[home-hw.git] / Src / main.c
index de59f78369fc054eb53e7c83b568cc3ba3b56503..7b5b75d0e3921e514183d9feb8bd79c6cdc78492 100644 (file)
@@ -45,6 +45,8 @@
 #include "usb.h"
 #include "app.h"
 
+#include <string.h>
+
 /* USER CODE END Includes */
 
 /* Private variables ---------------------------------------------------------*/
@@ -121,23 +123,53 @@ int main(void)
   MX_USB_PCD_Init();
   MX_TIM4_Init();
   /* USER CODE BEGIN 2 */
-  display_init();
+  //display_init();
   usb_start(&usb);
+  bmp_init();
+
+  LL_TIM_EnableCounter(TIM4);
+  LL_TIM_EnableIT_UPDATE(TIM4);
+  LL_TIM_GenerateEvent_UPDATE(TIM4);
+
+#if 0
+  {
+    byte buf[5] = { 0xff, 0xff, 10, 0xff, 0xff };
+    display_buffer(buf);
+  }
+#endif
 
   /* USER CODE END 2 */
 
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
-  int cnt = 0;
   while (1)
   {
-    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);
-    cnt++;
+    if (rx_packet_state == 1 && !tx_packet_state)
+      {
+    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;
+
+       // display_buffer(rx_packet);
+       tx_packet_state = 1;
+       tx_packet[0] = adjusted_temp >> 8;
+       tx_packet[1] = adjusted_temp & 0xff;
+       tx_packet[2] = adjusted_press >> 8;
+       tx_packet[3] = adjusted_press & 0xff;
+       usb_ep_send(&usb, 0x82, tx_packet, 8);
+       rx_packet_state = 0;
+       usb_ep_receive(&usb, 0x01, rx_packet, 64);
+      }
+
+    bmp_step();
+
+    // debug_printf("Counter = %d\n", cnt);
+    // display_counter(cnt);
+
+    __WFI();
 
   /* USER CODE END WHILE */