Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Ring + модем

Сообщений 1 страница 20 из 20

1

При принятие Ring по прерыванию INT7  мега128, на lcd есть  Ring , дальше нет действий. Кто работал с модемами Сименс? с  Ring по прерыванию?

Код:
 '-----------------    Îáðàáîòêà âõîäÿùåãî çâîíêà    ----------------------------
In_zvonok:

Stop Watchdog
Disable Interrupts
Disable Int7
'Print "ATH"

Locate 2 , 1 : Lcd "               "                        '÷èñòèì LCD 15 ïðîáåëîâ
Locate 2 , 1 : Lcd "  RING         "
R = Ischarwaiting()                                         'ïðîâåðêà íàëè÷èÿ ñîîáùåíèÿ â áóôåðå
  If R = 1 Then
     Getline Sk                                             'óõîäèì íà ïîäïðîãðàììó è ñìîòðèì ÷òî ïðèøëî
     Z = Left(sk , 4)
     If Z = "RING" Then
      Getline Sk
      Z = Left(sk , 4)
       If Z = "+CLI" Then                                   'åñëè +CLIP, çíà÷èò ïðèøëî ñìñ RING
          Sms_ring = Mid(sk , 9 , 12)                       'äîñòàåì íîìåð
             If Sms_ring = Phonebook_1 Then
                Waitms 50
                Locate 2 , 1 : Lcd "               "        '÷èñòèì LCD 15 ïðîáåëîâ
                Locate 2 , 1 : Lcd Sms_ring                 'âûâåäåì íà äèñïëåé íîìåð
                Wait 1
                Print "ATH"
                Gosub Zamok
             End If
              End If
               End If
               End If
 Set Eifr.intf7                                             'ñáðàñûâàåì ïðåðûâàíèå.7
 Enable Int7
 Enable Interrupts
 Flushbuf

 Return
' ***             THE END          ***==========================================

Отредактировано Aleks (2013-12-02 00:50:24)

0

2

А ответ разве не АТА ??, и вроде как возвратом каретки надоть заканчивать

Отредактировано Skull (2013-12-02 02:01:18)

0

3

Skull
Идея такая, пришел вызов, опознали номер звонящего и ели номер правильный  уходим на действие подпрограммы )  если нет, то просто выходим. О поднятие "трубки" и соединении речи нет. Просто не могу понять, почему по сигналу  инт срабатывает несколько раз ? Мерцает Ring на экране(

Отредактировано Aleks (2013-12-02 19:53:37)

0

4

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

Отредактировано Skull (2013-12-02 20:17:24)

0

5

А это
Disable Interrupts
Disable Int7
должно же работать ли что то я не понял..
После команды АТН в буфере должны остаться данные?

Отредактировано Aleks (2013-12-02 20:28:03)

0

6

А это значит, что модем ничего не делает, а продолжает звонить )))

0

7

Спасибо )  Если есть опыт подправь код, как лучше ?

0

8

Команда для флага инта Set Eifr.intf7   остается или убрать?

0

9

Ты разберись с реакцией модема, он похоже, не принимает команды.
Вот и продолжает трезвонить.
Прерывания скорее всего ни при чем. А если охота оптимизировать код, то проверяй реакцию модема ДО включения прерывания. Тогда не будет постоянно маячить.

0

10

Skull

Skull написал(а):

Ты разберись с реакцией модема, он похоже, не принимает команды.
Вот и продолжает трезвонить.

С этим все нормально.

Skull написал(а):

Прерывания скорее всего ни при чем.

