智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10230|回复: 26
打印 上一主题 下一主题

K60讨论:LPT脉冲捕捉问题代码

  [复制链接]

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
跳转到指定楼层
1#
发表于 2012-2-17 12:28:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void lptmr_pulse_counter(char pin_select)
{
  uint32 a;         //该值用来存放脉冲计数值
  uint32 compare_value=1000;   //比较值,脉冲达到这个值时重置
  
  LPTMR0_CSR=0x00;   //模式初始化
  LPTMR0_PSR=0x00;
  LPTMR0_CMR=0x00;   

if(pin_select==LPTMR_ALT1)   //PTA19
  {
    SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK; //Turn on PORTA clock
    PORTA_PCR19=PORT_PCR_MUX(0x6); //Use ALT6 on PTA19
  }
  else if(pin_select==LPTMR_ALT2)  //PTC5
  {
    SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; //Turn on PORTC clock
    PORTC_PCR5=PORT_PCR_MUX(0x4); //Use ALT4 on PTC5
  }

LPTMR0_PSR=LPTMR_PSR_PCS(0x01)|LPTMR_PSR_PBYP_MASK;             //Use LDO but bypass glitch filter

LPTMR0_CMR=LPTMR_CMR_COMPARE(compare_value);                          //Set compare value
  
LPTMR0_CSR=LPTMR_CSR_TPS(pin_select)    //Set LPT to use the pin selected
            |LPTMR_CSR_TMS_MASK                    // put in pulse count mode
            |LPTMR_CSR_TPP_MASK                     //on falling edge (default)
            |~LPTMR_CSR_TFC_MASK                  //counter register is reset  on overflow
            |~LPTMR_CSR_TIE_MASK                   //interrupt is disabled
            |LPTMR_CSR_TEN_MASK;                   //Turn on LPT
  
while((LPTMR0_CSR&LPTMR_CSR_TCF_MASK)==0)     //表示此刻没有脉冲输入,故可以读取脉冲数
      {                                                        
            a=LPTMR0_CNR;        //猜想PTMR0_CNR无法读取,导致等待
       }                                      //可能原因:模式未真正开启
  
}

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
2#
 楼主| 发表于 2012-2-17 12:30:46 | 只看该作者
以上代码模仿FSL的例程。
出现的问题:无法读取LPTMR0_CNR值
                  导致程序停留在此处,无法进行其他代码的执行。
回复 支持 反对

使用道具 举报

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
3#
 楼主| 发表于 2012-2-17 20:04:21 | 只看该作者
问题已解决,但想说这东西有些不稳定
回复 支持 反对

使用道具 举报

21

主题

69

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1897
QQ
威望
1049
贡献
432
兑换币
242
注册时间
2011-3-16
在线时间
208 小时
4#
发表于 2012-2-18 15:59:41 | 只看该作者
楼主 又没有AD的历程 求指点呀 我纠结好些时候了
回复 支持 反对

使用道具 举报

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
5#
 楼主| 发表于 2012-2-18 23:14:38 | 只看该作者
而而非无人 发表于 2012-2-18 15:59
楼主 又没有AD的历程 求指点呀 我纠结好些时候了

FSL官方的例程,IAR  arm 6.1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
6#
 楼主| 发表于 2012-2-18 23:15:40 | 只看该作者
好好研究FSL例程和datasheet,很管用
回复 支持 反对

使用道具 举报

15

主题

277

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6479

论坛元老奖章活跃会员奖章

QQ
威望
1282
贡献
4791
兑换币
495
注册时间
2011-10-10
在线时间
203 小时
7#
发表于 2012-4-3 11:39:55 | 只看该作者
天涯小极莫 发表于 2012-2-17 20:04
问题已解决,但想说这东西有些不稳定

是什么问题啊楼主
回复 支持 反对

使用道具 举报

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
8#
 楼主| 发表于 2012-4-5 18:55:23 | 只看该作者
这是调试通过的代码,液晶每隔1s,显示下速度(脉冲数)
回复 支持 反对

使用道具 举报

14

主题

141

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2809
威望
1451
贡献
826
兑换币
314
注册时间
2011-3-18
在线时间
266 小时
9#
 楼主| 发表于 2012-4-5 18:56:37 | 只看该作者


刚才,没传成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

5

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1002
QQ
威望
574
贡献
238
兑换币
2
注册时间
2011-7-31
在线时间
95 小时
10#
发表于 2012-4-14 14:54:31 | 只看该作者
我们的计数好像比实际的大很多,怎么回事

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 09:08 , Processed in 0.096579 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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