编码器测试成功 频率20K以下测试没有问题
void INT0_Isr(void) interrupt 0
{
if(ROTA==1&&AP==0) //编码器A上升沿
{
if(ROTB) //编码器B为高电平 计数增加
{ pos++; }
else
{ pos--; } //编码器B为低电平 计数减少
AP = ROTA;
}
if(ROTA==0&&AP==1) //编码器A下降沿
{
if(ROTB)
{ pos--; } //编码器B为高电平 计数减少
else
{ pos++; } //编码器B为低电平 计数增加
AP = ROTA;
}
}
void INT1_Isr(void) interrupt 2
{if(ROTB==1&&BP==0) //编码器B上升沿
{
if(ROTA)
{ pos--;} //编码器A为高电平 计数减少
else
{ pos++; } //编码器A为低电平 计数增加
BP = ROTB;
}
if(ROTB==0&&BP==1) //编码器B下降沿
{
if(ROTA)
{ pos++;} //编码器A为低电平 计数增加
else
{ pos--;} //编码器A为高电平 计数减少
BP = ROTB;
}
}
void Ext_Init(void)
{
IT0 = 0; //INT0(P3.2)上升沿+下降沿中断
EX0 = 1; //使能INT0中断
IT1 = 0; //INT1(P3.3)上升沿+下降沿中断
EX1 = 1; //使能INT1中断
}
补充一下,功能为4倍频AB相编码器计数。 反显字晃眼,放弃。 wulin 发表于 2026-6-18 16:38
反显字晃眼,放弃。
页面背景白
程序背景为黑
这样看确实有影响 狂热主宰 发表于 2026-6-18 17:06
页面背景白
程序背景为黑
这样看确实有影响
VS code直接贴出来就这样{:yiwen:}
页:
[1]