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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> SIM300DZ, начинаем с ноля
chief_olimp
сообщение Jan 5 2009, 20:41
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



Цитата(KGB @ Jan 6 2009, 00:19) *
2 - модуль общается по ASCII кодировке?????? всмыле это я видел, но может есть ещё какието варианты???

это в текстовом режиме
Для цифрового (PDU) можно использовать UNICODE с расширеным набором символов (рус. укр. и тд)
Go to the top of the page
 
+Quote Post
KGB
сообщение Jan 6 2009, 00:30
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 21-12-08
Пользователь №: 42 644



Цитата(chief_olimp @ Jan 5 2009, 23:41) *
это в текстовом режиме
Для цифрового (PDU) можно использовать UNICODE с расширеным набором символов (рус. укр. и тд)

chief_olimp
ты не путаеш вид СМС с байтамы которые непосредственно идут в модуль???
помоему путаеш...
вот смотри...
если ты отправляеш в модуль F
ТО ЭТО БУДЕТ ТАК
ldi____BUF,0x46____; F
rcall__TX_232

если ты отправляеш в модуль П
то так.. с преворительной подготовкой..

;______П-----------это по русски
;_04_1F_04_40 это преобпазуем в UCS2
;_30_34_31_46 а это UCS2 в ASCII

ldi____BUF,0x30
rcall__TX_232
ldi____BUF,0x34
rcall__TX_232
ldi____BUF,0x31
rcall__TX_232
ldi____BUF,0x46
rcall__TX_232

ТОЕСТЬ КАК НЕ КРУТИ В МОДУЛЬ ЛЕЗИТ --- ASCII
это был пример на вводе СМС

но вед остальное впринципе лезит в модуль токже.. тока без лишних преобразований
типа
;AT+CSCS="UCS2" это сама команда что надо отправит в ТЕКСТОВОМ виде
;41 54 2B 43 53 43 53 3D 22 55 43 53 32 22 0D а это то что непосредственно
лезит в модуль в hex но сами биты (информация) передаётся в ASCII

ВОТ Я И СПРАШИВАЮ ЧТО МЕТОД ОБЩЕНИЯ ЕСТЬ ТОЛЬКО В ASCII?????
если да то тут проблемы малость решаются....
так ка диапазон ASCII от 00 до 7F
даже можно начать с 20 и включив в список такие на 1A 0D 0A

ЭТО Я К ТОМУ ЧТО Я ПИШУ ТОКА НА АСМ

и этим решается такие проблемы как например приём байта.

AT+.....
OK
вот после АТ надо принять ОК... тут всего два байта..
а бывает больше ..как узнать длину всего ответа?????????????????????????
но кроме дины есть ещё и факт что мы оттуда ваще ничего не примем!!!
так вот тут в таком случае можем совсем повиснуть в ожидании..
делаем так..
судя по временым интервалам в работе с гсм модулем
лучше использовать таймер 16 бит
так вот.... используем софтовый рх_тх
запускаем тамер TMR1
опрашиваем пин рх
если не 0 (старт бит не пришол)
то проверяем переполнение
если небыло то в начало приёма
если было то значит сильно долго ждём и походу не дождёмя..
и выходим скажем с результатом 0х01

так вот если приём состоялся
то мы получим наш ОК + последний байт будет 0х01 (всякие 0D я тут пока пропускаю для упрощения всасывания...)
а если добавитьещё скажем
inc Len после принятия каждого байта то получится что мы их просто тупо пощитаем
и будем знать длину принятого ответа.

получается !!!!
1- не зависли при отсутствии ответа
2- знаем длину
----------------------
усложняем .... врубаем превание INT0 и на эту ногу заводим RX
и при срабатывании прерывания выполняем выше описаную ПП
добавив в ней вконце выставление бита в каком нибуть регистре..
типа чтение состоялось
и загрузку всего принятого в озу
---
дальше...возвращаемся к..
AT+.....
OK
теперь мы тут ОК уже не ждём ... всмысле что он у нас сам считается автоматом и запшится в память
а будем опрашивать какото время тот самый выставленый бит.
если бит выставлен .. значит ответ был.
тогда обрабатываем наш ОК или что там пришло...
стираем этот бит
и идём дальше по программе...

вариант хороший...
удобно то что можно включать выключать прерывание
тем самым не мешать выполнению какойто задачи с высшим приоритетом.. ну и итд..
Go to the top of the page
 
+Quote Post
chief_olimp
сообщение Jan 6 2009, 19:08
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



ну тогда в чем был вопрос?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jan 6 2009, 19:17
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



По-моему, Вы несколько перемешали все в кучу. И аппаратный канал и прием/передачу и разбор ответов и кодирование запросов. ИМХО, это последствия применения ассемблера там, где ему не место. В идеале должна получиться простая, но многоуровневая модель...


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
KGB
сообщение Jan 6 2009, 23:27
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 21-12-08
Пользователь №: 42 644



Dron_Gus
я действительно похоже перемудрил...
но в своём тексте слово "аппаратный приём" я так и не нашол.....
а вот гдето в скобках я специяльно писал что приём и передача СОФТОВАЯ.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 04:10
Рейтинг@Mail.ru


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