智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1518|回复: 4
打印 上一主题 下一主题

求助!!LPTMR编码器测速 计数为零

[复制链接]

26

主题

121

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1462
威望
691
贡献
329
兑换币
391
注册时间
2016-11-2
在线时间
221 小时
毕业学校
山东蓝翔高级技工学校
跳转到指定楼层
1#
发表于 2017-1-11 13:43:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用LPTMR进行编码器测速,寄存器的计数值显示为零,测速函数是写在中断里的,到底是软件的问题还是硬件的问题?
  1. #include "include.h"


  2. /*************************
  3. 设置系统的全局变量
  4. *************************/
  5. extern  u8  LPT_INT_count ;                    //LPT 脉冲计数器
  6. extern u8 TIME0flag_5ms   ;                    //PTI0 5ms标志位
  7. extern u8 TIME0flag_10ms  ;                    //PTI0 10ms标志位
  8. extern u8 TIME0flag_15ms  ;                    //PTI0 15ms标志位
  9. extern u8 TIME0flag_20ms  ;                    //PTI0 20ms标志位
  10. extern u8 TIME0flag_80ms ;                     //PTI0 80ms标志位   

  11. s16 count = 0,RingtSpeedC=0,LeftSpeedC=0 ;
  12. s16  Atemp[6];

  13. u8 SendData[15]={0xff,0xff,0};

  14. extern u8 LPT_INT_count;

  15. #define LIN_COUT 100

  16. void main()
  17. {
  18.    u8 i;
  19.     DisableInterrupts;                             //禁止总中断
  20.   //自行添加代码
  21.     uart_init(UART0,115200);
  22.    
  23. //    FTM_PWM_init(FTM0 , CH0, 8000,0);       //电机占空比设置初始化    占空比 = duty /(MOD +1 ) ;FTM_CnV_REG(FTMx[ftmn], ch) = cv;
  24. //    FTM_PWM_init(FTM0 , CH1, 8000,0);  
  25.     FTM_PWM_init(FTM0 , CH2, 8000,0);       //电机占空比设置初始化    占空比 = duty /(MOD +1 ) ;FTM_CnV_REG(FTMx[ftmn], ch) = cv;
  26.     FTM_PWM_init(FTM0 , CH3, 8000,0);
  27.    
  28.     lptmr_counter_init(LPT0_ALT2, LIN_COUT, 2, LPT_Rising)  ;   //初始化脉冲计数器 ,PTC5输入捕获脚,LIN_cout =100,预处理为2,上升沿捕获
  29.     pit_init_ms(PIT0, 5);                            //初始化PIT0,定时时间为: 5ms
  30.    
  31.     gpio_init (PORTA , 16, GPO,HIGH);              ///LED闪烁
  32.    
  33.     EnableInterrupts;                                    //开总中断
  34.    
  35.     while(1)
  36.     {
  37.       
  38.       
  39.       /*********************
  40.       10ms程序执行代码段
  41.       *********************/
  42.       if(TIME0flag_10ms == 1)
  43.       {
  44.         TIME0flag_10ms = 0 ;
  45.         count = LPTMR0_CNR;                                                     //保存脉冲计数器计算值
  46.         lptmr_counter_clean();                                                  //清空脉冲计数器计算值(马上清空,这样才能保证计数值准确)
  47.         count = LPT_INT_count * LIN_COUT +  count;                              //间隔10ms的脉冲次数
  48.         
  49.         Atemp[0]=LPT_INT_count;
  50.         Atemp[1]=count;
  51.         
  52.         LPT_INT_count = 0;                                                      //清空LPT中断次数                             
  53.                  
  54.          for(i=0;i<6;i++)
  55.          {
  56.           SendData[i*2+2]=(u8)(Atemp[i]>>8);
  57.           SendData[i*2+3]=(u8)Atemp[i];      
  58.          }
  59.       }  
  60.          
  61.        uart_sendN (UART0, SendData, 15);
  62.          
  63. //         FTM_PWM_Duty(FTM0 , CH0,0);
  64. //         FTM_PWM_Duty(FTM0 , CH1,20);
  65.          FTM_PWM_Duty(FTM0 , CH2,0);
  66.          FTM_PWM_Duty(FTM0 , CH3,20);

  67.       delayms(50);
  68.       PTA16_OUT=~PTA16_OUT;
  69.     }
  70. }
复制代码

回复

使用道具 举报

2

主题

16

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1439
威望
728
贡献
471
兑换币
477
注册时间
2015-8-5
在线时间
120 小时
2#
发表于 2017-1-11 14:40:38 | 只看该作者
我遇到过,当时是时钟问题
回复 支持 反对

使用道具 举报

26

主题

121

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1462
威望
691
贡献
329
兑换币
391
注册时间
2016-11-2
在线时间
221 小时
毕业学校
山东蓝翔高级技工学校
3#
 楼主| 发表于 2017-1-11 14:43:57 | 只看该作者
Ark 发表于 2017-1-11 14:40
我遇到过,当时是时钟问题

是哪个时钟出了问题?
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1439
威望
728
贡献
471
兑换币
477
注册时间
2015-8-5
在线时间
120 小时
4#
发表于 2017-1-12 14:09:09 | 只看该作者
LGC 发表于 2017-1-11 14:43
是哪个时钟出了问题?

MCG模块里面对PLL的初始化,用的库函数和晶振频率不符,我当时是这个问题
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
QQ
威望
188
贡献
108
兑换币
115
注册时间
2014-12-27
在线时间
26 小时
毕业学校
宿城一中
5#
发表于 2017-4-16 18:25:07 | 只看该作者
楼主 最后是怎么解决的
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-20 11:33 , Processed in 0.041333 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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