witam
mam problem z którym dość długo się juz męcze bezskutecznie
odbieram sms z telefonu simens który wygląda tak:
odbieram go w przerwaniach :
ale nijak to idze działać prawidłowo
Jak najlepiej podzielić tak długi string (tablice char) aby "wyłuskać" numer telefonu oraz treść
mam problem z którym dość długo się juz męcze bezskutecznie
odbieram sms z telefonu simens który wygląda tak:
+CMGR: "REC READ","+48xxxxxxxxx",,"09/09/14,12:33:57+08"
tresc smsodbieram go w przerwaniach :
SIGNAL (SIG_UART_RECV)
{
znak = UDR ;
if(znak == 0x0d || znak == 0x0A )
{
count = 0 ;
buffor_rx = 1 ;
}else{
if(count > 34 ) count = 34 ;
buffor[count] = znak ;
++count;
}
}
volatile char timeout = 10 ;
SIGNAL(SIG_OVERFLOW1)
{
// TIMER oczekiwania na moduł
if(timeout > 0)
{
--timeout;
}
}
void sms_read(unsigned char numer)
{
char sms_ok = 0 ;
send_str("AT+CMGR=");
send_byte(48+numer);
send_byte(0x0D);
while(timeout)
{
if(buffor_rx == 1)
{
if(strncmp(buffor,"tresc sms",9) == 0 )
{
buffor_rx = 0 ;
sms_ok = 1;
}else{
buffor_rx = 0 ;
sms_ok = 0 ;
timeout = 0 ;
}
}
if(sms_ok == 1 && buffor_rx == 1)
{
if(strncmp(buffor,"+CMGR",5) == 0 )
{
PORTA |= (1<<PA1); // zapal led
timeout = 0 ;
}
}
}
}
ale nijak to idze działać prawidłowo
Jak najlepiej podzielić tak długi string (tablice char) aby "wyłuskać" numer telefonu oraz treść