реклама на сайте
подробности

 
 
> IAR and RING, может кто сталкивался
BandiT
сообщение Apr 4 2007, 10:31
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 3-04-07
Пользователь №: 26 729



не знаю в тот раздел форума попал или не тот.. надеюсь если что подскажите...
задача состоит в следующем есть модем SE на основе gr47 работаю с ним через iar workbench так вот жду звонка определенное время нормально... звонок приходит я его вижу... открываю порт - модем уходит на перезагрузку... скора я уже cranky.gif

ожидание звонка:
// Ожидание ответа от модема, возвращает значение 0 в случае неудачи или количество
// пришедших байт в противном случае
// Параметры: адрес ожидаемой строки, длина ожидаемой строки, максимальное время
// ожидания в 1/100х секунды, число ожидаемых байт( если не задана строка ожидания),
// адрес буффера записи пришедших символов
word wait_response(byte *stroka, word leng, word maxtime, word maxnum, byte *buffer)
{
word clk, i, j;
clk = CentSec();
j = 0;
while(1)
{
while(ReadyRcvCom(COM_MODEM)==0) // проверка готовности приема
if((CentSec()-clk)>maxtime)return(0); // истекло максимальное время ожидания
*(buffer+j) = RcvCom(COM_MODEM); // сохранить пришедший байт
j ++;
if(j > LNGT) return(0); // ограничение по длине приемного буффера
for(i=0;i<leng;i++)
if( (j < leng)||(*(stroka+leng-i-1) != *(buffer+j-i-1)) ) break;
if( (leng!=0)&&(i==leng) ) return(j);// строка ожидания получена
if( (leng==0)&&(j==maxnum) ) return(j);// ожидаемое количество символов пришло
}
return(0);
}


сам код где жду звонка:
if(wait_response("RING", 4, 3000, 0, rec_mod))
{
send_modem("ATH\r", 5);
ExternalWD();
S_1 = 0;
S_2 = 0;
while ((S_1 <= 180000)||(S_2 <= 180000))
{
if((ReadyTrsCom (1)&0x2)!=0) Dir485(0); // 485 интерфейс на прием
switch(ReadyRcvCom (0))
{
case(0): break;
case(1): Dir485(1); // 485 интерфейс на передачу
TrsCom (1,RcvCom (0));
S_1=0;
break;
case(2):
case(3): RcvCom (0); break;
default: break;
}
switch(ReadyRcvCom (1))
{
case(0): break;
case(1): TrsCom (0,RcvCom (1));
S_2=0;
break;
case(2):
case(3): RcvCom (1); break;
default: break;
}
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016