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

kojevnikov

Свой
  • Постов

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

  • Посещение

Весь контент kojevnikov


  1. STLab < U-370> (RTL) Адаптер LPT25F -> USB AM Данный переходник превращает USB-порт компьютера в порт LPT DB25 , что позволят избежать расходов по замене устаревшего принтера LPT при отсутствии у модернизированного компьютера, к которому подключается принтер, LPT-порта
  2. // Определить обработчик события таймера myTimer.Tick += new EventHandler(TimerEventProcessor); // Установить свойства объекта таймер (работа с интервалом 5 сек) myTimer.Interval = 5000; // Включение таймера myTimer.Start();
  3. В какой среде программируете для этих контроллеров?
  4. Да. Нужно. Вы не тот документ смотрели. Вот здесь все описано: Analyzing the Behavior of an Oscillator and Ensuring Good Start-up
  5. Адреса портов определены следующим образом. COM1 3F8h - 3FFh COM2 2F8h - 2FFh COM3 3E8h - 3EFh COM4 2E8h - 2EFh Или вы имели ввиду названия портов имеющихся на компьютере?
  6. Функция itoa. Ее использование не предусматривает переносимости, поскольку эта функция не определена ни в одном стандарте языка Си; тем не менее, компиляторы поддерживают ее за счет использования заголовка <stdlib.h> void itoa(int input, char *buffer, int radix) itoa принимает передаваемое целое число input и конвертирует его в число в основании корня radix. Полученное число (последовательность цифр основания radix) записывается в буфер вывода buffer. Аргумент radix определяет основание системы исчисления для input; его значение может лежать в пределах от 2 до 36. В зависимости от реализации, itoa может возвращать указатель на первый символ в буфере buffer, или может быть создана таким образом, чтобы передавать нуль-buffer, в результате чего функция возвращает длину строки, которая «будет» записана в корректный buffer.
  7. А еще вот такой. struct Struct_IntToByte { unsigned char m_ByteLo; unsigned char m_ByteHi; } int16_t num; struct Struct_IntToByte* h_IntToByte; // Получение доступа h_IntToByte = (struct Struct_IntToByte*)&num; // Использование h_IntToByte->m_ByteLo; h_IntToByte->m_ByteHi;
  8. Там маршруты надо прописывать для пакетов. см команду route
  9. Смотри в сторону API функций: CreateFileMapping, MapViewOfFile Скорость записи в файл получается очень приличная.
  10. Вас интересует как управлять этой схемой? Или хотите получить исходники написанные под эту схему? Если управление, то оно осуществляется с помощью шины данных (D0-D7), шины адреса (ADR0-ADR2). Стробирование выбора адреса регистра осуществляется с помощью выводов (RW и RD) (Схема очень не четкая мог ошибиться).
  11. Существует три основных компилятора для микроконтроллеров семейства MSP430: MSP GNU C compiler (GCC) IAR Embedded Workbench for TI MSP430 TI Code Composer Studio Integrated Development Environment Бесплатная только эта MSP GNU C compiler (GCC)
  12. Мы используем WAVECOM-ие и SIEMENS модемы. Только длина сообщения 240 байт это многовато... Надо до 160. Иначе там проблемы со склеиванием сообщений начинаются.
  13. Execution time в ИАРе

    IAR можно "скрестить" с AVR Studio. Там это все есть.
  14. Web-сервер можно поднять на отдельном компьютере. Он же будет работать с устройством по WiFi.
  15. Есть преобразователи: Преобразователь RS-232 (RS485) – Ethernet. С помошью него можно прикрутить устройство к WiFi без переделки ПО и самого устройства.
  16. Вот так попробуй. typedef unsigned char uint8_t; typedef unsigned long uint32_t; union tUnionDat { uint32_t p; float f; tUnionDat(float a) { f = a; } tUnionDat(uint32_t a) { p = a; } }; typedef struct { uint8_t type; uint8_t info[4]; tUnionDat u; } tItem; const tItem Item[] = { {2, {1,2,4,2}, (float)1.5}, {1, {2,2,4,2}, (uint32_t)10}, {2, {3,2,4,2}, (float)2.3} };
  17. Ну и делай ее глобальной. Ни каких "противопоказаний" нет. Единственное "противопоказание" следить за корректностью значения в переменной. (она же глобальная... Может быть изменена из нескольких модулей программы). Необходимо оформлять программу таким образом чтоб другие модули получали значение переменной или изменяли его с помощью функций того модуля которому "принадлежит" эта переменная. Тогда и проблемы с переносом модуля в другие программы отпадут сами собой.
  18. Извиняюсь А так? typedef struct { alt_buttons* buttons; //ссылка на массив кнопок unsigned char max_key_num; //число кнопок в клавиатуре ....... unsigned char alpha; //прозрачность клавиатуры } alt_keyboard; alt_keyboard* h_VarA; main() { // Выделяем ресурсы h_VarA = malloc(sizeof(alt_keyboard)); // Работаем с выделенными ресурсами.... // Освобождаем ресурсы free(h_VarA); // Работаем дальше... }
  19. Смысла ни какого. И так делать не надо. Просто если очень хочется... Глобальной она все равно не будет, т.к. эта переменная уничтожится при выходе из функции (если рассматриваем вариант не с функцией main). Вообще, для этих целей есть операторы new и delete. Которые позволяют контролировать выделяемые ресурсы в момент работы программы. Правильно будет так: typedef struct { alt_buttons* buttons; //ссылка на массив кнопок unsigned char max_key_num; //число кнопок в клавиатуре ....... unsigned char alpha; //прозрачность клавиатуры } alt_keyboard; keyboard* h_VarA; main() { // Выделяем ресурсы h_VarA = new alt_keyboard; // Работаем с выделенными ресурсами.... // Освобождаем ресурсы delete h_VarA; // Работаем дальше... } Преимущества перед глобальной созданной статически в том, что я сам контролирую выделенные ресурсы и в любой момент могу освободить память для размещения другой структуры.
  20. Для решения этой задачи, можно сделать так: на ножку стула внизу, наклеить тензодатчик, подключив к нему МК можно легко получить примерный вес (т.е отличить ребенка от куклы). Канал передачи данных выбирается в зависимости от финансов, можно использовать и услуги GSM (интернет и SMS), и ИК, и радиоканал. Но в любом случае стоимость и время разработки этой системы я думаю получится приличной. Проще на эти деньги ребенку нанять нянечку, которая будет с ним заниматься индивидуально, а не водить его в садик)))
  21. Вообще-то этот топик не про оператор goto, а про проектирование ПО. Оператор goto ни как не относится к пректированию, он больше относится больше к реализации. Я этим оператором никогда не пользовался, потому что еще в институте меня учили, что это правило плохого тона, а я этого понять не мог (почему плохого?). Смысл всего этого я понял намного позже, когда начал разбираться с чужой программой, которая была усыпана goto. Оператор goto снижает видимость кода, мысли частенько начинают теряться, если код большой, метка и оператор находятся далеко друг от друга. При исследовании такого кода крышу слегка срывает. Ну и с переносимостью такого кода тоже возникают проблемы. Хотя можно и на ООП написать так, что ни чего ни куда не перенесешь. Все зависит от опыта программиста... Руки у всех разные.
  22. А при чем тут запрет на movc? Тут же не было сказано, что контроллер был закрыт за чтение/запись. Вопрос стоял как считать записанную программу? У нас по такой схеме перепрограммирование контроллеров осуществлялось. Могу примерчик привести из исходников.
  23. Можно пользоваться указателями например вот так: typedef struct { alt_buttons* buttons; //ссылка на массив кнопок unsigned char max_key_num; //число кнопок в клавиатуре ....... unsigned char alpha; //прозрачность клавиатуры } alt_keyboard; void* h_VarA; void Proc1(void) { h_VarA->alpha = 123; } main() { alt_keyboard keyboard; system_init (&keyboard); h_VarA = (void*)&keyboard; Proc1(); } Но в этом случае надо следить за указателем. Чтоб к нему не было обращений, когда он еще не инициализирован или динамическая структура уже освобождена
  24. Читать эти контроллеры можно научиться. Для этого надо немножко загрузчик переделать. И свою софтинку написать для работы с ним например по UART. Я такое делал давно. Стандартными средствами нельзя. Там только контрольную сумму проверить можно записанной программы
  25. Этап проектирования при разработке ПО должен обязательно включаться при разработке довольно "сложного" программного обеспечения (определения "сложный" это понятие очень растяжимое), а так же при разработке ПО группой разработчиков. Для программы выводящей на экран слово "Hello world" и программы для управления одним светодиодом этап проектирования можно опустить))))
×
×
  • Создать...