首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助](续)MC9S12XDP512 STOP MODE

我按照你的说法在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再试一下。

祝好运!
返回列表