[AVR单片机] VB编写的电机速度曲线毛刺很多

[复制链接]
 楼主| paco_cai 发表于 2014-11-27 16:23 | 显示全部楼层 |阅读模式
ATMEGA48单片机,光电编码器。采用输入捕捉和定时器溢出,每0.1S检查输入捕捉到的脉冲数,再计算出转速,结果就像这样子。请问有大神做过类似的嘛?能分析一些原因?
  1. ISR(TIMER1_CAPT_vect)
  2. {
  3.         s++;//脉冲记录
  4. }

  5. ISR(TIMER1_OVF_vect)
  6. {
  7.         TCNT1=0XCF2C;//溢出时间0.1S
  8.         temp=s;s=0;//转移并清零
  9.         speed=((float)temp/2)*3;//公式
  10.         uart_transmit0(speed);//发送
  11. }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ccxlslr 发表于 2014-11-27 17:18 | 显示全部楼层
本帖最后由 ccxlslr 于 2014-11-27 17:20 编辑

精度问题。在0.1S时间内,有可能有80脉冲,也有可能79。何况你的0.1S并不一定准。还有通信,也有缓存时间。  当然也有可能是电机速度本来就不稳定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

62

帖子

1

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