[AVR单片机] 请教光电编码器加串口通信问题

[复制链接]
1143|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

粉丝
快速回复 在线客服 返回列表 返回顶部