TelenkovDmitry 3 недель назад
Родитель
Сommit
980bbdc7b8
2 измененных файлов с 33 добавлено и 4 удалено
  1. 0 0
      project/ewarm/settings/tuber.wsdt
  2. 33 4
      robot/modules/sc60224/encoder.cpp

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
project/ewarm/settings/tuber.wsdt


+ 33 - 4
robot/modules/sc60224/encoder.cpp

@@ -4,6 +4,11 @@
 
 TIM_HandleTypeDef htim1;
 
+#define TEST_BUF_LEN    256
+uint32_t test_index;
+uint32_t test_buf[TEST_BUF_LEN];
+
+
 //
 void init_encoder(void)
 {
@@ -22,7 +27,7 @@ void init_encoder(void)
     htim1.Init.RepetitionCounter = 0;
     htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; //TIM_AUTORELOAD_PRELOAD_ENABLE;
     
-    sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
+    sConfig.EncoderMode = TIM_ENCODERMODE_TI1; //TIM_ENCODERMODE_TI12;
     
     sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
     sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
@@ -42,11 +47,19 @@ void init_encoder(void)
     
     HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig);
     
-    HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 6, 0);
-    HAL_NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
+    //HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 6, 0);
+    //HAL_NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
+    
+    //__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_UPDATE);
+    
+    HAL_NVIC_SetPriority(TIM1_CC_IRQn, 6, 0);
+    HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
     
     //HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);
-    HAL_TIM_Encoder_Start_IT(&htim1, TIM_CHANNEL_ALL);
+    //HAL_TIM_Encoder_Start_IT(&htim1, TIM_CHANNEL_ALL);
+    HAL_TIM_Encoder_Start_IT(&htim1, TIM_CHANNEL_1);
+    
+    
 }
 
 //
@@ -85,6 +98,22 @@ void init_gpio_encoder(void)
 #endif    
 }
 
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+    static uint32_t cnt = 0;
+    
+    cnt++;
+}
+
+void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
+{
+    //test_buf[test_index++] = (uint16_t)TIM1->CNT;
+    test_buf[test_index++] = (uint16_t)TIM1->CCR1;
+    
+    if (test_index == TEST_BUF_LEN)
+        test_index = 0;
+}
+
 
 extern "C" {
 void TIM1_BRK_UP_TRG_COM_IRQHandler(void)

Некоторые файлы не были показаны из-за большого количества измененных файлов