编码器工作代码
编码器代码
编码器是将信号或数据通过译制转出、传输和储存的器材设备,一般通过可调节来控制其输出频率、数值,从先前的按钮式旋转到当前的光电点击,无不是将信息转出信号,作为输出或介质使用。
为便于编码器爱好者讨论交流,下面是宏彦小编根据自身总结的经验分享的关于编码器工作原理的代码。
代码只是作为动作原理,仅供参考
<code class="language-cpp">
unsigned int ec11_delay;
unsigned char ec11_num;
void Timer0_Init(void) //1毫秒@24.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x30; //设置定时初始值
TH0 = 0xF8; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0=1;
EA=1;
}
void INT0_Init()
{
IT0=1; //下降沿触发
IE0=0; //清楚中断标志位
EX0=1; //打开外部中断请求
EA=1; //打开中断总开关
}
void INTO_Routine() interrupt 0
{
if(P33) //逆时针
{
ec11_num--;
}
else //顺时针
{
ec11_num++;
}
EX0=0;//关闭外部中断
ec11_delay=1;//激活延时
}
void Timer0_Routinue() interrupt 1 //1ms
{
if(ec11_delay)
{
if(++ec11_delay>=50) //延时50ms
{
IE0=0; //清楚外部中断标志位
EX0=1; //重新使能外部中断
ec11_delay=0; //退出延时
}
}
}
</code>
分享
评论