智能车制作

标题: 关于脉冲累加器中的PACNT [打印本页]

作者: 民大新手    时间: 2010-7-23 16:29
标题: 关于脉冲累加器中的PACNT
昨天刚看完输出比较,今天来看脉冲累加器,自己写程序试了一下,却发现 S12 系列的书中所写的脉冲累加器计数寄存器如:PACN32,PACN10还有普遍的PACNx(X=0~3),在程序编译时都说不存在,只看到一个近似的PACNT,却不知道怎么用。各位能帮忙解释一下若要用与PACNx功能相同的寄存器,应该怎么写啊?还有这个PACNT又该怎么用呢?多谢各位啊!
作者: 民大新手    时间: 2010-7-23 20:24
我用的芯片是S12XS的。
作者: ty23lovety23    时间: 2010-10-24 21:01
我也各种不懂,但是PACNT10是PACN1和PACN0联级之后的和PACNT类似的计数寄存器,PACN32同理
作者: s614857575    时间: 2011-3-23 14:54

作者: a086711    时间: 2011-3-24 11:44
因为xs128中只有脉冲累加器A,取消了脉冲累加器b和模数递减器,增加了PIT
作者: kimzheng    时间: 2011-3-24 13:46
PACNT是核心计数器16位的 xs128只有1个可以用也就是  PT7口
DG128有两个     至于你想要看多么详细 那还是看官方的XS128资料吧
作者: ll575838999    时间: 2011-4-1 13:06
因为你看的资料是DG128的,而XS128的芯片没有该功能,只有一个PA脉冲累加器
作者: 云中水    时间: 2011-4-8 20:25
XS和DG不一样了,只有脉冲累加器A
作者: 云中水    时间: 2011-4-8 20:26
XS128中的脉冲累加器和DG128的很不一样。相对DG128来说,XS128的脉冲累加器大大简化了,其中只有三个寄存器需要设置:PACTL、PAFLG、PACNT。
        16位脉冲累加器PACT与IOC7共用一个引脚。顾名思义,脉冲累加器就是对有效边沿(上升沿或下降沿)进行计数,然后把计数的值保存在寄存器PACNT中。寄存器PACTL是16位脉冲累加器的核心,几乎所有的设置都是在这个寄存器中。
        接下来解剖一下这个核心寄存器PACTL:

PAEN:脉冲累加器允许位,置1,则工作。置0,则禁止。PAEN与TEN无关,定时器TEN禁止时,脉冲累加器仍可以工作。
PAMOD:工作方式选择位。置1,为门控时间累加器方式。置0,为事件计数器方式。
        门控时间累加器方式:输入引脚上的有效电平会触发脉冲累加器对64分频后的时钟进行计数。
        事件计数器方式:脉冲累加器对引脚上的每个有效边沿计数。引脚上每产生一个有效边沿,脉冲累加器计数器的值就会加1。
PEDGE:边沿跳变控制位。它的功能和脉冲累加器的工作方式有关。如下表:

(0  0):事件计数器方式,下降沿有效
(0  1):事件计数器方式,上升沿有效
(1       0):门控时间累加器方式,IOC7引脚上的高电平使64分频后的总线时钟输入到脉冲累加器中。
(1       1):门控时间累加器方式,IOC7引脚上的低电平使64分频后的总线时钟输入到脉冲累加器中。
CLK0~CLK1:时钟选择位。其功能如下表:

(0       0):使用TIM中分频后的定时器时钟作为计数时钟
(0       1):选PACLK作为计数时钟
(1       0):选PACLK/256作为计数时钟
(2       1):选PACLK/65536作为计数时钟
其中PACLK是对总线时钟进行64分频后的时钟。
PAVOI:脉冲累加器溢出中断允许位。置1,则允许中断产生。置0,则禁止中断。
PAI:脉冲累加器输入中断允许位。置1,则允许中断产生。置0,则禁止中断。

标志寄存器PAFLG:

PAVOF:当脉冲累加器溢出时,此位置1。如果有PAVOI=1时,则产生中断。向该位写1,可以清除标志位。
PAIF:当在IOC7引脚上检测到选定的边沿跳变,此位置1。在事件计数方式下,事件沿跳变会使该位置位。在门控时间累加器方式下,IOC7引脚上门控信号的最后一个下降沿使该位置位。对其写1,可以清除标志位。

计数寄存器PACNT:
作者: wuxingcfchen    时间: 2011-4-17 19:33
芯片型号选错了吧
作者: 诗雨依然    时间: 2011-4-23 17:10

作者: 455576750    时间: 2011-5-8 16:16
其实原理差不多,就是保存最终计数值到16位的PACNT中,设置初值时给PACNT初值就可以了,例如PACNT=0x00;然后就是注意相关的PACTL的具体设置
作者: freezing189    时间: 2011-5-10 21:06
懂了  谢谢
作者: iloveautomation    时间: 2011-5-19 17:48

作者: excellentlizhen    时间: 2011-9-20 15:52
hao
作者: jayce    时间: 2011-10-12 19:27
7楼,说的有道理~
作者: 海鹏    时间: 2011-11-5 13:16
学习了

作者: 我是北丐    时间: 2012-2-14 21:57

作者: xinhuaH    时间: 2012-2-15 15:12
我只知道PACNT是用来计脉冲数的,直接读取就可,读完后记得清零,即:PACNT=0X0000

作者: lidreamer    时间: 2012-3-22 11:44
云中水 发表于 2011-4-8 20:26
XS128中的脉冲累加器和DG128的很不一样。相对DG128来说,XS128的脉冲累加器大大简化了,其中只有三个寄存器 ...

学习了..
.....

作者: 与人狼    时间: 2012-4-3 16:31
嗯嗯

作者: 晨景的风    时间: 2012-7-12 03:11

作者: 涛韬    时间: 2012-7-19 21:52
测速的接到PT0口,能解决测速问题?

作者: 早安,徐威    时间: 2012-11-28 16:42
楼主现在搞清楚没有?
作者: zhifu    时间: 2014-11-16 17:00
云中水 发表于 2011-4-8 20:26
XS128中的脉冲累加器和DG128的很不一样。相对DG128来说,XS128的脉冲累加器大大简化了,其中只有三个寄存器 ...

回答的好专业!!!
作者: 空有一人    时间: 2015-1-18 21:27
学习了




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