|
最近接手一个项目,下面是用KEIL3编写的一小部分程序:
1、TIMER1:
void TIMER0_MIC_CHECK() interrupt 1
{
power++;
TH0=0x4f;TL0=0x00;
switch_check();//开关检测
MIC_CONTR();//声控检测
}
2.MIC_CONTR()函数:
void MIC_CONTR()//声控模式
{
number++;
if(MIC==0)
{
delay(20);
{
if(MIC == 0)
cont++;
}
}
if((cont==60)&&(number< 25*60)) //计数到规定数值
{
ELECT_LEVEL(1);
cont=0;
number=0;
}
if(number >= 25*60)
{ number=0; cont=0; }
}
3、switch_check() 函数:
void switch_check()//开关检测
{
if(swich==0) //如果开关开启,从机工作(进行MIC检测或关闭MIC)
{
if(elect.sleep==0) //关闭声控功能,由主机控制
{
elect.mark=1;
PCON =0x02;//PD=1 进入掉电模式
}
else if(elect.sleep==1) //开启声控功能
{
elect.mark=2;
PCON =0x01; //IDL=1,进入待机模式
}
}
else //如果开关断开,从机不执行任何指令
{
elect.mark=0;
PCON = 0x02;//进入掉电模式
}
}
我先是直接在interrupt 1 里直接把两个函数的代码敲上去,仿真的时候,程序运行的很好,很健康。
后期在整理程序的时候,我用两个函数把这些语句封装起来,结果·····程序运行到中断里的时候,就直接卡死了····没有任何反应····很不解为什么会出现这种情况?
|
|