智能车制作

标题: 关于脉冲计数的,有几个问题想请教大家 [打印本页]

作者: pang123hui    时间: 2010-5-3 15:23
标题: 关于脉冲计数的,有几个问题想请教大家
我在xs128中,对脉冲计数是这样初始化的


  1. void TIM_Init(void)//初始化脉冲累加器A
  2. {
  3.       
  4.     PACTL=0X50;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
  5.     PACNT = 0x00;    //累加器置初值
  6.     TCTL3=0xc0;//c-输入捕捉7任何沿有效,            
  7.     TCTL4=0xc0;//40表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿      
  8.     TIE  =0x00;//每一位对应相应通道中断允许,0表示禁止中断
  9.     TIOS =0x00;//每一位对应通道的: 0输入捕捉,1输出比较
  10.     TCTL3_EDG7x=1;//c-输入捕捉7任何沿有效,
  11. }

复制代码


而有些人说只要

  1. PACTL=0X50;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
  2. PACNT = 0x00;    //累加器置初值
复制代码

这样就可以了,不需要再设置输入捕捉相关寄存器

请问那种正确呢??


还有一个问题:

//PAFLG_PAOVF=1;
//PAFLG_PAIF =1;

第一个应该是脉冲累加计数溢出标志位吧

也就是初始化时置位,而在PIT定时中断读取脉冲数时,先检查该位是否为1,这样使用对吗?

还有第二个PAFLG_PAIF 不知道有什么用,请指教,谢谢
作者: lim1t    时间: 2010-5-3 15:48
用第二种就行了,可以把读PACNT的指令放在PIT中断里。

就不用它本身的累加记数了,原则上是中断越少越好。
作者: 王怀玉    时间: 2010-5-3 17:40
回复 1# pang123hui


    第二种就行啊
那两个标志位最好在初始化的时候写1清零
作者: pang123hui    时间: 2010-5-3 21:27
顶一下
作者: stl    时间: 2010-5-4 11:20
我也顶一下
作者: 向往智能    时间: 2010-5-4 23:29
不懂
作者: fukai555    时间: 2010-5-8 15:41
下面一种正确
作者: 草原    时间: 2010-5-8 18:12
TCTL4=0xc0,这句话可以去掉,与PA累加器设置没有联系的
作者: youz    时间: 2010-6-9 11:59
mark
作者: 程辉程辉    时间: 2010-8-14 16:39
第二种好啊
作者: 一剑卡卡    时间: 2011-4-12 12:16
实践证明,第二个是对的!!!!
作者: Jarylove    时间: 2011-4-20 22:12
路过
作者: chengqing    时间: 2011-4-22 17:06

作者: 诗雨依然    时间: 2011-4-23 16:38

作者: gaowenzhao123    时间: 2011-10-11 20:00
顶一下
作者: 与人狼    时间: 2012-4-3 09:27

作者: oooooo    时间: 2012-4-24 14:00
budong




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