智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4302|回复: 17
打印 上一主题 下一主题

野火库 LPT计数 有点问题一直突破不了

  [复制链接]

22

主题

134

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1646

优秀会员奖章活跃会员奖章

威望
810
贡献
544
兑换币
306
注册时间
2011-12-25
在线时间
146 小时
跳转到指定楼层
1#
发表于 2013-4-1 14:26:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题,用野火的库进行函数操作,在测速时选用了野火例程上的那种方法:
lptmr_counter_init(LPT0_ALT2,INT_COUNT,2,LPT_Rising);                                            //初始化脉冲计数器,用LPT0_ALT2,即PTC5输入,
      //每隔INT_COUNT产生中断,延时2个时钟滤波,上升沿触发

我的INT_COUNT设定为10,在LPT中断中对jishu++,
然后再在PIT中断里读取jishu,并清零
定时时间设定的是5ms,读取结果还算准确,后来细想这种方法有点不妥,相当于每十个脉冲就要进一次LPT中断,这样会不会很耗费资源,既然LPT能计算出我要比较的那个INT_COUNT,那么可不可以让LPT直接计数,然后再在PIT中断中读取清零呢,今天细看了一下相关内容,没有找到很好的方法,在野火库里找到了这些:
#define LPTMR0_CSR                               LPTMR_CSR_REG(LPTMR0_BASE_PTR)
#define LPTMR0_PSR                               LPTMR_PSR_REG(LPTMR0_BASE_PTR)
#define LPTMR0_CMR                               LPTMR_CMR_REG(LPTMR0_BASE_PTR)
#define LPTMR0_CNR                               LPTMR_CNR_REG(LPTMR0_BASE_PTR)

#define LPTMR0_BASE_PTR                          ((LPTMR_MemMapPtr)0x40040000u)
我以为是K60将采集的脉冲数放到了内部地址0x40040000u中了,用J-link调试时发现确实有变化,却不稳定,看不太明白,我应该怎么将这个数读出呢。
之后在论坛里看到有人发了官方例程,他是将 a_cur=LPTMR0_CNR;  这样读出来的是不是脉冲数呢,求解各位指点小菜一下。

9

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
717
威望
354
贡献
183
兑换币
183
注册时间
2012-11-17
在线时间
90 小时
毕业学校
石家庄学院
18#
发表于 2013-4-16 21:36:35 | 只看该作者
能具体说一下你实验后,具体输出什么吗?比如说:LPT 产生一次中断啦: 100.等
回复 支持 反对

使用道具 举报

68

主题

718

帖子

0

精华

跨届大侠

火云邪神

Rank: 10Rank: 10Rank: 10

积分
6644

论坛元老奖章

QQ
威望
3359
贡献
2001
兑换币
765
注册时间
2011-8-24
在线时间
642 小时
17#
发表于 2013-4-14 10:45:39 | 只看该作者
Y__man 发表于 2013-4-13 20:23
你的野火教程是哪个啊?能不能分享一份啊 952641879@qq.com  拜谢

到处都是啊,你搜一下就行了 在论坛里
回复 支持 反对

使用道具 举报

6

主题

77

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1210
威望
599
贡献
333
兑换币
298
注册时间
2013-1-11
在线时间
139 小时
毕业学校
东华大学
16#
发表于 2013-4-13 20:23:24 | 只看该作者
☆_。寒泉..+ 发表于 2013-4-2 13:46
你可以看看野火的教程啊,上面写的很清楚,开关中断是enable_irq(x);x是中断向量号-16

你的野火教程是哪个啊?能不能分享一份啊 952641879@qq.com  拜谢
回复 支持 反对

使用道具 举报

6

主题

77

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1210
威望
599
贡献
333
兑换币
298
注册时间
2013-1-11
在线时间
139 小时
毕业学校
东华大学
15#
发表于 2013-4-9 10:34:33 | 只看该作者
野火 发表于 2013-4-9 10:18
你用示波器测测 PWM 有没有输出

火哥 可以出图的
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
14#
发表于 2013-4-9 10:18:43 | 只看该作者
Y__man 发表于 2013-4-9 10:12
LPT 脉冲计数中断实验 这个例程   原例程输不出来数 把if( LPT_INT_count > 0 )这句去掉 能输出来数 但累 ...

你用示波器测测 PWM 有没有输出

回复 支持 反对

使用道具 举报

6

主题

77

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1210
威望
599
贡献
333
兑换币
298
注册时间
2013-1-11
在线时间
139 小时
毕业学校
东华大学
13#
发表于 2013-4-9 10:12:58 | 只看该作者
野火 发表于 2013-4-9 10:04
LPTMR ,是直接用我们的例程?没经过修改的?

LPT 脉冲计数中断实验 这个例程   原例程输不出来数 把if( LPT_INT_count > 0 )这句去掉 能输出来数 但累加的脉冲是0个例程就是这个  PTA8和PTC5短接了

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
12#
发表于 2013-4-9 10:04:49 | 只看该作者
Y__man 发表于 2013-4-8 20:00
火哥  求助  按照你教程里的操作 LPT 为什么最后出来的脉冲值是0个那?我PTC5和PTA8短接了啊

LPTMR ,是直接用我们的例程?没经过修改的?

回复 支持 反对

使用道具 举报

6

主题

77

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1210
威望
599
贡献
333
兑换币
298
注册时间
2013-1-11
在线时间
139 小时
毕业学校
东华大学
11#
发表于 2013-4-8 20:00:02 | 只看该作者
野火 发表于 2013-4-3 08:14
PIT0的中断向量号 -16
PIT0 的中断向量号是 84 ,即 84 - 16



火哥  求助  按照你教程里的操作 LPT 为什么最后出来的脉冲值是0个那?我PTC5和PTA8短接了啊


37. #define INT_COUNT 100 //LPT 产生中断的计数次数
38. void main(void)
39. {
40. u16 count;
41.
42. DisableInterrupts; //禁止总中断
43.
44. FTM_PWM_init(FTM1,CH0,100,50);
45. //FTM 模块产生PWM,用 FTM1_CH0 ,即 PTA8 ,频率为 100
46.
47. lptmr_counter_init(LPT0_ALT2,INT_COUNT,2,LPT_Rising);
48. //初始化脉冲计数器,用LPT0_ALT2,即PTC5 输入,
49. //每隔INT_COUNT 产生中断,延时2 个时钟滤波,上升沿触发
50. EnableInterrupts; //开总中断
51.
52. while(1)
53. {
54. if( LPT_INT_count > 0 )
55. {
56. count = LPTMR0_CNR; //保存脉冲计数器计算值
57. lptmr_counter_clean();
58. //清空脉冲计数器计算值(马上清空,这样才能保证计数值准确)
59. printf("LPT 产生一次中断啦:%d\n",LPT_INT_count*INT_COUNT + count);
60. //打印计数值
61. LPT_INT_count = 0; //清空LPT 中断次数
62. }
63. }
回复 支持 反对

使用道具 举报

14

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
647
威望
393
贡献
154
兑换币
178
注册时间
2012-9-26
在线时间
50 小时
毕业学校
县一中
10#
发表于 2013-4-7 17:06:04 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 09:28 , Processed in 0.298170 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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