智能车制作

标题: xs128脉冲累加器PT7 初始化程序 (测速) [打印本页]

作者: weng439    时间: 2010-6-30 15:03
标题: xs128脉冲累加器PT7 初始化程序 (测速)
本帖最后由 weng439 于 2010-6-30 15:23 编辑

下面是测试的 程序:

TCNT =0x00;
    TSCR1=0x80;//时钟允许
    TSCR2=0x04;//div by 16
   
    PACTL=0x30;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
    TCTL3=0xc0;//c-输入捕捉7任何沿有效,            
    TCTL4=0x03;//0表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿      
    TIE  =0x00;//每一位对应相应通道中断允许,0表示禁止中断
    TIOS =0x00;//每一位对应通道的: 0输入捕捉,1输出比较
    TCTL3_EDG7x=1;//c-输入捕捉7任何沿有效,
    TCTL4_EDG0x=1;

可是在主函数中调用PACNT 这个变量的时候 一直是 0。

硬件上用的编码器 用示波器测过输出端口的确是有比较清楚的脉冲波形。

请高手赐教!!


作者: cat888    时间: 2010-6-30 15:03
以前发的找不到了,再发一遍:(我也是抄的,谁的忘了)
  1. void PAInit(void)
  2. {
  3. DisableInterrupts; //禁止中断

  4. TSCR1_TFFCA=1; //快速清除flag:PAOVF PAIF

  5. /* DATASHEET P472
  6. * To operate the 16-bit pulse accumulator independently of input capture or output compare 7 and 0
  7. * respectively the user must set the corresponding bits IOSx = 1, OMx = 0 and OLx = 0. OC7M7 in the
  8. * OC7M register must also be cleared.
  9. */
  10. TIOS_IOS7=1; //单独使用16位脉冲累加器
  11. OC7M_OC7M7=0;; //注意此时必须令IOS7=1,OC7M7=0,OM7=0,OL7=0
  12. TCTL1_OM7=0;
  13. TCTL1_OL7=0;

  14. PACTL_PAMOD=0; //事件计数方式
  15. //PACTL_PEDGE=1; //PT7引脚上的出现上升沿时脉冲累加器计数器加1
  16. //PACTL_PAOVI=1; //允许脉冲累加器产生溢出时引发中断
  17. //PACTL_PAI=1; //允许PT7引脚上出现上升沿时引发中断
  18. PACTL_PAEN=1; //启动脉冲累加器A
  19. PACNT = 0x0000;

  20. }
复制代码

作者: weng439    时间: 2010-6-30 15:20
自己顶
作者: weng439    时间: 2010-6-30 15:21
自己顶   
作者: 573377313    时间: 2010-6-30 22:45
xs128好像没有脉冲累加器。
作者: weng439    时间: 2010-7-1 09:16
有的吧  有一个 PT7
作者: weng439    时间: 2010-7-1 09:16
高手来帮帮忙吧
作者: weng439    时间: 2010-7-1 10:03
测过波形正常的,为什么就是测不到PACNT 呢一直是0 、???????
作者: weng439    时间: 2010-7-1 15:13
终于找出原因了,发现原来不是程序的原因 ,原来是 因为输入脉冲幅值不够,怪不得检测不到 ,用了一个反相器就行了,好不容易啊。谢谢了
作者: weng439    时间: 2010-7-1 15:14
回复 2# cat888


    谢谢啦!!
作者: xiaofei558008    时间: 2010-7-6 14:03
datasheet 里面有
作者: 程辉程辉    时间: 2010-8-14 16:21
现在还需要吗?
作者: 大林哈    时间: 2011-4-9 20:36
谢谢
作者: hychwlq    时间: 2011-4-12 00:24
是幅值不够,加2k上拉电阻就好了!
作者: cfuwa    时间: 2011-4-16 22:59
谢谢
作者: fat68265233    时间: 2011-4-18 10:49
学习了
作者: zb0002010    时间: 2011-4-18 18:33
受教了!
作者: 诗雨依然    时间: 2011-4-23 17:04

作者: linyujin    时间: 2011-4-24 11:27
两句话, PACTL = 0x50;      //Âö³å¼ÆÊý ÉÏÉýÑØ ½ûÖ¹Òç³öºÍÂö³åÖжÏ

  // Pulse Accumulators Count Registers (PACNT)

  PACNT = 0x0000;  //Çå0¼ÆÊýÆ÷
