Board logo

标题: 求脉冲累加初始化程序? [打印本页]

作者: nick-zhi    时间: 2007-5-9 09:18     标题: 求脉冲累加初始化程序?

自己编了一个脉冲累加的程序,但是一直不能记脉冲,请版主发一个初始化的程序。我用的是MC9S12DG128芯片,想做一个16位的脉冲累加。

PS:我要将PT0和PT1级联,输出16位的,脉冲应该从哪个口输入,PTO还是PT1,怎么设置?
作者: strongchen    时间: 2007-5-9 11:58

如果用PACB做脉冲累计器的话,使用应该非常简单,甚至都不用开启定时器。只需用TCTL4中的EDG0B和EDG0A位设置有效沿,再用PBCTL开启PACB和中断即可。外部脉冲从PT0输入。你可以先做一个最简单的project试试。
作者: nick-zhi    时间: 2007-5-9 12:15

谢谢!
那如果要用PACA做脉冲累加器呢,到时我们可能要用两个16位的?
作者: strongchen    时间: 2007-5-9 13:58

PACA用起来就比较麻烦一些,因为它的功能更加强大。它必须与定时器合用,而且即可以对外部脉冲计数,也可以根据外部电平宽度对内部总线频率计数。请现看一下ECT的数据手册吧。
作者: nick-zhi    时间: 2007-5-9 19:06

我看了,但是有些没太弄明白,你能给我发个例程吗?PACA的。谢谢了!
作者: strongchen    时间: 2007-5-10 10:56

你可以参考一下这个初始化程序:

void PACA_init(void)
{
PACTL = 0; /* PACTL: ??=0,PAEN=0,PAMOD=0,PEDGE=0,CLK1=0,CLK0=0,PAOVI=0,PAI=0 */
TSCR1 &= ~0x70; /* TSCR1: TSWAI=0,TSFRZ=0,TFFCA=0 */
DLYCT = 0; /* DLYCT: ??=0,??=0,??=0,??=0,??=0,??=0,DLY1=0,DLY0=0 */
ICSYS &= ~0xF7; /* ICSYS: SH37=0,SH26=0,SH15=0,SH04=0,PACMX=0,BUFEN=0,LATQ=0 */
ICOVW &= ~0x80; /* ICOVW: NOVW7=0 */
TIOS &= ~0x80; /* TIOS: IOS7=0 */
PERT &= ~0x80; /* PERT: PERT7=0 */
PACN32 = 0;
PACTL = 0x52; /* Set up pulse accumulator mode */
/* PACTL: ??=0,PAEN=1,PAMOD=0,PEDGE=1,CLK1=0,CLK0=0,PAOVI=1,PAI=0 */
}





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0