Чт янв 16, 2020 17:12:42
/* Configure the main PLL */
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
Вт янв 21, 2020 19:46:14
void EncoderScan(void)
{
next_state = PIND & 0x05; // Берем текущее значение
// И сравниваем со старым
// Смотря в какую сторону оно поменялось -- увеличиваем
// Или уменьшаем счетный регистр
switch(prev_state)
{
case 4:
{
if(next_state == 5) up_state++;
if(next_state == 0) down_state++;
break;
}
case 0:
{
if(next_state == 4) up_state++;
if(next_state == 1) down_state++;
break;
}
case 1:
{
if(next_state == 0) up_state++;
if(next_state == 5) down_state++;
break;
}
case 5:
{
if(next_state == 1) up_state++;
if(next_state == 4) down_state++;
break;
}
}
prev_state = next_state; // Записываем новое значение
// Предыдущего состояния
if (up_state >= 4) // 1 раз за 4 импульса изменяем состояние передачи
{
sw++;
infoPage++; // Передача +
up_state = 0;
Light_timer=Light_Time;
}
if (down_state >= 4)
{
sw--;
infoPage--;
// Передача -
down_state = 0;
Light_timer=Light_Time;
}
}