Advertisement
Guest User

HAL_TIM_OC_DelayElapsedCallback

a guest
Mar 21st, 2022
20
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)        {
  2. //увеличу Pulse на 320 для канала 1. Тогда канал будет переключаться на желаемой частоте
  3.   uint32_t pulse, new_pulse, tim_ARR;
  4.   int32_t pulse_dif;
  5.   tim_ARR = htim->Instance->ARR;
  6.   /* TIMx_CH1 toggling with frequency = 50KHz */
  7.   if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)     {
  8.     pulse = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
  9.     /* Set the Capture Compare Register value */
  10.     /*Рассчитаю значение pulse в зависимости от Period - что бы переполнение пульса было синхронно с переполнение таймера*/
  11.     new_pulse = pulse + CH1_FREQ;
  12.     pulse_dif = new_pulse - tim_ARR;
  13.     if (pulse_dif > 0) {
  14.     //!!!значение Pulse увеличивать нельзя можно, т.к. оно уже стало больше значения Period
  15.         new_pulse = pulse_dif;}
  16.     __HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, new_pulse);      }
Advertisement
RAW Paste Data Copied
Advertisement