Добрый день,
Помогите разобраться проблемой - пытаюсь определить номер звонящего, не могу понять в чем дело.
В Proteus все проходит отлично (на ATMEGA16), с ПС тоже (на ATMEGA162), но с телефоном алгоритм определения номера работать отказывается, но при этом алгоритм считывания номеров телефонов из СИМ карты работает нормально ((
Пользую CodeVisionAVR
Chip type : ATmega162
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Части кода
// USART0 Receiver buffer
#define RX_BUFFER_SIZE0 100
char rx_buffer0[RX_BUFFER_SIZE0];
char telz[100];
char tel[] = "917*******";
настраиваю телефон так:
printf("ATE0\x0d");
printf("\n\r");
printf("AT+CLIP=1");
printf("\n\r");
определяю номер звонящего:
if (rx_counter>20)
{
#asm("cli");
gets(telz,rx_counter);
for (i=0;i<strlen(telz);i++)
{
if(telz==tel[0] && telz[i+1]==tel[1] && telz[i+2]==tel[2] && tezl[i+3]==tel[3] && telz[i+4]==tel[4] && telz[i+5]==tel[5] && telz[i+6]==tel[6] && telz[i+7]==tel[7] && telz[i+8]==tel[8] && telz[i+9]==tel[9])
{
PORTD.3=1;
delay_ms(100);
PORTD.3=0;
delay_ms(100);
PORTD.3=1;
delay_ms(100);
PORTD.3=0;
printf("ATH\x0d");
memset(line,'',100);
}
#asm("sei");
}
memset(telz,'',100);
}
//**************************************************************
Помогите разобраться проблемой - пытаюсь определить номер звонящего, не могу понять в чем дело.
В Proteus все проходит отлично (на ATMEGA16), с ПС тоже (на ATMEGA162), но с телефоном алгоритм определения номера работать отказывается, но при этом алгоритм считывания номеров телефонов из СИМ карты работает нормально ((
Пользую CodeVisionAVR
Chip type : ATmega162
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Части кода
// USART0 Receiver buffer
#define RX_BUFFER_SIZE0 100
char rx_buffer0[RX_BUFFER_SIZE0];
char telz[100];
char tel[] = "917*******";
настраиваю телефон так:
printf("ATE0\x0d");
printf("\n\r");
printf("AT+CLIP=1");
printf("\n\r");
определяю номер звонящего:
if (rx_counter>20)
{
#asm("cli");
gets(telz,rx_counter);
for (i=0;i<strlen(telz);i++)
{
if(telz==tel[0] && telz[i+1]==tel[1] && telz[i+2]==tel[2] && tezl[i+3]==tel[3] && telz[i+4]==tel[4] && telz[i+5]==tel[5] && telz[i+6]==tel[6] && telz[i+7]==tel[7] && telz[i+8]==tel[8] && telz[i+9]==tel[9])
{
PORTD.3=1;
delay_ms(100);
PORTD.3=0;
delay_ms(100);
PORTD.3=1;
delay_ms(100);
PORTD.3=0;
printf("ATH\x0d");
memset(line,'',100);
}
#asm("sei");
}
memset(telz,'',100);
}
//**************************************************************