Перейти к содержанию
    

ДЕЙЛ

Свой
  • Постов

    767
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Сообщения, опубликованные ДЕЙЛ


  1. Там вначале много строчек вида

    //#define MINIZ_NO_xxxx

    с комментариями. Почитайте комментарии и раскомментируйте нужные дефайны для отключения лишней функциональности.

    всего 7 строчек, 128 возможных комбинаций закоментировано-раскоментировано перепробовал и не нашёл такой, при которой файл скомпилировался бы. Где ещё что можно поменять?

     

    UP1: к глубокой ночи соображать плохо стал

    #include "miniz.c" стояла самой первой строчкой в программе перед присоединением стандартных библиотек, получалось какое-то дублирование из-за отсутствия где-то защитных дефайнов

     

    UP2: библиотека компилируется, но проблема осталась - ошибка памяти

     

    UP3: Для нормальной работы zlib нужно 270КБ оперативки, а это уже больше чем в 4 раза больше доступной памятив LPC1768. Этот требуемый объём как-то можно уменьшить изменением дефайнов?

     

    c minizlib пока не получается заархивировать, постоянно ошибка памяти(-4), хотя указал объём ОЗУ в несколько МБ. Сейчас закомментирована только строка #MINIZ_NO_ZLIB_APIS, все остальные возможные комбинации перепробовал ещё раз.

     

    UP4: Откуда взялась цифра "32КБ ОЗУ", если только размер одной структуры tdef1_compessor больше 300КБ? Это речь о miniz.c

    Minizlib.rar

  2. Библиотеку нашёл, скачал, порадовался наличию десятков всяких файлов. Какие файлы нужны для LPC1768 в IAR? Где можно найти описание последовательности настройки этой библиотеки под Cortex-M3? Где что закомментировать-раскомментировать, какие и в каком файле поменять константы?

  3. http://gromr1.blogspot.ru/2014/04/install-...on-windows.html

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

     

     

    UP: Теперь появился вопрос по компиляции файла *.exe для копирования на другой комп. Как правильно нужно делать и куда копать? В самом Creator'е запускается, отдельно никак.

     

    UP2: попробую книжку почитать, мошть прояснится :rolleyes:

  4. Поставил QT 5.2.0 и minqw, указывал в настройках по очереди все компиляторы из папки mingw\win, но всё равно пишет, что не указан компилятор. Как правильно пошагово всё настроить? Полазил по куче форумов и в результате в голове хорошая каша отложилась. Смотрел на ютубе видюшки - там по умолчанию всё настроилось. Хотелось бы увидеть скрины процесса настройки QT 5.2.0 и minqw с самого нуля под винду ХР. У меня постоянно такая ошибка

    post-79085-1428013475_thumb.jpg

  5. Не приведет ли к сбоям схема где выход одного PLL поступает на вход другого? Ведь джиттер первого по идее воздействует на петлю обратной связи второго.

    А то я хочу затактировать процессор с генератора имеющего внутри PLL. В процессоре тоже тактовая частота формируется через свой PLL.

    Почему бы обычный буфер не поставить, если есть сомнения? Процессору без разницы, как формируется сигнал до его входа :)

  6. Ну вот же -

             if (RXBUF[i]<>$A) and (RXBUF[i]<>$D) then

    По тексту программы видно, что пока она не примет символ конца строки или перевода каретки (CR или LF) она ничего никуда не выводит, а тихо и молча накапливает принятые символы в RxData

     

    А модуль после приглашения '>' никаких CR/LF не добавляет (в отличие от остальных команд)

    Есть такое дело, неподумавши накодил :rolleyes:

    Подправил свою программу ещё в некоторых местах и добавил функцию сниффера(для него ещё нужно железо).

    SIM900_DIALOG.rar

  7. Тогда показывайте текст программы (ту часть, что читает данные с модуля)

    Вкратце вот так:

    procedure TForm1.RxTimerTimer(Sender: TObject);
    var
         Errors : Dword;
    LenReceive : DWord;
              i : integer;
    RxData, Log, NumStr : string;
    
    begin
    RxData := '';
    ClearCommError(hCom, Errors ,@Stat);//?????????? ????
    LenReceive := Stat.cbInQue;
    If LenReceive>0 Then
       Begin  {1}
         ReadFile(hCom,RXBUF,LenReceive,LenReceive,nil);
         For i:=0 to LenReceive-1 Do
           Begin
             if (RXBUF[i]<>$A) and (RXBUF[i]<>$D) then
               begin
                RxData := RxData + Chr(RXBUF[i]);
               end
             else
               begin
                   ListBox1.Items.Strings[ListBox1.ItemIndex] :='       '+RxData;
                   RxData := '';
                   ListBox1.TopIndex := ListBox1.Items.Count - 1;
               end;
    
           End;
       End; {1}
    
    end;

    Данные он отправляет без приглашения, смски тоже. В прикреплённом файле только что дописанная программа для работы с SIM900. В инете не нашёл, поэтому сам сочинил. До этого ковырялся в программе от другова модуля.

    SIM900_DIALOG.rar

  8. а ножка RTS в каком состоянии ? Включено ли управление Flow Control ?

    Я использую только TX-RX, остальные ножки не трогаю. Это принципиально для работы с TCP/IP?

     

    А как вы получаете лог? Может оно буферизует символы (до символа конца строки)?

    скопировал как текст из окна программы

  9. //перезапуск
    AT+CFUN=1,1 
    yyyy
    
    //проверка регистрации в сети
    Send: AT+CREG?<cr><lf>	   
    AT+CREG?
    
    +CREG: 1,1				 
    
    OK
    
    //проверка GPRS
    Send: AT+CGATT?<cr><lf>	
    AT+CGATT?
    
    +CGATT: 1
    
    OK
    
    //закрытие всех соединений
    Send: AT+CIPSHUT<cr><lf>  
    AT+CIPSHUT
    
    SHUT OK
    
    //проверка инициализации модуля IP
    Send: AT+CIPSTATUS<cr><lf>  
    AT+CIPSTATUS
    
    OK
    
    STATE: IP INITIAL
    
    //устанавливаем только одно соединение
    Send: AT+CIPMUX=0<cr><lf>  
    AT+CIPMUX=0
    
    OK
    
    //настройки GPRS
    Send: AT+CSTT="internet.mts.ru","mts","mts"<cr><lf> 
    AT+CSTT="internet.mts.ru","mts","mts"
    
    OK
    
    //соединяемся с заданными настройками 
    Send: AT+CIICR<cr><lf> 
    AT+CIICR
    
    OK
    
    //смотрим свой IP
    Send: AT+CIFSR<cr><lf> 
    AT+CIFSR
    
    10.49.180.250
    
    //включаем TCP-соединение
    Send: AT+CIPSTART="TCP","yandex.ru",80<cr><lf>  
    AT+CIPSTART="TCP","yandex.ru",80
    
    OK
    
    CONNECT OK
    
    //после этой команды должно появиться приглашение для записи отправляемых данных
    Send: AT+CIPSEND<cr><lf> 
    AT+CIPSEND

     

    и в этом месте всё виснет, никаких признаков жизни

  10. делаю по шагам, как написано вот тут http://badembed.ru/sim900-tcp-soedinenie-s-serverom/

     

    Дохожу вот до этой строки

    -> AT+CIPSEND — запрос на посылку сообщения серверу

     

    <- > — в ответе символ готовности, после его получения можно вводить данные, которые надо передать

     

    Символ готовности никак не хочет появляться даже посли 20минутного ожидания.

  11. Как то так:

    AT+CIPSTART="TCP","ya.ru",80
    GET /index.html HTTP/1.1

    (Не забудьте про пустую строку в конце! Ее форум съел, а без нее работать не будет :) )

    Что за пустая строка в конце? Можно скрин, если форум съедает?

     

    http://badembed.ru/sim900-tcp-soedinenie-s-serverom/

    -> AT+CIPSEND — запрос на посылку сообщения серверу

     

    <- > — в ответе символ готовности, после его получения можно вводить данные, которые надо передать

     

    -> data — данные которые необходимо передать. После ввода данных необходимо указать модему, что сообщение окончено и его надо передавать серверу — для этого передают следующую команду

     

    -> 26 — команда конца сообщения (0x1A) после нее модем передает серверу данные data

     

    -< SEND OK

     

    -> AT+CIPCLOSE — закрытие соединения с сервером или можно вызвать AT+CIPSHUT

    Правильно я понимаю, что команды серверу нужно формировать и отправлять в виде данных data?

    Или для этого нужны какие-то AT-команды?

  12. Обычно можно сразу давать команду AT+CIPSTART, которая и установит соединение.

    Допустим, что соединение установилось с каким-то сервером. Дальше я хочу записать данные в конкретный файл на удалённом сервере. Какими командами нужно пользоваться? Где их найти?

     

     

    Как будет выглядеть AT-команда для запроса страницы yandex.ru? Т.е. в ответ на эту команду должен прийти текст вроде этого:

     

    <!DOCTYPE html>

    <html class="i-ua_js_yes i-ua_css_standart i-ua_browser_firefox i-ua_pseudo_yes js m-border-radius i-ua_inlinesvg_yes m-svg i-ua_animation_yes" lang="ru"><head xmlns:og="http://ogp.me/ns#"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Яндекс</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="apple-touch-icon" href="http://yastatic.net/morda-logo/i/apple-touch-icon/ru-76x76.png" sizes="76x76"><link rel="apple-touch-icon" href="http://yastatic.net/morda-logo/i/apple-touch-icon/ru-120x120.png" sizes="120x120"><link rel="apple-touch-icon" href="http://yastatic.net/morda-logo/i/apple-touch-icon/ru-152x152.png" sizes="152x152"><link rel="apple-touch-icon" href="http://yastatic.net/morda-logo/i/apple-touch-icon/ru-180x180.png" sizes="180x180"><link rel="alternate" type="application/rss+xml" title="Новости Яндекса" href="http://company.yandex.ru/news/news.rss"><link rel="alternate" type="application/rss+xml" title="Блог Яндекса" href="http://company.yandex.ru/blog/index.rss"><link rel="search" href="http://yandex.ru/opensearch.xml" title="Яндекс" type="application/opensearchdescription+xml"><link rel="shortcut icon" href="http://yastatic.net/morda-logo/i/favicon_islands.ico"><meta property="og:title" content="Яндекс"><meta property="og:type" content="website"><meta property="og:image" content="//yastatic.net/morda-logo/i/share-logo-ru.png"><meta

    .....................

    .....................

     

    ></div><i class="b-counter" style="background: url(//www.tns-counter.ru/V13a**5cd4d635da5c3fdb9cf9f5a4e2b6e7da**yandex_ru/ru/CP1251/tmsec=yandex_main/0);"></i><div style="display:none" class="page-info">{"static":"2.264","skins":"1.79"}</div><!--s54.wfront.yandex.net--><div style="height:0;overflow:hidden;"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="fco" height="1" width="1"><param name="movie" value="//yastatic.net/browser-cookie/flash-cookie.swf"><param name="allowScriptAccess" value="Always"><embed src="%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_files/flash-cookie.swf" allowscriptaccess="Always" id="fce" height="1" width="1"></object></div><object style="position:absolute;left:-500px;top:0;visibility:hidden" data="%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_files/_search.js"></object><object style="position:absolute;left:-500px;top:0;visibility:hidden" data="%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_files/jquery.js"></object></body></html>

  13. Тут желательно по частям схему промоделировать и найти источник колебаний. Частота 100 кГц может говорить о наличии задержки сигнала в какой-то цепи, в данном случае операционник в обратной связи надо получше изучить или заменить на другой, если частота колебаний изменится, то вывод однозначный - генерация обусловлена частотной характеристикой операционника, на какой-то частоте фаза сдвигается на 180 градусов, имеем положительную обратную связь и генератор в итоге. Попробуй на вход подать синусоиду или плавно изменяющийся сигнал, чтобы не возбудился паразитный генератор.

     

    В одной из своих схем я убрал такие колебания установкой конденсатора на вход одного из операционников генератора.

  14. Опять вернулся к этой теме. Почитал Агурова и описание модуля. В моём представлении вырисовывается такая картина:

    1. Подключаем разъём к ноуту, хост видит, что резистор притянул линию и отсылает запрос;

    2. Устройство принимает байты запроса в буфер нулевой конечной точки, смотрит эти байты и формирует массив данных, которые хостом воспринимаются как дескриптор устройства;

    3. На основании данных дескриптора хост отправляет более конкретную команду устройству и т.д. до окончания инициализации соединения.

    Мои соображения похожи на правду?

×
×
  • Создать...