Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 14.10.2007, 20:48   #1
Vilovski
Частый гость
 
Регистрация: 19.01.2007
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vilovski на пути к лучшему
По умолчанию Отправка SMS через PIC16F877

Пытаюсь отправить SMS:
#use rs232(baud=2400,parity=N,xmit=PIN_C0,rcv=PIN_C1,bi ts=8)
char sms[];
SMS="0011000B819802207702F30000AA0AE8329BFD4697D9E C37x1 A";
puts("at+cmgf=0
");
puts("at+csms=0
");
puts("at+cmgs=23
");
puts(SMS);
Не работает.
Если тоже через HyperTerminal-все нормально.
Подскажите пожалуйста, в чем дело.
Реклама:
Vilovski вне форума  
Непрочитано 14.10.2007, 22:12   #2
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Отправка SMS через PIC16F877

Сообщение от Vilovski
Не работает.
Если тоже через HyperTerminal-все нормально.
Подскажите пожалуйста, в чем дело.
Подключаете выход Tx через что-нить типа MAX232 на COM порт компа и принимаете той же терминалкой. Все и увидите. (или ничего не увидите). Я б посмотрел что генерится на puts
nml вне форума  
Непрочитано 14.10.2007, 22:25   #3
Vilovski
Частый гость
 
Регистрация: 19.01.2007
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vilovski на пути к лучшему
По умолчанию

Моя программа эмулируется в PROTEUS.
Выводы PORTC1 и PORTC0 подключены к COMPIM,который соединен с COM4, к которому подключен мобильник.
Самое интересное, что
#use rs232(baud=2400,parity=N,xmit=PIN_C0,rcv=PIN_C1,bi ts=8)
puts("atdt 2998877")
работает(т.е. мобильник набирает номер 2998877).
Vilovski вне форума  
Непрочитано 14.10.2007, 22:36   #4
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Отправка SMS через PIC16F877

Сообщение от Vilovski
char sms[];
SMS="0011000B819802207702F30000AA0AE8329BFD4697D9E C37x1A";
Это что такое ? Если не помните эквивалентную запись ( я ее, кстати, тоже не помню), то выводите отдельным символом
И регистр массива не меняйте
;
char sms[]="0011000B819802207702F30000AA0AE8329BFD4697D9EC37 ";
puts(sms);
putc(0x1A);
urry вне форума  
Непрочитано 14.10.2007, 22:42   #5
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Vilovski
Моя программа эмулируется в PROTEUS.
Ох уж эти эмуляторы.. Не верю я им Да, насколько я помню, мобила после каждой отосланной ей строки отвечает что-то типа "Ок". Так вот этого ответа надо дождаться. Я возился с семеном С35 - так вот он игнорировал прием до окончания вывода своего "Ок". Только я для упрощения анализа переключал ее в режим цифрового ответа - не "Ок", а "0"
nml вне форума  
Непрочитано 14.10.2007, 22:58   #6
Vilovski
Частый гость
 
Регистрация: 19.01.2007
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vilovski на пути к лучшему
По умолчанию

char SMS[]="0011000B819802207702F30000AA0AE8329BFD4697D9EC37 ";
puts("at+cmgf=0
");
gets(buf);//‹-Почему-то тормозит здесь
puts("at+csms=0
");
gets(buf);
puts("at+cmgs=23
");
gets(buf);
puts(sms);
putc(0x1A);
gets(buf);
Vilovski вне форума  
Непрочитано 14.10.2007, 23:12   #7
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Код:
Примеры сеансов передачи SMS:

     "AT+CMGS=15" 0x0D
     0x0D 0x0A › "07917360899999F21100098168611814F10000A7010130" ^Z - сообщение с номером сервис центра
     0x0D 0x0A "+CMGS: 204" 0x0D 0x0A
     0x0D 0x0A "OK"         0x0D 0x0A

     "AT+CMGS=15" 0x0d
     0x0D 0x0A › "001100098168611814F10000A7010130" ^Z               - сообщение без номера сервис центра
Убери символ 0А из того сообщения, после которого тормозит
Не, вру - тормоза могут быть - это нормально -только после 20 секунд идет ошибка
Кажется, понял - функция gets принимает строку, оканчивающуюся нулевым символом. В твоем случае его нет, отсюда бесконечный цикл.Используй функцию приема байта - 2 или 3 раза - getc()- по количеству принимаеміх байтов.
urry вне форума  
Непрочитано 14.10.2007, 23:25   #8
Vilovski
Частый гость
 
Регистрация: 19.01.2007
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vilovski на пути к лучшему
По умолчанию

В смысле, ошибка?
Но ведь если она идет, то это ненормально.
И тормозит не посте вывода SMS:
char SMS[]="0011000B819802207702F30000AA0AE8329BFD4697D9EC37 ";
puts("at+cmgf=0
");
gets(buf);//‹-Почему-то тормозит здесь
Vilovski вне форума  
Непрочитано 14.10.2007, 23:41   #9
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

функция gets принимает строку, оканчивающуюся нулевым символом. В твоем случае его нет, отсюда бесконечный цикл.Используй функцию приема байта - 2 или 3 раза - getc()- по количеству принимаемых байтов.
В приложении - посылка.прием смс как пример.

Прикрепленный файл: 3714397.rar
urry вне форума  
Непрочитано 15.10.2007, 01:53   #10
Vilovski
Частый гость
 
Регистрация: 19.01.2007
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vilovski на пути к лучшему
По умолчанию

Спасибо.
Getc() действительно помогло.
А главная глюка состояла в том, что puts()выводит пару "лишних" (в моей ситуации) символов в конце строки, поэтому я заменил вызов этой функции puts(sms)на цикл из putc().Теперь все работает! :P
Vilovski вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выкл. и Вкл. PC через SMS? Как? boazmey Информация по радиокомпонентам 5 04.03.2007 17:25
Отправка SMS c Siemens Muzicant Автоматика и аппаратура связи 1 28.01.2007 21:37
PIC16F877=877a-? greesha_demchuk Микроконтроллеры, АЦП, память и т.д 1 06.12.2006 18:33
PIC16F877 vasseff Коллекция глюков 0 07.08.2006 17:28
pic16f877 + LCD CoolHammer Микроконтроллеры, АЦП, память и т.д 3 31.12.2005 23:19


Часовой пояс GMT +4, время: 22:50.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot