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

Палыч

Свой
  • Постов

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

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

    2

Весь контент Палыч


  1. Для отправки СМС Вы включаете режим PDU. В служебной информации PDU указываете, что текст сообщения имеет кодировку UCS2, далее идет само сообщение в указанной кодировке. К модему все это - не имеет отношения. ЗЫ. Всё текстовое сообщение - в одной кодировке, той, что указана в служебной части PDU. Если в тексте только символы из основного набора применяйте для этого сообщения семибитную кодировку, ну, а если в тексте присутствует хоть один символ кириллицы - UCS2 (для всего сообщения, и для символов из основного набора тоже).
  2. Лучше для этих целей воспользоваться программой PDUspy
  3. Что за данные? Настройки устройства? Протоколирование нажатий кнопок клавиатуры?.. Ответ: Ну, например, использовать 512 байт EEPROM. Вопрос, конечно, сформулирован очень расплывчато...
  4. "Быстро и красиво"... Хм... При отправке SMS на русском альтернативы для "PDU - UCS2" - нет. Отсюда следует и плясать.
  5. mega128+VMLAB+TTY

    В m128 UART0 имеет выводы на РЕ0-РЕ1
  6. IDA этот тип процессора - поддерживает. Но, ему (IDA) нужно немного помочь - благо это интерактивный дизассемблер. У Вас IDA какой версии? Для версии 4.7.0.830 (которая есть у меня) необходимо: -при запуске указать Disassemble a new file и выбрать дизассемблируемый hex -В окне "Load a new file" выбрать тип процессора Intel 51 series 8051 и нажать Set; убрать все галки из Options; выбрать тип файла Intel Hex object format; жмем ОК -в вывалившемся окне выбираем подходящий девайс (можно по-умолчанию) и ОК; не обращаем внимание на то, что IDA не вожет определить точку входа -создаем сегмент кода:Edit->Segments->Create segment name: code start: 0 end: оставляем, что было base: 0 class: code -в окне IDA View A находим code:0000 ставим туда курсор и жмем латинскую С (или Edit->Code) Получили НЕ бессмысленный набор команд, который еще можно поправить дополнительными командами... PS Все сказанное выше для начала дезассемблирования. Все Ваши "подсказки" будут сохранены при выходе из IDA в базе (расширение файла idb). При дальнейшей работе над дезассемблируемой программой необходимо выбрать ее (базу для дезасемблирования программы) при старте IDA двойным щелчком мыши в окне Welcome to IDA.
  7. Да, что Вы мучаетесь? Умножте float на 100...1000...10000... да преобразуйте к int (или long), а уж для целых чисел можно найти пример преобразования в BCD или самому уж написать.
  8. Для CADiLO Подскажите, пожалуйста, можно ли для определения уровня сигнала использовать значение rssi, полученное командой "AT+CSQ" ? Если - нет, то почему?
  9. Цитата из DS на m128: USART Control and Status Register A Bit 6 – TXCn: USART Transmit Complete This flag bit is set when the entire frame in the Transmit Shift Register has been shifted out and there are no new data currently present in the transmit buffer (UDRn).
  10. Выдержка из исходника - обработчик прерывания по UDRE? Обработчика прерывания по TXC - нет? TXC сбрасывается аппаратно по обработке прерывания по TXC. Если обработчика этого прерывания нет, то бит TXC нужно сбрасывать программно.
  11. TXE - это что за бит? Наверное, нужно читать - UDRE? Проблема с определением окончания передачи у меня возникала только на больших скоростях (2 Mбод). При прерываниях по UDRE за время запихивания очередного (последного в последовательности на передачу) байта иногда оказывался переданным байт из сдвигового регистра - и бит TXC оказывался установленным. Сброс ТXC после записи в UDR исправляет ситуацию.
  12. Такой команды - нет. DTMF - разбирают программно (алгоритм Гертцеля) или с помощью специальных м-с (например, MT8870).
  13. У меня тоже нет документации на m1280, но, если fuse m1280 аналогичны fuse m128, то для кварца нужно еще fuse CKOPT=0. Это, если CKSEL правильно установлены.
  14. Расчет таймера

    Это - время выполнения процедуры обработки прерывания В ImageCraft C Compiler тоже есть калькулятор настроек. Его можно запускать автономно (отдельно от IDE) avrcalc.rar
  15. Команда delay

    Был неправ! :( При unsigned int TIMER и TF при вычислении выражения TIMER-TF произайдет заем единицы из "семнадцатого" разряда и значение выражения будет верным
  16. Команда delay

    Да, долго. Бесконечно долго! Наверно, для исправления этого дефекта, лучше выполнять в прерывании if(TIMER) --TIMER а, в Delay TIMER=T; while(TIMER);//сама задержка Кроме того такая функция будет иметь погрещность отсчета времени в единицу задаваемой величины. Ой! Неправда - закончится функция Delay быстрее, чем надо!
  17. p1.4 at89s8252 in SPI master

    Думаю, что можно. Во всяком случае на AT89S53 я использовал его для других (не SPI) целей...
  18. Откуда в m16 прерывание INT4? Нет такого. И INT3 даже нет. Есть INT0,1,2... Вызываются руками: Workspace -> I/O -> I/O Atmega16 -> External_interrupt
  19. Для определения этого используют команду AT+CLCC. Результаты её работы несколько отличаются для разных операторов - например, когда абонент "вне зоны действия сети или временно недоступен".
  20. А, почему - именно российский МК? Некоторые МК от Atmel разрешены для применения даже в военной технике. Они ставятся, например, в современные российские армейские радиостанции (правда, рядом на плате - место для установки 1830ВЕ31 и ПЗУ :a14: ).
  21. Если Вас интересует именно продолжительность звонка, то, наверное, с этим совсем никак: модулей с таким сервисом я не встречал. А, вот, номер, который вызывался последним с модуля, наверное, определить можно. Для этого модуль должен поддерживать команду ATDL - Redial last telephone number used. Для определения номера необходимо будет выдать три команды: ATDL AT+CLCC ATH В ответе модуля на вторую команду будет присутствовать номер телефона
  22. Отладка в Keil-е

    Можно. Смотрите команды ASSIGN и MODE отладчика. Например: ASSIGN COM1 < SIN > SOUT MODE COM1, 19200, 0, 8, 1 Подключили USART отлаживаемого МК на порт СОМ1 и установили у него (СОМ1) скорость 19200, без четности, 8 бит данных, 1 стоповый
  23. Если Вас так уж волнует предупреждение транслятора о том, что нет возврата из функции, то можно сделать одно из двух: 1) напишите всю функцию на ассемблере (не вставкой, в файле с расширением a51) 2) выделите функцию в отдельный файл и определите как возвращающую не BYTE а - void , в файле же, где будите ее (функцию) использовать - напишите честно: BYTE receive_byte(void); О передаче параметров и возврате значений функций можно почитать в С51.pdf -> Chapter 3. Language Extensions -> Function Declarations
  24. 51й + I2C EEPROM

    Скорее всего Вы не дожидаетесь окончания микросхемой цикла записи после соответствующей команды. "При любом обращении для записи после получения посылки SP(стоп) выполняется цикл записи, длительностью не более 10мс. При обращении к микросхеме, выполняющей цикл записи, ...вместо посылки АС(подтверждение) формируется посылка NA(нет подтверждения)..." Вот на эту посылку NA(нет подтверждения) Вы, повсей видимости, и натыкаетесь.
×
×
  • Создать...