Board logo

标题: s12xep中一个关于PIT定时中断的一个BUG [打印本页]

作者: zhengyj    时间: 2009-6-7 15:49     标题: s12xep中一个关于PIT定时中断的一个BUG

PIT模块中用一个相同的8位计数器作中断定时时,PIT1中断定时若是PIT0的倍数,则PIT1的中断不会发生!但PIT0中断定时是PIT1的倍数时,两个中断都能发生!
我PIT模块的配置如下
void SetupPIT(void)
{
PITCE = 0x03; //enable PIT 0 and 1
PITMUX = 0x00; //MUX to micro couter0
PITMTLD0 = 99; //8 bits micro counter0
PITLD0 =3999; //PIT0 10ms
PITLD1=799; //PIT1 2ms there will be a problem when PIT1 times PIT0,
//but no problem when PIT0 times PIT1
PITCFLMT_PFLMT= 0x01; //load micro counter0
PITFLT = 0x03; //load counter0 and 1
PITINTE = 0x03; //enable INT
PITCFLMT_PITE = 1; //enable PIT module
}
我想请问这是我配置上有问题还是这个8位计数器和16位计数器的接口时本身存在的硬件BUG,谢谢!

作者: killsister    时间: 2010-6-18 22:11

好像PIT0清中断时会把PIT1的中断标志位清掉
作者: njufoolfish    时间: 2011-4-8 00:41

2# killsister

我在dp512中发现,
用TFLG1_CnF = 1会把整个TFLG1清0,
而用TFLG1 = TFLG1_CnF_MASK就没问题




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