Код: Выделить всё
void sms_read(){
printf("AT+CMGF=1\r"); //set text mode
printf("AT+CMGL\r"); //read all unreaded SMS
}
void activeCommand(char c[])
{
if (c[0]=='+'&&c[1]=='C'&&c[2]=='M'&&c[3]=='T'&&c[4]=='I')
{
sms_read();
}
if (c[0]=='R'&&c[1]=='E'&&c[2]=='A'&&c[3]=='D')
{
read();
}
}
unsigned char COMMAND[5];
unsigned int i = 0;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSR0A;
data=UDR0;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) {
WDTCSR = (1<<WDCE) | (1<<WDE);
/* Выкл. сторожевого таймера */
WDTCSR = 0x00;
if (data != ':')
{
COMMAND[i] = data;
i++;
}
else
{
COMMAND[i] = data;
i = 0;
activeCommand(COMMAND);
}
}
#pragma optsize-
#asm("wdr")
WDTCSR=0x39;
WDTCSR=0x29;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
}
не знаю...