OpenEdv-开源电子网

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

电机m法测速 测量 输入捕获的脉冲数就是速度值 为什么呢

[复制链接]

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
发表于 2017-7-26 16:46:12 | 显示全部楼层 |阅读模式
5金钱
void Encoder_Init_TIM4(void)
{
    RCC->APB1ENR|=1<<2;     //TIM4&#202;±&#214;&#211;&#202;&#185;&#196;&#220;
    RCC->APB2ENR|=1<<3;    //&#202;&#185;&#196;&#220ORTb&#202;±&#214;&#211;
    GPIOB->CRL&=0X00FFFFFF;//PB6 PB7
    GPIOB->CRL|=0X44000000;//&#184;&#161;&#191;&#213;&#202;&#228;&#200;&#235;
    /* °&#209;&#182;¨&#202;±&#198;÷&#179;&#245;&#202;&#188;&#187;&#175;&#206;&#170;±à&#194;&#235;&#198;÷&#196;&#163;&#202;&#189; */
    TIM4->SC = 0x0;//&#212;¤·&#214;&#198;&#181;&#198;÷
    TIM4->ARR = ENCODER_TIM_PERIOD-1;//&#201;è&#182;¨&#188;&#198;&#202;&#253;&#198;÷×&#212;&#182;&#175;&#214;&#216;×°&#214;&#181;
  TIM4->CCMR1 |= 1<<0;          //&#202;&#228;&#200;&#235;&#196;&#163;&#202;&#189;&#163;&#172;IC1FP1&#211;&#179;&#201;&#228;&#181;&#189;TI1&#201;&#207;
  TIM4->CCMR1 |= 1<<8;          //&#202;&#228;&#200;&#235;&#196;&#163;&#202;&#189;&#163;&#172;IC2FP2&#211;&#179;&#201;&#228;&#181;&#189;TI2&#201;&#207;
  TIM4->CCER |= 0<<1;           //IC1&#178;&#187;·&#180;&#207;ò
  TIM4->CCER |= 0<<5;           //IC2&#178;&#187;·&#180;&#207;ò
    TIM4->SMCR |= 3<<0;              //SMS='011' &#203;ù&#211;&#208;&#181;&#196;&#202;&#228;&#200;&#235;&#190;ù&#212;&#218;&#201;&#207;&#201;&#253;&#209;&#216;&#186;&#205;&#207;&#194;&#189;&#181;&#209;&#216;&#211;&#208;&#208;§
    TIM4->CR1 |= 0x01;    //CEN=1&#163;&#172;&#202;&#185;&#196;&#220;&#182;¨&#202;±&#198;÷
}
/**************************************************************************
&#186;&#175;&#202;&#253;&#185;&#166;&#196;&#220;&#163;&#186;&#181;&#165;&#206;&#187;&#202;±&#188;&#228;&#182;&#193;&#200;&#161;±à&#194;&#235;&#198;÷&#188;&#198;&#202;&#253;
&#200;&#235;&#191;&#218;&#178;&#206;&#202;&#253;&#163;&#186;&#182;¨&#202;±&#198;÷
·&#181;&#187;&#216;  &#214;&#181;&#163;&#186;&#203;&#217;&#182;&#200;&#214;&#181;
**************************************************************************/
int Read_Encoder(u8 TIMX)
{
    int Encoder_TIM;   
     Encoder_TIM= (short)TIM4 -> CNT;  TIM4 -> CNT=0;  
   
    return Encoder_TIM;
}

1 看到一些测速程序 TIM2->CNT就是速度值  
2  TIM2->CNT这个不是脉冲数吧   
3 是要关闭TIM4再读TIM2->CNT吧还是定时时间到了直接读  然后寄存器设为0
4 有没有什么好的方法捕获输出的脉冲数参考一下
感谢解答 拜托了

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

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-7-26 17:05:35 | 显示全部楼层
速度有 英里/小时  公里/小时  海里/小时  都可以表示速度  所以特定时间内的脉冲数 也可以作为速度,只是没有转换过去,具体的转换还要看编码器一圈的是多少值的
回复

使用道具 举报

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
 楼主| 发表于 2017-7-26 17:44:23 | 显示全部楼层
wxjhby 发表于 2017-7-26 17:05
速度有 英里/小时  公里/小时  海里/小时  都可以表示速度  所以特定时间内的脉冲数 也可以作为速度,只是 ...

谢谢您  不是单位时间内的脉冲就是速度   还要转换吗
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11954
金钱
11954
注册时间
2013-3-8
在线时间
1273 小时
发表于 2017-7-26 19:30:47 | 显示全部楼层
asngj 发表于 2017-7-26 17:44
谢谢您  不是单位时间内的脉冲就是速度   还要转换吗

你1s内测到1000个脉冲,结果只走了1米。难到速度是1000米/秒?中间有个转换关系的。
回复

使用道具 举报

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
 楼主| 发表于 2017-7-27 13:32:00 | 显示全部楼层
求助啊
回复

使用道具 举报

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
 楼主| 发表于 2017-7-28 12:48:29 | 显示全部楼层
有人吗 拜托讲讲
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 14:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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