[求助](续)MC9S12XDP512 STOP MODE
 
- UID
- 341189
- 性别
- 男
|
我按照你的说法在freescale的MC9S12XDP512的demo板上试了一下。没有发现异常。即STOP之后PIT就停了。以下是测试程序,供参考:
void SetPIT(void)
{
PITCFLMT&=0x7F; //disable PIT first
PITMUX = 0x00; //use macro timer 0
while (PITTF) PITTF=0x0F; //clear all exist overflow flag
PITMTLD0 = 0;
PITLD0 = 5000;
PITINTE =0x01; //enable the PIT channel 0 interrupt
PITCE = 0x01; //enable the PIT channel 0
PITCFLMT|=0x80; //enable PIT
}
void StopTest(void)
{
__asm {
ANDCC #$7F;
STOP;
};
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void PIT_Channel0()
{
while (PITTF) PITTF=0x0F; //clear all exist overflow flag
printf("* ");
}
在main()中先调用SetPIT(),再调用StopTest(),则中断程序不会执行。如果不调用StopTest(),则中断程序会执行,不断打印出'*'号。
估计问题不在STOP/PIT,可检查一下其它方面。建议先将XGATE disable再试一下。
祝好运! |
|
|
|
|
|