最近用p89lpc931开发一个小东西,出现如下现象,百思不解,怀疑是不是芯片设计时的bug.
void main(void)
{
IO_init();
int_init();
led_s=0; //led_s熄灭
DIVM=0X01; //不要这一句,现象正常,led_s不会熄灭
EX1=1; //外部中断1允许
while(1){
_nop_();
}
在while循环中就是一个等待外部中断,如在中断程序中让发光2极管点亮,则退出中断后,略略等一会(时间好像也是不确定的)发光2极管会熄灭,好像执行了led_s=0;按程序是不会执行的,(看门狗没有开);如把led_s=0改为led_s=1,则在中断程序如让发光2极管熄灭,则退出中断后略略等一会发光2极管又会点亮,但如果去掉DIVM=0X01,则程序正常,但如果去掉这一句,产品的应用范围又受到了限制。这个问题是不是飞利浦公司在设计时的一个bug呢。联想到周立功公司已经不再推广这个系列了。
这个问题放在这里可能没有多少朋友愿意了解和回答,作为一个痕迹吧。 |