Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.04.2008, 11:52
|
|
Прописка
Регистрация: 10.11.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Подскажите алгоритм работы с GSM-Модемом
Пишу код работы с GSM-модемом посредством AT-команд. Работаю через U(S)ART. Проблема-то в том, что команду я выдаю в порт, а вот ответ от модема приходит в разное время и разный по величине, поэтому тут необходимо использовать все это через прерывание. Но меня что-то замыкает, не могу придумать алгоритм работы с модедом через прерывание (получение данных), так как данные, по идее, нужны мне в программе, а прерывание возникает асинхронно...
Подскажите, как это можно сделать, или ткните хоть где посмотреть. Спасибо.
|
|
|
|
22.04.2008, 11:54
|
|
Временная регистрация
Регистрация: 15.06.2006
Сообщений: 56
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Может сделать какой-то флаг, типа данные есть, и если программе нужны данные от модема, она в цикле ждет установку флага, а в прерывании когда что-то получено, устанавливать этот флаг. Так вроде получится синхронно.
|
|
|
|
22.04.2008, 11:57
|
|
Прописка
Регистрация: 10.11.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я думал над этим, дело в том, что 1 байт - тоже данные, но мне-то нужен ответ модема... А проверять так - это неудобно.
|
|
|
|
22.04.2008, 17:26
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Я делал это так:
Отсылаю команду модему, например
AT+CPIN?,0x0D,0x0A
По умолчанию эхо включено, модем ответит мне тем же:
Таким образом я считываю байты до тех пор, пока не встречу символ 0X0A (это было эхо).
Теперь снова ожидаю 0x0A, модем пришлет следующее:
Код:
|
CPIN:READY,0x0D,0x0A |
запутанно конечно описал...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:08.
|
|