В том то и дело, что после АТН еще раза три прерывание выполняет(
А нужно позвонку определить звонящий номер и произвести действия.

0

11

Aleks написал(а):

В том то и дело, что после АТН еще раза три прерывание выполняет(
А нужно позвонку определить звонящий номер и произвести действия.

Если ты не даешь отбой или не поднимаешь трубу после произведенных действий, естественно это выполняется пока идет дозвон

0

12

Skull
Команда АТН и есть отбой ) смотри мой код.

0

13

А прерывание наступает само по себе исключительно только для того, чтобы попарить тебе мозг.......
Cтандартный символ окончания команды для Сименса <CR> (0x0D).
почитай внимательно http://www.telescada.ru/files/gsm/m20rus.pdf
с.34. У тебя в коде его нигде нет.
Писал еще в первом посту, тебе же было лень проверить. Как минимум, после удачно выполненной команды ATH тебе модем должен сказать "ОК", может ты ее и ловишь на прерывание.

Отредактировано Skull (2013-12-04 11:50:46)

0

14

Да, после удачно выполненной команды ATH  он говорит "ОК", только ловить ему нечего, смотри пожалуйста приведенный выше код.)
Команды для Сименса <CR> (0x0D) в данном модеме не надо ) - USB Simens UT-35i .   Дело все в инте, между сигналами ring всего 4 сек. , почему - то не успевает  или подвисает .....
Если смотреть в терминале -
**********************************************************
Termite log, started at Wed  2013
**********************************************************

RING

+CLIP: "+7989xxxxxx",145,,,,0

RING

+CLIP: "+7989xxxxxx",145,,,,0

RING

+CLIP: "+7989xxxxxx",145,,,,0

Отредактировано Aleks (2013-12-05 18:38:05)

0

15

Может кто-то все таки снимал номер звонящего абонента без поднятия трубки ?  по сигналу RING ? :flag:

0

16

Aleks написал(а):

Дело все в инте, между сигналами ring всего 4 сек. , почему - то не успевает  или подвисает .....

Ну ты даешь  :D
Вот тебе из даташита на твой модем ))) Попробую объяснить тебе английским языком )))

Commands are usually followed by a response that includes “<CR><LF><response><CR><LF>”.
Throughout this document, only the responses are presented, <CR><LF> are omitted intentionally.

Отредактировано Skull (2013-12-05 12:40:12)

0

17

На, это на русском http://alex-exe.ru/radio/wireless/gsm-siemens-mc35i/ команды , это все понятно.
Покажи на примере кода.

Отредактировано Aleks (2013-12-05 17:49:32)

0

18

У тебя сокращенный и кастрированный вариант. Найди нормальную доку на английском или нормальный перевод.
Пример :

Print "ATH";chr(13);chr(12)
                       CR        LF
Заметь, ответы модема заканчиваются точно так же. У меня на работе есть такой же проверю скажу точно.

Короче, ПРОВЕРИЛ на ТАКОМ ЖЕ модеме. Символы CR и LF нужны как при вводе команд так и передаются при выводе ответа. 
Меняй код и отписывайся. Мозгоклюй, блин.... :canthearyou:

Отредактировано Skull (2013-12-06 17:15:16)

0

19

Skull написал(а):

Меняй код и отписывайся. Мозгоклюй, блин....

Следи за речью, думаю в душе ты  хороший) , прочти здесь о "print" - http://avrhelp.mcselec.com/index.html - строка звучит так - You can use a semicolon ( ; ) to print multiple variables or constants after each other.When you end a line with a semicolon, no linefeed and carriage return will be added.......
Прочти здесь исходник, найди перевод каретки и возврат! - http://avrproject.ru/sim900_security/gsm_121021.rar , здесь как все работает с этим кодом, +видео - http://avrproject.ru/publ/sistema_udale … /1-1-0-112

Вопрос был о прерывании. А команда Print "ATH" выполняется как надо, разрывом соединения.

Отредактировано Aleks (2013-12-06 21:36:27)

0

20

у меня модем половину команд не выполняет, если их правильно не завершить.
Что же, может у тебя прошивка МС35 с Сириуса, а прерывание наступает от движения атомов в кристалле проца.
Но все же очень рекомендую записать лог общения проца с модемом, из него все будет ясно- и откуда прерывание, и ложит ли трубу модем...  Кстати, прерывание у тебя может наступать и от ответа модема.
А трубка у тебя ложится только если номер есть в тел. книге это так задумано ?

Отредактировано Skull (2013-12-07 13:04:40)

0

Похожие темы