温水煮派蒙 发表于 2026-6-18 15:41:46

编码器测试成功 频率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中断
}

温水煮派蒙 发表于 2026-6-18 15:44:08

补充一下,功能为4倍频AB相编码器计数。

wulin 发表于 2026-6-18 16:38:08

反显字晃眼,放弃。

狂热主宰 发表于 2026-6-18 17:06:46

wulin 发表于 2026-6-18 16:38
反显字晃眼,放弃。

页面背景白
程序背景为黑
这样看确实有影响

温水煮派蒙 发表于 2026-6-18 17:19:59

狂热主宰 发表于 2026-6-18 17:06
页面背景白
程序背景为黑
这样看确实有影响

VS code直接贴出来就这样{:yiwen:}
页: [1]
查看完整版本: 编码器测试成功 频率20K以下测试没有问题