





//событие "раз в 100 мс"
#define HTIM1_EVENT_100ms 100
volatile int32_t htim1_event_100ms_count = HTIM1_EVENT_100ms; //счетчик тиков таймера для полуения события раз в 100 мс
volatile uint8_t event_100ms_flag = 0; //флаг события - изначально событие не установленно 
//генерируем событие на 100 мс
htim1_event_100ms_count--; //уменьшаем счетчик для события
if(htim1_event_100ms_count==0)
{//счетчик достиг конуа - генерим событие
event_100ms_flag = 1; //установим флаг события
htim1_event_100ms_count = HTIM1_EVENT_100ms; //установим счетчик в изначальное состояние
if(dir == Angle_Up)
{//вращение в увеличение угла
if((angle+= 0.5) <= 180)
{//приращение угла не выйдет за пределеы сервопривода
angle+= 0.5; //увеличиваем угол
TIM2->CCR1 = 544 + (10.311*angle); //изменяем ШИМ для сервопривода
}
else
dir = Angle_Down; //достигли угла в 180 градусов - будем двигаться назад - в уменьшение угла
} | Стартуем! |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Пройти еще раз |
| Пройти еще раз |
| Пройти еще раз |