打印
[AVR单片机]

请教光电编码器加串口通信问题

[复制链接]
883|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paco_cai|  楼主 | 2015-5-18 19:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机型号ATMEGA48,使用334线的光电编码器对直流电机测速,结果通过串口传送至PC,但得到的结果与实际不符,差不多是正常范围的两倍,程序段:
ISR(INT0_vect)//编码器输出接外部中断
{
count_1++;//脉冲计数
}


ISR(TIMER1_OVF_vect)//M法测速
{
TCNT1=0XABA0;//溢出时间0.5s
count_val=count_1;count_1=0;
speed=(float)count_val*0.36;//M法计算公式
uart_transmit0(speed);//串口传送
}
通过串口调试助手观察从单片机发过来的数据,粗略估计差不多是实际转速的两倍。。求解答!

相关帖子

沙发
huangxz| | 2015-5-18 22:25 | 只看该作者
给楼主提个建议,
(1)在中断或者整个AVR里面不要使用浮点运算。否则结果不可预料
(2)串口发送因为需要等待,也不要放在中断里面。

使用特权

评论回复
板凳
梦逍遥| | 2015-5-23 19:50 | 只看该作者
请问你的计数准确吗?

使用特权

评论回复
地板
laoxu| | 2015-5-25 05:35 | 只看该作者
假如你打开了 上沿、下沿中断使能,对上下沿均计数,输出则为334线光电编码器的 2倍(2细分)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

62

帖子

1

粉丝