- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
unsigned char SIM300_Reboot(void)
{
// проверим статус модема
if (!pinSTATUS) // если STATUS = 0 (модем выключен)
{
while (1) //если не включается-включаем до посинения
{
if (!(Modem_ON()))
return 0;
}
} else // если STATUS = 1 (модем включен)
{
while (1) //если не выключается - выключаем до посинения
{
if ((!Modem_OFF()) && (!Modem_ON()))
return 0;
}
}
}
тяжёлые будни программиста embedded-систем.
дополнительный аромат: упомянутые функции возвращают 0 в случае успешного выполнения, а не наоборот, как можно было бы подумать при виде if (!some_func(...))
return 0;
Ommmmmmm....
return 0;
вот это красивое решение
Вообще жесть, что тут написано :D
То есть приведенный код в итоге никогда не выключит модем, он будет всегда включен.