智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4379|回复: 3
打印 上一主题 下一主题

k60编码器测速模块,速度很慢是可以看到测得的速度,稍微快点LPTM中数据寄存器就是0了

[复制链接]

21

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
威望
1065
贡献
631
兑换币
272
注册时间
2011-10-29
在线时间
204 小时
跳转到指定楼层
1#
发表于 2012-5-15 19:28:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
k60编码器测速模块,速度很慢是可以看到测得的速度,稍微快点LPTM中数据寄存器就是0了,主要是溢出,换时钟啥的都不行?高手指教下是什么原因啊?在PIT中断里测速,不多说了上程序
void PIT_init(){
         SIM_SCGC6|=SIM_SCGC6_PIT_MASK;
         PIT_MCR&=~PIT_MCR_MDIS_MASK;//定时器时钟使能
         PIT_MCR|=PIT_MCR_FRZ_MASK;//在调试模式下停止
         //PIT_MCR=0x00;
         PIT_LDVAL(0)=480;//周期设置
         PIT_TCTRL(0)|=PIT_TCTRL_TIE_MASK;//关中断
         enable_irq(68);
}
//LPTM初始化
  void LPTM_init(){
unsigned int cmp_value=65535;
          
           SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;
           SIM_SCGC5|=SIM_SCGC5_LPTIMER_MASK;//开启LPTM模块时钟
           LPTMR0_CSR=0x00;  //清空寄存器
           LPTMR0_PSR=0x00;
           LPTMR0_CMR=0x00;
           SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; //设置PTC5为脉冲累加
           PORTC_PCR5=PORT_PCR_MUX(0x4); // PTC5       
           PORTC_PCR5|=PORT_PCR_PE_MASK;
           PORTC_PCR5|=(PORT_PCR_PS_MASK);//下拉电阻配置
            LPTMR0_PSR=LPTMR_PSR_PRESCALE(0x01);
                   LPTMR0_PSR|=LPTMR_PSR_PBYP_MASK; //LPO clock1KHZ的时钟 , 预分频绕道              
           LPTMR0_CMR=LPTMR_CMR_COMPARE(cmp_value);
           LPTMR0_CSR|=LPTMR_CSR_TPP_MASK;            //设置上升沿触发计数
           LPTMR0_CSR = LPTMR_CSR_TPS(0x2);//选择输入通道2 C5
           LPTMR0_CSR |=LPTMR_CSR_TMS_MASK;//设置为脉冲计数模式
           LPTMR0_CSR&=~LPTMR_CSR_TFC_MASK;//自由计数模式
          LPTMR0_CSR&=~LPTMR_CSR_TIE_MASK;//不使能中断
          LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;             //开启模块

  }
void pit0_isr()
{   
                   GetFreq=(int16)LPTMR0_CNR;
                LPTMR0_CSR&=(~LPTMR_CSR_TEN_MASK);       //Reset LPTMR0
                        LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;
  PIT_TCTRL(0)|=PIT_TFLG_TIF_MASK;//清中断标志位
}
int main(void)
{
        int counter = 0;//运行计数器
            DisableInterrupts ;
            System_init();
                     PIT_init();
                     LPTM_init();       
        EnableInterrupts ;//开总中断
        PIT_TCTRL(0)|=PIT_TCTRL_TEN_MASK;//开中断
                                             enable_irq(68);

        for(;;) {       
                       
                           counter++;
                        
                   }

        return 0;
}

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
2#
发表于 2012-5-15 21:26:07 | 只看该作者
溢出的话,lpt开中断,中断里,变量加1就搞定啦。

就是拓展计数位数
回复 支持 反对

使用道具 举报

21

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
威望
1065
贡献
631
兑换币
272
注册时间
2011-10-29
在线时间
204 小时
3#
 楼主| 发表于 2012-5-16 10:02:57 | 只看该作者
野火 发表于 2012-5-15 21:26
溢出的话,lpt开中断,中断里,变量加1就搞定啦。

就是拓展计数位数

帅哥,帮人帮到底啊,给点程序看看,不知道什么变量加1 啊?

回复 支持 反对

使用道具 举报

12

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
858
威望
459
贡献
237
兑换币
281
注册时间
2014-5-13
在线时间
81 小时
毕业学校
西安邮电大学
4#
发表于 2015-3-8 20:36:46 | 只看该作者
野火 发表于 2012-5-15 21:26
溢出的话,lpt开中断,中断里,变量加1就搞定啦。

就是拓展计数位数

有K60 的ftm 模块可以么? 是用输入捕捉模块?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 15:54 , Processed in 0.067453 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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