[mw_shl_code=c,true]//sim900a主测试程序
void sim900a_test(void)
{
u8 key=0;
u8 timex=0;
u8 sim_ready=0;
POINT_COLOR=RED;
Show_Str_Mid(0,30,"ATK-SIM900A 测试程序",16,240);
while(sim900a_send_cmd("AT","OK",100))//检测是否应答AT指令
{
Show_Str(40,55,200,16,"未检测到模块!!!",16,0);
delay_ms(800);
LCD_Fill(40,55,200,55+16,WHITE);
Show_Str(40,55,200,16,"尝试连接模块...",16,0);
delay_ms(400);
}
LCD_Fill(40,55,200,55+16,WHITE);
key+=sim900a_send_cmd("ATE0","OK",200);//不回显
sim900a_mtest_ui(40,30);
while(1)
{
delay_ms(10);
sim_at_response(1);//检查GSM模块发送过来的数据,及时上传给电脑
if(sim_ready)//SIM卡就绪.
{
key=KEY_Scan(0);
if(key)
{
switch(key)
{
case KEY_RIGHT:
sim900a_call_test();//拨号测试
break;
case KEY_DOWN:
sim900a_sms_test(); //短信测试
break;
case KEY_UP:
sim900a_gprs_test();//GPRS测试
break;
}
sim900a_mtest_ui(40,30);
timex=0;
}
}
if(timex==0) //2.5秒左右更新一次
{
if(sim900a_gsminfo_show(40,225)==0)
sim_ready=1;
else sim_ready=0;
}
if((timex%20)==0)LED0=!LED0;//200ms闪烁
timex++;
}
}[/mw_shl_code]
if(timex==0) //2.5秒左右更新一次 <----------- 2.5S是怎么得到的 ,看大循环的话,如果没有key按下,应该就检测一次就没了,再也不会去检测,那2.5S是怎么计算出来的 ?
|