就搞定啦!
作者: cheerhh    时间: 2011-4-24 18:57
MARK.谢谢
作者: cheerhh    时间: 2011-4-24 18:57
MARK.谢谢
作者: cheerhh    时间: 2011-4-24 23:47
MARK,标记~
作者: cheerhh    时间: 2011-4-24 23:48
MARK,标记~
作者: xiaomo    时间: 2011-5-4 19:38
学习了,呵呵
作者: wf395962475    时间: 2011-5-5 09:49
顶!!!!!!!
作者: xiaomo    时间: 2011-5-5 21:37
学习了
作者: 断翅at雄鹰    时间: 2012-3-16 17:36
呵呵  还加反相器啊
作者: csycaiyan    时间: 2012-3-25 16:05
先顶再研究
作者: 颠倒梦想    时间: 2012-3-28 16:03
hychwlq 发表于 2011-4-12 00:24
是幅值不够,加2k上拉电阻就好了!

MC9S12X128的PT口的内部上拉电阻是多少欧
作者: 0726silence    时间: 2012-4-24 20:57
正在看
作者: ilyht    时间: 2012-5-21 16:16
weng439 发表于 2010-7-1 15:13
终于找出原因了,发现原来不是程序的原因 ,原来是 因为输入脉冲幅值不够,怪不得检测不到 ,用了一个反相器 ...

请问一下,输入脉冲幅值多少才合适
作者: 涛韬    时间: 2012-7-19 21:51
测速的接到PT0口,能解决测速问题?

作者: 落雪    时间: 2012-7-20 20:24
顶    求大神。。。。

作者: qq群    时间: 2012-12-13 16:13
亲,有没有完整的程序呢?最近在调脉冲累加器,老是不进中断去了,一进去还出不来:'(:'(:'(
作者: xihaliangyu    时间: 2013-1-1 20:21
qq群 发表于 2012-12-13 16:13
亲,有没有完整的程序呢?最近在调脉冲累加器,老是不进中断去了,一进去还出不来

我的总是零,而且进不去中断,你的中断问题解决了吗?
作者: 穆旦阿斗    时间: 2013-1-19 16:01
weng439 发表于 2010-7-1 09:16
有的吧  有一个 PT7

我的问题也解决了   就只有一个PT7是脉冲累加
作者: 张路军    时间: 2013-3-7 20:23
断翅at雄鹰 发表于 2012-3-16 17:36
呵呵  还加反相器啊

那应该怎么办啊?

作者: 下一页、Angel__    时间: 2013-3-26 15:28
weng439 发表于 2010-7-1 15:13
终于找出原因了,发现原来不是程序的原因 ,原来是 因为输入脉冲幅值不够,怪不得检测不到 ,用了一个反相器 ...

跟你一样的问题?怎么解决
作者: Iiti    时间: 2013-4-2 16:37

作者: 没轮子的车    时间: 2013-7-11 06:50
weng439 发表于 2010-7-1 15:13
终于找出原因了,发现原来不是程序的原因 ,原来是 因为输入脉冲幅值不够,怪不得检测不到 ,用了一个反相器 ...

上拉电阻一样可行
作者: 未小未    时间: 2013-7-11 17:23
我的PACNT也一直是0,怎么测是不是输入幅值的问题?
作者: 几重烟雨    时间: 2013-11-29 16:53
求教:void TIM_Init(void)//脉冲累计初始化        PT7口输入
{
    PACTL=0x52;//下降沿触发     2:1溢出中断允许位开启
    PACNT=0x0000;//清0     可实时读取PACNT的值
}
然后一直进不去中断,且输入幅度得大于5.3v?
求解啊??????????
作者: yty    时间: 2014-2-6 11:07
weng439 发表于 2010-7-1 15:13
终于找出原因了,发现原来不是程序的原因 ,原来是 因为输入脉冲幅值不够,怪不得检测不到 ,用了一个反相器 ...

有一点不明白 ,PT7口是用来输入时钟还是其他用处呢?
作者: 武狂狼    时间: 2014-5-6 23:38

作者: wy941016    时间: 2015-6-9 17:17
请问你用PT7采集脉冲搞定了吗??能教教我程序怎么写吗?





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