新手有个关于按键的问题请教一下,程序如下:
[mw_shl_code=applescript,true]int main(void)
{
SysTick_Config(SystemCoreClock / 1000); //1MS
void GetPowerKey(void)
{
if(PWK)
{ u16 KeyCount=0;
u32 keyTime=0;
delay_ms(30);
keyTime=g_RunTime;
if(PWK)
{
KeyCount=3000;
while(PWK&&KeyCount)
{ KeyCount--;
delay_ms(1);
}
if((g_RunTime-keyTime)>2000)
{
printf("ÕyÔú1Ø»ú......
");
PlayMusic(2,guanjizhong);
delay_ms(1000);
if(PWK==0)
{
delay_ms(100);
MPWROFF(1);
} //1رÕμçÔ′
}
}
}
}
}[/mw_shl_code]
其中,g_RunTime的定义
[mw_shl_code=applescript,true]void SysTick_Handler(void)
{
if(g_RunTime<0xfffffffe)
g_RunTime++;
else
g_RunTime=0;
}[/mw_shl_code]
在仿真中,执行到if((g_RunTime-keyTime)>2000)就执行不了,或者程序跑飞,不知道什么原因,请各位指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
查到了,一直在响应USART3的串口中断,但是以前用同样的程序没出现过问题,不知道是不是硬件上的问题
这个问题可能跟中断配置有关,你的程序一直跑中断去了,仿真不了,可以程序和中断中加打印显示信息......
基本都注释完了,结果还是一样的,不知原因就跑飞了
进不去if((g_RunTime-keyTime)>2000)的原因找到了,是两者之差小于2000,但前面的循环都超过3秒了,是不是PWK的问题,这是个输入端口,软件设置浮空,硬件下拉
我这里除了SysTick_Handler(void)中断,没有别的了
一周热门 更多>