智能车制作

标题: 求助 LPTMR编码器计数值为零 怎么解决 [打印本页]

作者: LGC    时间: 2017-1-11 14:37
标题: 求助 LPTMR编码器计数值为零 怎么解决
使用LPTMR进行编码器测速,寄存器的计数值显示为零,测速函数是写在中断里的,到底是软件的问题还是硬件的问题?
  1. <div>void  main(void)
  2. {
  3.          DisableInterrupts;  
  4.         #define INT_COUNT  0xFFFF          //LPT 产生中断的计数次数 即溢出值//写于主函数第一行
  5.     lptmr_timing_ms(1000);
  6.         set_vector_handler(LPTMR_VECTORn,LPTMR_IRQHandler);
  7.         FTM_PWM_init(FTM2, FTM_CH1, 1000, 50);                       //FTM模块产生PWM,用 FTM0_CH4 ,即 PTB18 ,频率为 100,占空比 50%
  8.         lptmr_pulse_init(LPT0_ALT1, INT_COUNT, LPT_Rising);         //初始化脉冲计数器,用LPT0_ALT1,即PTA19输入,每隔INT_COUNT产生中断(需要开中断才能产生中断),上升沿
  9.      EnableInterrupts;  
  10.         while(1)
  11.        {
  12.            
  13.    }
  14. }

  15. void LPTMR_IRQHandler()
  16. {
  17.     count1 = lptmr_pulse_get(LPT0_ALT1,LPT_Rising);</div><div>lptmr_pulse_clean(LPT0_ALT1,LPT_Rising);                                    //清空脉冲计数器计算值
  18.    LPTMR_Flag_Clear();
  19. }</div>
复制代码


作者: MY三木    时间: 2017-1-11 15:07
先给寄存器写值,再读值。手册上讲的。
作者: LGC    时间: 2017-1-11 15:22
MY三木 发表于 2017-1-11 15:07
先给寄存器写值,再读值。手册上讲的。

能发一份手册过来吗 1171798900@qq.com 谢谢
还有这个给寄存器写值具体是什么意思?

作者: luckner    时间: 2017-1-11 18:27
LGC 发表于 2017-1-11 15:22
能发一份手册过来吗  谢谢
还有这个给寄存器写值具体是什么意思?

http://www.nxp.com/assets/docume ... 60P120M100SF2RM.pdf
另外建议你先打个断点看看进没进中断





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2