Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) {
- //увеличу Pulse на 320 для канала 1. Тогда канал будет переключаться на желаемой частоте
- uint32_t pulse, new_pulse, tim_ARR;
- int32_t pulse_dif;
- tim_ARR = htim->Instance->ARR;
- /* TIMx_CH1 toggling with frequency = 50KHz */
- if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
- pulse = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
- /* Set the Capture Compare Register value */
- /*Рассчитаю значение pulse в зависимости от Period - что бы переполнение пульса было синхронно с переполнение таймера*/
- new_pulse = pulse + CH1_FREQ;
- pulse_dif = new_pulse - tim_ARR;
- if (pulse_dif > 0) {
- //!!!значение Pulse увеличивать нельзя можно, т.к. оно уже стало больше значения Period
- new_pulse = pulse_dif;}
- __HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, new_pulse); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement