
if(htim->Instance == TIM1)
{//прерывание из таймера TIM1 - настроен на обновление раз в 1 мс
if(periodupdate!=0)
periodupdate--;
else
{
periodupdate=UPDATE_DRAW_PERIOD_TIM1;
to_redraw=1;
}
//timeout sleep
if(count_tim1_timeout_sleep!=0)
count_tim1_timeout_sleep--;
else
{
count_tim1_timeout_sleep=TIMEOUT_SLEEP_TIM1;
signal_timeout_sleep=1;
} 
update imu
if(count_tim1_update_imu!=0)
count_tim1_update_imu--;
else
{
count_tim1_update_imu=UPDATE_IMU_TIM1;
to_update_imu=1;
} 
btn_bounce_tim1--;
if(btn_bounce_tim1==0)
{//update 100 ms
//keys
if(HAL_GPIO_ReadPin(BUTENC_GPIO_Port,BUTENC_Pin)==GPIO_PIN_RESET)
state_btn=0;
else
state_btn=1;
if(state_btn_old==0 && state_btn==1)
{
btn_try_poll=1;
count_tim1_timeout_sleep=TIMEOUT_SLEEP_TIM1;
}
if(state_btn_old==1 && state_btn==0)
{
btn_try_push=1;
count_tim1_timeout_sleep=TIMEOUT_SLEEP_TIM1;
}
state_btn_old=state_btn; 
//encoder roller
int32_t lev_enc = 0;
state_enc = HAL_LPTIM_ReadCounter(&hlptim1);
if(state_enc > state_enc_old + lev_enc)
{
enc_try_inc=1;
count_tim1_timeout_sleep=TIMEOUT_SLEEP_TIM1;
}
if(state_enc < state_enc_old - lev_enc)
{
enc_try_dec=1;
count_tim1_timeout_sleep=TIMEOUT_SLEEP_TIM1;
}
state_enc_old = state_enc;
btn_bounce_tim1=BTN_BOUNCE_PERIOD_TIM1;
} 
void draw_analog_watch(enum STATE state, enum STATE state_old)
{
if(state != state_old)
{
to_redraw =1;
}
if(to_redraw!=1)
return;
to_redraw=0;
ssd1331_clear_screen(BLACK);
draw_watch(state, state_old);
SSD1331_UpdateScreen();//обновление экрана из внутреннего буфера
} 
void draw_settime_hours(enum STATE state, enum STATE state_old)
{
if(state != state_old)
{
to_redraw =1;
}
if(to_redraw!=1)
return;
to_redraw=0;
ssd1331_clear_screen(BLACK);
ssd1331_display_string(0, 0, (uint8_t *)"Set Time", FONT_1206, PINK);
if(field==1)
{
ssd1331_draw_3216char(8,16, (current_time.hours/10)+0x30, WHITE);
ssd1331_draw_3216char(24,16, (current_time.hours%10)+0x30, WHITE);
} 


| Стартуем! |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Дальше |
| Проверить |
| Узнать результат |
| Пройти еще раз |
| Пройти еще раз |
| Пройти еще раз |