Код
void TIM7_IRQHandler(void)
{
switch (enc_state)
{
case 0:
GPIOF->BSRR = GPIO_Pin_9; //1
GPIOF->BRR = GPIO_Pin_10; //0
break;
case 1:
GPIOF->BSRR = GPIO_Pin_9; //1
GPIOF->BSRR = GPIO_Pin_10; //1
break;
case 2:
GPIOF->BRR = GPIO_Pin_9; //0
GPIOF->BSRR = GPIO_Pin_10; //1
break;
case 3:
GPIOF->BRR = GPIO_Pin_9; //0
GPIOF->BRR = GPIO_Pin_10; //0
break;
}
if(enc_state == 3)
enc_state = 0;
else
enc_state++;
TIM7->SR = 0;
}
{
switch (enc_state)
{
case 0:
GPIOF->BSRR = GPIO_Pin_9; //1
GPIOF->BRR = GPIO_Pin_10; //0
break;
case 1:
GPIOF->BSRR = GPIO_Pin_9; //1
GPIOF->BSRR = GPIO_Pin_10; //1
break;
case 2:
GPIOF->BRR = GPIO_Pin_9; //0
GPIOF->BSRR = GPIO_Pin_10; //1
break;
case 3:
GPIOF->BRR = GPIO_Pin_9; //0
GPIOF->BRR = GPIO_Pin_10; //0
break;
}
if(enc_state == 3)
enc_state = 0;
else
enc_state++;
TIM7->SR = 0;
}
По идее должно работать как на картинке, сигналы сдвинуты на 90 градусов, но на скопе я вижу сигналы в одной фазе. Это скоп так показывает или у меня ошибка?