ATMEGA48,增量型光电编码器,LCD1602显示,我的思路是:
ISR(INT0_vect) //编码器的一相接入外部中断,通过记录上升沿脉冲来决定电机的状况
{ // 400个脉冲为旋转一周
s++; //s存放脉冲数
if(s==1){TIMSK1=0X01;}//有脉冲后开定时器计时
if(s>=400) {TIMSK1=0X00;s=0;device();}//旋转一周后关定时器并处理数据
}
void device(void)
{
temp=TCNT1;//得到的定时器值送至寄存器
speed=15625/temp*60;//1M晶振,64分频,单位是转/分钟
}
得不到满意的效果,请教大神提出建议。
|