На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Данные с микроконтроллера
    Добрый день
    Ситуация следующая. На работе когда то давно заказывали программу и установку для обработки сигнала (по старой русской привычке естественно документация уже утеряна). Со временем ситуация изменилась и программа не устраивает. Попросили переписать. Сама она не такая уж и сложная. Проблема в обработке сигнала.

    Микроконтроллер от Silicon Labs - C8051FX20-TB. Подключение через COM-порт.

    Взял параметры из конфига старой программы - соответственно ловил так:
    ExpandedWrap disabled
          HANDLE hport;
          DWORD real_read;
          DCB dcb;
          BOOL succ;
          ofstream out;
          int a;
      ...
          hport=CreateFile("COM1",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
      ...
              dcb.DCBlength=sizeof(dcb);
          succ=GetCommState(hport,&dcb);
          dcb.BaudRate=CBR_115200;
          dcb.ByteSize=8;
          dcb.Parity=NOPARITY;//EVENPARITY;
          dcb.StopBits=ONESTOPBIT;//1;
          succ=SetCommState(hport,&dcb);
      ...
          while(true)
          {
              ReadFile(hport,&symbol,1,&real_read,NULL);
              if(real_read==1) {
              a = atoi(symbol);
              //cout <<symbol;
              cout<<a<<endl;
              }
          }



    Пробовал у себя в кабинете без "нагрузки" (только плата и питание) - выдавала "0" (что логично). Сегодня съездил в мастерскую - все равно "0"!
    Правда тут уже обратил внимание, что в старой программе учитываются 4 канала (на 1ом из них есть значения(шум), остальные - примерно "0"). Откуда их брать непонятно...

    Обратился с запросом и в силикон лэбс (не ответили) и к оф.представителю в россии с просьбой скинуть документацию или примеры:
    "Платы отладки с наименованием C8051F005-TB, C8051F020-TB, C8051F120-B, C8051F040-TB и т.д. обычно входят в состав отладочных комплектов. В состав комплектов кроме этих плат также входит программатор-адаптер DEBUGADPTR1-USB, который необходим для программирования по интерфейсу JTAG запаянных на плате микроконтроллеров.
    Если у вас есть программатор-адаптер DEBUGADPTR1-USB вы можете самостоятельно запрограммировать или перепрограммировать контроллер установленный на плате C8051Fххх-TB."

    Ну а программатора-адаптера у меня естественно нет.
    Но и суть то в том чтобы получить только значения.

    Сталкивался кто-нибудь с таким агрегатом? или хотя бы возможные идеи по получению значений?..


    P.S. - не знал в какой раздел лучше запостить
      Непонятно. Плата принимает внешний сигнал и отдает на ПК или наоборот?
      У контроллера с ПК обмен-то есть? Они понимают друг друга?

      Добавлено
      Цитата The-Boss @
      Пробовал у себя в кабинете без "нагрузки" (только плата и питание) - выдавала "0" (что логично).
      В этом и состояла вся проверка работоспособности? :huh:
      Сообщение отредактировано: trainer -
        Цитата trainer @
        Непонятно. Плата принимает внешний сигнал и отдает на ПК или наоборот?

        да, плата принимает внешний сигнал и отдает значения в пк (с частотой 300гц - если верить предыдущей программе)


        Цитата trainer @
        В этом и состояла вся проверка работоспособности?

        разнесенная территория - лучшего варианта подцепить с нее данные мне предложить не смогли
          Ну а схема этой C8051FX20-TB есть?
          Связь-то вообще в наличии?
            Цитата trainer @
            Ну а схема этой C8051FX20-TB есть?

            на месте всё утеряно
            но если правильно понял слова офдиллера - то вот доки нашел:
            Mixed Signal ISP Flash MCU Family (pdf)
            C 8 0 5 1 F 1 2 x - D K (pdf)

            Цитата trainer @
            Связь-то вообще в наличии?

            связь есть. старая программа данные получает
              Цитата The-Boss @
              старая программа данные получает
              А новая - нет? На одном и том же железе? Настройка у программ полностью аналогична?
              Сообщение отредактировано: trainer -
                Цитата trainer @
                А новая - нет? На одном и том же железе? Настройка у программ полностью аналогична?

                первый пост.
                я пытаюсь считать данные с нее. В старой программе все параметры взял из ее настройки на ком-порт. Код в первом посте - ничего особенного - идут нули.
                Но в старой программе сделано разделение отображение 4х каналов (непонятно откуда берущихся) - на одном из них значения меняются. Чего собственно и мне хочется

                Добавлено
                Также через PCcom Moxa порт послушал на этих настройках - тоже самое что у меня
                  Цитата The-Boss @
                  непонятно откуда берущихся
                  Из получаемых данных. Нет?

                  Добавлено
                  Цитата The-Boss @
                  В старой программе все параметры взял из ее настройки на ком-порт.
                  Исходник настройки аналогичен или есть отличия?
                    Цитата trainer @
                    Из получаемых данных. Нет?

                    конечно


                    Цитата trainer @
                    Исходник настройки аналогичен или есть отличия?

                    исходников нет - были бы - тогда бы и проблем не было. параметры аналогичны конфигу(и ini файл и в самой программе окно) старой программы

                    Добавлено
                    завтра думаю съездить на месте "прослушать" данные с порта с разными параметрами (на всякий случай)
                      Цитата The-Boss @
                      исходников нет - были бы - тогда бы и проблем не было. параметры аналогичны конфигу(и ini файл и в самой программе окно) старой программы
                      Ааа... Ну тогда именно в настройках и может быть разница. Дизассемблируй.
                        Цитата The-Boss @
                        вязь есть. старая программа данные получает

                        Отпрортмонь старую программу и все. Делов-то.
                        И не забывай устанавливать параметры таймаутов для порта.
                          Цитата shm @
                          Отпрортмонь старую программу и все. Делов-то.

                          не пробовал. чем можно сделать?
                            Цитата The-Boss @
                            чем можно сделать?

                            Одноименной свободной маленькой программой Portmon.exe

                            Добавлено
                            Настрой сразу отображением данных в hex виде (где-то во вкладках есть), увидишь вообще весь обмен между программой и МК. Также отображаются все параметры подключения. Программа может работать удаленно, для локального подключения используй Connect Local, также выбери нужный порт (можно несколько). Странно, что ты в первый раз о ней слышишь.
                              приспособил на месте получать хоть какие то значения с контроллера
                              portmon'ом не удалось подключиться локально (даже меню Computer не было) - не доглядел наверно где то
                              попробовал перехватывать Serial Port Monitor'ом - в spm.txt пример
                              Пробовал записывать symbol из примера в первом после - 002.txt
                              Прикреплённый файлПрикреплённый файлspm.txt (2,57 Кбайт, скачиваний: 294)
                              Прикреплённый файлПрикреплённый файл002.txt (17,69 Кбайт, скачиваний: 611)
                                Цитата The-Boss @
                                portmon'ом не удалось подключиться локально (даже меню Computer не было)

                                Попробуй скачать отсюда. Вообще конечно странно, у меня всегда работала даже на самых урезанных сборках Embedded.
                                Цитата The-Boss @
                                попробовал перехватывать Serial Port Monitor'ом - в spm.txt пример

                                Да от самих-то данных толку мало, portmon выводит все параметры обмена.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0695 ]   [ 18 queries used ]   [ Generated: 18.04.24, 04:59 GMT ]