Board logo

标题: 关于收发脉冲 [打印本页]

作者: fithkyo0885    时间: 2007-5-17 15:49     标题: 关于收发脉冲

1。外部晶振为16M,按照MC9S12的标准配置,内部总线时钟是否为25M?
2。想要实现测频及产生脉冲,测频:用脉冲累加器记录外部脉冲个数,用定时中断每1S记录累加器的值。产生脉冲:用输出比较,每当比较事件发生,控制引脚电平跳变并使主计数器清零。方法可行吗?有更好的方法吗?
作者: liwei727    时间: 2007-5-18 08:39

1、晶振是16M,如果不使用PLL,那么内部时钟总线为8M,使用PLL后可以提升至25M,也可以超频,超到40M,在高的频率我就没有到过了。不过地球人都说超频后不稳定:)

作者: strongchen    时间: 2007-5-18 09:32

测量脉冲数可以用倒计数模数计数器来进行脉冲累计。产生脉冲可以用PWM模块。
作者: fithkyo0885    时间: 2007-5-18 10:51

谢谢
另外请问以下程序为什么不能进入中断?
interrupt void TimerOverflow(void) {
TFLG2_TOF = 1;
……
}

void main(void)
{
TSCR2_PR = 3;
TSCR2_TOI = 1;
TSCR1_TEN = 1;
TFLG2_TOF = 1;
for (;;)
{
……
}
}

已经在PRM文件中加入VECTOR ADDRESS 0xFFDE TimerOverflow

[此贴子已经被作者于2007-5-18 10:51:23编辑过]


作者: strongchen    时间: 2007-5-18 11:25

中断程序是否放入了非分页地址?
作者: fithkyo0885    时间: 2007-5-18 12:15

我在中断函数上面加了#pragma CODE_SEG __NEAR_SEG NON_BANKED
但问题依然存在
作者: strongchen    时间: 2007-5-18 13:59

把整个project打包贴出来看看吧。
作者: fithkyo0885    时间: 2007-5-18 14:45

http://bbs.chinaecnet.com/uploadImages/int_test.rar
作者: strongchen    时间: 2007-5-18 15:30

在for循环前面加一个EnableInterrupts;指令就可以啦。
作者: fithkyo0885    时间: 2007-5-18 16:06

呵呵,相当不好意思,谢谢啊
作者: fithkyo0885    时间: 2007-5-19 21:18

除了用VECTOR ADDRESS 的方法设置中断向量,好象还可以在函数声明的时候设置,请问具体格式是怎样的?两者是一样的效果吗??

[此贴子已经被作者于2007-5-19 21:18:43编辑过]






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