OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7710|回复: 5

如何将捕获的高电平时间转换为舵机的度数?

[复制链接]

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-5-13
在线时间
0 小时
发表于 2014-7-14 20:54:43 | 显示全部楼层 |阅读模式
5金钱
        以升降舵为例,用定时器编写的捕获程序,捕获futaba遥控器的升降舵输出高电平,升降舵拨到左中右依次为1099us、1519us、1939us,(但是多次采集的时候可能有1-2us的误差),我用ELE=(temp-1519)*90/(1939-1099),temp是采集的升降舵高电平时间,以此公式计算升降舵度数,但是一直有误差,而且还挺大,因为temp有几us的误差。
       哪位大神以前做过,给点意见,这个数据如何处理才能较好地将采集的高电平时间转换为舵机的度数。Thank you very much!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-5-13
在线时间
0 小时
 楼主| 发表于 2014-7-14 20:58:11 | 显示全部楼层
哦,这个地方敲错了,是ELE=(temp-1519)*90/((1939-1099)/2)。其中1099、1519、1939分别为测得的三个极值,有是有几us的误差,影响挺大的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-14 22:48:30 | 显示全部楼层
将输入捕获的计数频率提高,比如计数器频率是10Mhz,那么精度最高时0.1us。
这样就算有几个误差,也是0.几个us,应该还可以接受吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-5-13
在线时间
0 小时
 楼主| 发表于 2014-7-15 09:26:22 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
感觉应该可行,我试试,谢谢啊
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-5-13
在线时间
0 小时
 楼主| 发表于 2014-7-15 11:55:16 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
TIM2_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数  arr=0xffff=65535,psc=72-1

if(TIM2CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿  
{
temp=TIM2CH1_CAPTURE_STA&0X3F;
temp*=65536;//溢出时间总和
temp+=TIM2CH1_CAPTURE_VAL;//得到总的高电平时间
printf("HIGH1:%d us\r\n",temp);//打印总的高点平时间        temp是多少就输出是多少us????????????why?
TIM2CH1_CAPTURE_STA=0;//开启下一次捕获
}  


为什么temp是多少就代表多少us呢?这是怎么计算的?
好像周期T=(1+arr)*(1+psc)/72M啊,这两者有关系吗?

是不是可以理解成这样?
设置psc=6-1;
频率为72M/6=12M,那么每个temp就表示1/12us了,对不对?

求原子哥指教,谢谢了!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-15 23:17:39 | 显示全部楼层
回复【5楼】lieren007:
---------------------------------
因为计数频率是1Mhz,所以一个脉冲就是1us.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 07:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表