//date:2019-9-30 16:08:29
//author:duxinfeng
//function:A method to scan led blink which showing the network status of GPRS
#define u8 unsigned char
#define max_cnt 102
#define min_cnt 8
u8 high_cnt=0;
u8 high_sta=0;
u8 high_buf[5];
u8 led_blink_scan()
{
u8 i=0;
if( LED_PIN )
{
if( high_cnt>max_cnt )
{
high_cnt=0;
}
high_cnt++;
}
else
{
if( high_cnt>max_cnt ) { return 0xf1; }
else if( high_cnt<max_cnt ) { return 0xf2; }
else
{
for( i=0;i<4;i++)
{
high_buf[4-i]=high_buf[3-i];
}
high_buf[0]=high_cnt;
high_sta=high_buf[0]*0.6+
high_buf[1]*0.1+
high_buf[2]*0.1+
high_buf[3]*0.1+
high_buf[4]*0.1;
if( high_sta<min_cnt*2 )
{
return 0x01;
//this blink is high 100ms
}
else if( (high_sta<(max_cnt/2+20))&&( high_sta>(max_cnt/2-20) ) )
{
return 0x05;
//this blink is high 500ms
}
else if( high_sta>(max_cnt/2+30) )
{
return 0x0A;
//this blink is high 1000ms
}
}
}
return 0x00;
}