???
Математика на уровне МГУ

Страница 1 из 4 1234 КрайняяКрайняя
Показано с 1 по 25 из 78

Тема: Скан-код POWER

  1. #1
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Скан-код POWER

    Джентльмены, кто-нить знает, какая последовательность генерируется при нажатии на комповой клаве кнопки "power"?
    Делаю инфракрасное устройство управления WinAmp-ом с функцией выключения компа. Пульт - обычный телевизорный, коих у меня ящик. Конструктивно - это переходник для клавиатуры с IR приёмником. IR часть сделал без проблем на AVR-ке, а с кодами затык.
    Пробежался по гуглу - иногда говорят о каком-то однобайтном значении.
    Посмотрел осциллоскопом - два байта нажатие и три байта отпускание.
    Причём, без повторов, поэтому точно срисовать затруднительно.
    Можно конечно, записать на аудио, и потом просмотреть в аудиоредакторе, но лениво громоздить второй комп на запись, инсталлить саундфорж и т.д.
    Поделитесь, если кто располагает инфою, плз.

  2. #2
    Заблокирован
    Регистрация
    11.03.2004
    Адрес
    Russian Federation
    Возраст
    55
    Сообщений
    3,715
    Нарушения
    0/1 (10)

    Re: Скан-код POWER

    Шаг первый.
    С помощью команды showkey получаем скан коды нащих клавиш.
    Я, в ниже проилюстрированном примере, получил скан коды клавиш Wake, Sleep, Power соответственно.


    Elvenhome root # showkey -s
    режим клавиатуры был XLATE
    нажмите на клавишу 'any' (она на системном блоке)...
    Программа завершается после 10 секунд 'покоя' (не нажимается ни одна клавиша)
    0xe0 0x63 0xe0 0xe3 //Первых две позиции - клавиша нажата, следующих две отпущена.
    0xe0 0x5f 0xe0 0xdf //аналочично.
    0xe0 0x5e 0xe0 0xde //аналогично.
    http://linuxportal.ru/entry.php/1707_0_3_0/

    Не оно?

  3. #3
    Старший инструктор Аватар для harinalex
    Регистрация
    22.12.2007
    Адрес
    UUEE
    Возраст
    60
    Сообщений
    4,236

    Re: Скан-код POWER

    Цитата Сообщение от LeonT Посмотреть сообщение
    Джентльмены, кто-нить знает, какая последовательность генерируется при нажатии на комповой клаве кнопки "power"?
    Делаю инфракрасное устройство управления WinAmp-ом с функцией выключения компа. Пульт - обычный телевизорный, коих у меня ящик. Конструктивно - это переходник для клавиатуры с IR приёмником. IR часть сделал без проблем на AVR-ке, а с кодами затык.
    Пробежался по гуглу - иногда говорят о каком-то однобайтном значении.
    Посмотрел осциллоскопом - два байта нажатие и три байта отпускание.
    Причём, без повторов, поэтому точно срисовать затруднительно.
    Можно конечно, записать на аудио, и потом просмотреть в аудиоредакторе, но лениво громоздить второй комп на запись, инсталлить саундфорж и т.д.
    Поделитесь, если кто располагает инфою, плз.
    стр 11 в этом файле (размер 400к)
    Вложения Вложения

  4. #4
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    Пасибки! Там оказывается, были возможны два варианта...
    Скорее всего, SET2 из PDF-ки. ( E0h 37h - E0h F0h 37h) поскольку в наличии именно три байта отжатия, а шоукей выдаёт только два. Первый байт - E0 удалось прочесть осциллоскопом...

    Проверю в железе - отпишусь.
    Крайний раз редактировалось LeonT; 06.11.2010 в 21:18.

  5. #5
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    ЛеонТ, а можно поподробней про это:
    IR часть сделал без проблем на AVR-ке
    Ибо я сейчас как раз на АВРке делаю приёмник-дешифратор ПДУ и... ну вообщем туго идёт пока (вот здесь часть проблем описал: http://forum.easyelectronics.ru/view...t=2775&start=0)
    Собственно скан код как раз звуковухой и писал. Проблема как теперь это всё програмно обработать, чтобы однозначно идентифицировать факт нажатия/отпускания и собственно нажатую кнопку.
    Сижу вот сейчас атмеговский мануал курю. Но он плохо курится ибо на буржуйском, а я его со словарём с трудом... Ну и плюс ассемблер с детства основательно подзабыл.
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  6. #6
    Старший инструктор Аватар для harinalex
    Регистрация
    22.12.2007
    Адрес
    UUEE
    Возраст
    60
    Сообщений
    4,236

    Re: Скан-код POWER

    Цитата Сообщение от LeonT Посмотреть сообщение
    Пасибки! Там оказывается, были возможны два варианта...
    Скорее всего, SET2 из PDF-ки. ( E0h 37h - E0h F0h 37h) поскольку в наличии именно три байта отжатия, а шоукей выдаёт только два. Первый байт - E0 удалось прочесть осциллоскопом...

    Проверю в железе - отпишусь.
    а почему так сложно выключать надо . Почему нельзя воспользоваться консольной командой shutdown ?

  7. #7
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    на АВРке делаю приёмник-дешифратор ПДУ
    О, а я думал, что один такой.
    По IR ПДУ существуют ЕМНИП готовые решения (в смысле асм.кода, надо смотреть на форумах программистов), но у меня была задача приспособить всего лишь шесть команд от завалявшегося пульта. Задачи обрабатывать отдельно нажатие, удержание, отпускание не ставил. Выбрал из кучи пульт, у которого команды удержания для каждой кнопки различны (бывают такие, где они одинаковы). Не мудрствуя лукаво, снял осциллоскопом коды в режиме "постоянно нажатая кнопка", и под их отлов сделал приёмник. Принцип прост - выход ИК сенсора завёл на INT0, и в процедуре этого прерывания, проверяю сначала соответствие заголовка посылки (он свой для каждой системы ДУ), если нет - выхожу из прерывания без результата, если да -проверяю оставшуюся часть - один ли это из шести нужных мне кодов.
    После корректного обнаружения кода удержания нужной мне кнопки пульта, генерирую код нажатия клавы, затем паузу, примерно соответствующую продолжительности нажатия на клаве, затем код отжатия, затем опять паузу. Потом выход из прерывания и опять отлов кнопок на пульте.
    В результате должны примерно получаться или отдельные нажатия, или подобие серии нажатий. Удерживать не выйдет, но этого мне пока не нужно.

    PS ИК сенсор у меня TSOP48, поэтому упомянутых по ссылке проблем не было. Он малочувствителен к шумам и наводкам, а на выход выдаёт сформированный ТТЛ сигнал. Т.е вопрос фильтрации шумов вообще не стоит.

    PPS когда-то у меня был случай, когда помехи ИК ДУ шли от "энергосберегающей" лампы. У низ как раз частота преобразования 30...40 кГц, и может совпадать с частотой заполнения импульсов ДУ. А поскольку амплитуда и частота излучения лампы модулирована частотой сети, то 50 или 100 герцовая помеха вполне может пролезть через фильтр ИК сенсора.


    а почему так сложно выключать надо
    Ну, хоцца сваять чисто аппаратную примочку - типа переходника.
    Крайний раз редактировалось LeonT; 07.11.2010 в 01:21.

  8. #8
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Спасибо за разъяснения. Буду дальше думать и пробовать. Просто пока любой алгоритм попробовать не на чем - индикации нет, а мерять после каждого нажатия ножки вольтметром - проще застрелиться. Вот спаял линейку из восьми диодов, чтобы можно было спихивать результат дешифрации в память или регистр и побайтно выводить на этот "монитор"
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  9. #9
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    Всегда пожалста. Ещё обращаю ваше внимание на необязательность знать/вычислять задуманные разработчиками коды команд из спецификаций интерфейса. Поскольку кодирование в системах ИКДУ довольно своеобразное, это лишняя головная боль. Просто снимите сигналограммы нужных кнопок, наложите на них такт, и получите псевдокод, с которым и оперируйте в дальнейшем.

    Кроме того, необходимо довольно точно измерить и выдержать частоту "выборок" по которым будет происходить дешифрация. Посему начните с распознавания коротких фрагментов кодов, для начала - первых нескольких битов. Потом добавляйте длину фрагмента и корректируйте частоту.

    линейку из восьми диодов
    вам проще, а у меня маловыводная Tiny25, тут вообще вся надежда только на осциллоскоп.

  10. #10
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Цитата Сообщение от LeonT Посмотреть сообщение
    Всегда пожалста. Ещё обращаю ваше внимание на необязательность знать/вычислять задуманные разработчиками коды команд из спецификаций интерфейса. Поскольку кодирование в системах ИКДУ довольно своеобразное, это лишняя головная боль. Просто снимите сигналограммы нужных кнопок, наложите на них такт, и получите псевдокод, с которым и оперируйте в дальнейшем.

    Кроме того, необходимо довольно точно измерить и выдержать частоту "выборок" по которым будет происходить дешифрация. Посему начните с распознавания коротких фрагментов кодов, для начала - первых нескольких битов. Потом добавляйте длину фрагмента и корректируйте частоту.

    вам проще, а у меня маловыводная Tiny25, тут вообще вся надежда только на осциллоскоп.
    Прости, а как понять "наложите на них такт" ? А насчёт нужных кнопок... даже незнаю, у меня их много задействовано будет, минимум 17, может и больше.
    А насчёт проще, это с какой стороны посмотреть. Во первых у меня нет осциолоскопа Во вторых, в родном Магнитогорске в радиомагазинах (ага во всех двух) просто нет никаких AVRок. Хорошо так случилось, что когда я это всё затеял, по делам нужно было в Челябинск съездить. Там и купил. Так что сейчас у меня на руках AT16A-PU (40 ножек аж) и AT8A-AU (мелкая под smd пайку). И если вдруг спалю - то за новой 300 км в одну сторону ехать
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  11. #11
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Скан-код POWER

    ZMIY, если пульт отдает протокол NEC, то вот http://coreyl.wordpress.com/projects/nec-ir-decoder/ практически готовый сишный модуль обработки сырых данных. Я на его основе делал себе управление цифровым транспортом. Прикрутить дешифратор и мелочи по вкусу. Модуль рабочий, только там в комменте-дополнении вроде типичная ошибка (в теле if сравнение вместо присваивания). Меги8 с кварцем 16 МГц вполне хватает с запасом, можно и на внутреннем RC такте делать.

    А вот тут http://altor1.narod.ru/Articles/IRC.pdf отличное описание протоколов ИК ДУ с таймингами. В конце статьи есть словесный аолгоритм обработки - можно прямо брать и писать код.
    ...чего уж тигру лишняя полосочка... (© - не помню)

  12. #12
    Офицер Форума Аватар для Zorge
    Регистрация
    06.03.2004
    Адрес
    Байконур
    Возраст
    43
    Сообщений
    2,893
    Images
    10

    Re: Скан-код POWER

    А можно я вставлю свои пять копеек?

    Есть такая штука, как E-LAB AvrCo http://www.e-lab.de/index_en.html
    У этой штуки есть бесплатная Lite версия - AVRсо mega8.
    Работает только с ATmega8 и ATmega88, но для этих целей - вполне достаточно.

    Ну а дальше - в этом E-LAB есть готовая библиотека по приему с ИК-пульта в кодировке RC5, а также не менее готовая библиотека для эмуляции шины I2C, которая используется в клавиатуре. Главное, объявить AVR-ку ведомым шины (slave) - и все будет работать.
    Язык Паскаль (немного нестандартный диалект, правда), никакой астмы, минимум кода.
    Программа будет выглядеть примерно так:

    Код:
    var
      RC5a, RC5d: byte;
    
    procedure KeyPress(w: word);
    begin
       SPIout(Lo(w));
       SPIout(Hi(w));
    end;
    begin
      // тут всякая инициализация
      while true do
         if RC5recv(RC5a, RC5d) then
           if (RC5a = $A1) and (RC5d = $01) then KeyPress($0215)
           elsif (RC5a = $A2) and (RC5d = $02) then KeyPress($0147)
           elsif ...
           ....
           endif;
         endif;
      end_while;
    end.
    При этом эта штука будет работать с любым пультом стандарта RC5, и прикидываться обычной AT-клавиатурой на разъеме PS/2.
    Естественно, нужно будет написать обработчики по приему данных от компьютера (реакция на сигнал RESET, например)
    Ну и коды команд с пульта и скан-коды поставить реальные, а не то что я набросал "от балды".
    Фотодиод приемника можно цеплять на любую свободную ножку контроллера, главное указать это при подключении библиотеки.
    Разъем для подключения вместо клавиатуры - на ножки SDA и SCL соответственно DATA и CLOCK.

    P.S. Библиотека RC5-передатчика и сканируемой матрицы кнопок там тоже есть, так что если сильно захочется можно и свой пульт сваять.
    Крайний раз редактировалось Zorge; 07.11.2010 в 18:14.
    // 地辟于丑 - Земля рождена в час Быка

  13. #13
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Спасибо за советы. Но... тут дело вот в чём.
    Во первых протокол (судя по анализу "осциолограммы") похож на RC5. Но внимательно изучив описание RC5 и сверив с тем что имею - похоже, но в сей стандарт не вписывается. Это во первых. Во вторых имея перед глазами живую команду, сел и стал думать как её можно опознать. Придумал. Потом стал думать как составить алгоритм опознания. Придумал. Потом учёл всякие подводные камни и тонкости. Вообщем сейчас есть помехоустойчивый алгоритм дешифрования.
    Дело за малым закатать его в ассемблере. Вот тут пока затык, ибо с детства я его основательно забыл, да и ассемблер для микроконтроллера несколько отличается от ассемблера для компа.
    Короче сейчас буду сидеть, обложившись справочниками, писать код.
    Как накатаю буду пробовать.
    Готовые листинги/прошивки не хочу использовать по двум причинам. Первая - просто интересно самому (да и алгоритм получился достаточно простой и красивый). Вторая - обучение. Ведь расшифровкой сигналов с пульта дело не заканчивается. Нужно потом принимать решения что делать с этими нажатиями, управлять исполнительными миханизмами (со своими ограничениями) и много чего ещё. Короче основную программу я с Интернета не скачаю, её точно придётся писать самому. Поэтому надо осваиваться с ассемблером, чтобы дальше проще было.
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  14. #14
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    как понять "наложите на них такт" ?
    в данном случае, это значит выбрать такие промежутки между выборками входного сигнала, при которых, он может быть полностью идентифицирован по этим выборкам.
    Не обращаем внимания на то, что первая выборка - старт-бит, а последняя - возможно, стоп-бит, и на то, что кодировка восьмибитного числа в ИК кодах может занимать вовсе не 8 бит.
    Например код, изображённый на рисунке, можем тупо представить как ADAh и работать с этим значением, несмотря на то, что оно совершенно не соответствует передаваемому коду.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	nfrn.GIF 
Просмотров:	66 
Размер:	4.6 Кб 
ID:	120691  

  15. #15
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Скан-код POWER

    1. Зачем (ну зачем?) тебе париться с ассемблером, когда Си вполне хватает даже при тактовой 8 МГЦ и тактировании от внутреннего RC-генератора? AVR-Studio бесплатна, WinAVR тоже, библиотек миллион.
    2. Если есть проблема с протоколом, настоятельно рекомендую изучить пдф-ку по моей второй ссылке. В неё сведены данные по большинству протоколов и временнЫми интервалами преамбул и посылок. Написана очень просто и читается влёт.

    Это как раз тот случай, когда "Лучше день потерять и за 5 минут долететь" ((С) Крылья, ноги и хвосты)

    Добавлено. Я, собственно, не уговариваю (да и не являюсь специалистом, так.... кое-какие навыки остались) - просто непонятны причины упорства с ассемблером. Ну понимаю 20 лет назад (дохлое целевое железо, средства разработки малодоступны), понимаю еще, когда жесткие временнЫе рамки циклов - но в приемнике стандартных протоколов ДУ... не понимаю.
    ...чего уж тигру лишняя полосочка... (© - не помню)

  16. #16
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    Ну, что касаемо меня, то просто привык к Асму. Не знать, что лежит в каком регистре, как-то неуютно. Да и в малышах с 1..2 К флэша, на языке высокого уровня ПМСМ не особо развернёшься. Опять же, быстродействие ассемлерного кода повыше, хоть это и редко бывает актуальным. Но с ростом объёмов флеша и скоростей процессоров, поголовный переход на более высокоуровневые языки конечно, неизбежен. А жаль...

    Вспоминаю, как в детстве, не зная Ассемблера, писал программки для Z-80 непосредственно в машинных кодах: ... 21 00 3Е ....

  17. #17
    Офицер Форума Аватар для Zorge
    Регистрация
    06.03.2004
    Адрес
    Байконур
    Возраст
    43
    Сообщений
    2,893
    Images
    10

    Re: Скан-код POWER

    Цитата Сообщение от LeonT Посмотреть сообщение
    Ну, что касаемо меня, то просто привык к Асму. Не знать, что лежит в каком регистре, как-то неуютно. Да и в малышах с 1..2 К флэша, на языке высокого уровня ПМСМ не особо развернёшься.
    Не знаю, не знаю. По-моему современные компиляторы по части эффективности кода если не превзошли "гуру ассемблера", то уж простого чайника - точно.
    Скрытый текст:

    У меня тут железяка трудится, делает следующее:
    - Измеряет два канала переменного напряжения 220 вольт. Оценивает невыход напряжения за пределы допустимого, а также появление резких скачков напряжения.
    - Измеряет температуру воздуха в помещении.
    - Бдит состояние пожарных датчиков и контактных датчиков сигнализации на окнах и дверях.
    - Когда центральный компьютер дозванивается до ее модема, делится запрошенной информацией через UART (модем подключен через RS-232).
    - По команде с центрального компьютера может выключить или включить кондиционер (обычный такой, БК-2000) посредством его обесточивания или подачи питания через бистабильное реле.
    - Выводит вышеперечисленную информацию на ЖК-экран, а также показывает дату и время (которые получает с системных часов центрального компьютера).

    Причем половину кода занимает логика распознавания длинных команд типа 'get temperature' или 'set relay off', и выдачи на них ответов вида 'temperature is 26.5 centigrades' или незамысловатого 'ok'. Ну или злорадного 'bad command' или 'bad parameter 2'. Оно еще и backspace, стрелки и delete правильно обрабатывает (при исправлении команды).

    И все это помещается в 14 килобайт кода ATmega16. В основном все на Паскале.
    Ассемблер - только для измерения переменки trueRMS и отслеживания скачков напряжения.


    Цитата Сообщение от LeonT Посмотреть сообщение
    Вспоминаю, как в детстве, не зная Ассемблера, писал программки для Z-80 непосредственно в машинных кодах: ... 21 00 3Е ....
    На пятом курсе института в машинных кодах программировал x86 (был у нас на лабораторках по микропроцессорным системам такой стенд).
    Ох и веселое это занятие - машинные коды для CISC-процессора. Одной только команды mov десятка два разных вариантов, и все разной длинны. А во что в таких условиях превращается расчет адреса перехода...
    Крайний раз редактировалось Zorge; 07.11.2010 в 23:21.
    // 地辟于丑 - Земля рождена в час Быка

  18. #18
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Цитата Сообщение от LeonT Посмотреть сообщение
    в данном случае, это значит выбрать такие промежутки между выборками входного сигнала, при которых, он может быть полностью идентифицирован по этим выборкам.
    Не обращаем внимания на то, что первая выборка - старт-бит, а последняя - возможно, стоп-бит, и на то, что кодировка восьмибитного числа в ИК кодах может занимать вовсе не 8 бит.
    Например код, изображённый на рисунке, можем тупо представить как ADAh и работать с этим значением, несмотря на то, что оно совершенно не соответствует передаваемому коду.
    "У дураков мысли сходятся" (с) поговорка.
    Ну собственно именно такой алгоритм я и придумал
    Цитата Сообщение от LeonT Посмотреть сообщение
    Вспоминаю, как в детстве, не зная Ассемблера, писал программки для Z-80 непосредственно в машинных кодах: ... 21 00 3Е ....
    Коллега !
    Именно тогда и зародилась любовь к ассемблеру. А сформировалась она когда я о нём впервые узнал и узнал, что ассемблер это те самы машинные коды и есть, только в виде слов
    Цитата Сообщение от USSR_Rik Посмотреть сообщение
    1. Зачем (ну зачем?) тебе париться с ассемблером, когда Си вполне хватает
    Да не могу я в Си ! Не понимаю я этот дурацкий язык ! Сколько раз порывался его изучить, столько изматерившись бросал. Если уж мне нужен высокоуровневый язык программирования, я уж лучше на Паскале. А Паскаль с ассемблерными вставками - так вообще на мой взгляд идеальная вещь.
    Цитата Сообщение от USSR_Rik Посмотреть сообщение
    Если есть проблема с протоколом, настоятельно рекомендую изучить пдф-ку по моей второй ссылке. В неё сведены данные по большинству протоколов и временнЫми интервалами преамбул и посылок. Написана очень просто и читается влёт.
    Да прочитал я её и ещё с десяток подобных. Я уже этот протокол наизусть почти знаю. Проблема в том, что я могу вручную его расшифровать, а надо не мне, надо контроллеру объяснить как его расшифровывать. Т.е. прогу написать. Дошёл до того, что не зная английского атмеловский документ с описанием алгоритма дешифровки со словарём прочитал. И понял, что это блин черезчур сложно и нафик не нужно. Сел и придумал свой алгоритм - такойже как до меня придумал LeonT. Сейчас вот потихоньку сижу ассемблер по новой изучаю Засада даже не столько в ассемблере, сколько в том, что на каждом шагу приходится особенности контроллера учитывать, попутно узнаю о его архитектуре подробности которые пригодятся и в будущем. Цель то не только в том чтобы заиметь готовое устройство, но и в том чтобы вообще научиться электронике, схемотехнике и программированию. Планов то вагон, а если тупо копипастить схемы и прошивки из Инета, то мало чему научусь и ничего своего сваять не смогу. Так что сейчас тяжело, голова пухнет, но через недельку-другую освоюсь и будет куда проще.
    Поэтому тут я согласен:
    Цитата Сообщение от USSR_Rik Посмотреть сообщение
    Это как раз тот случай, когда "Лучше день потерять и за 5 минут долететь" ((С) Крылья, ноги и хвосты)
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  19. #19
    Офицер Форума Аватар для Zorge
    Регистрация
    06.03.2004
    Адрес
    Байконур
    Возраст
    43
    Сообщений
    2,893
    Images
    10

    Re: Скан-код POWER

    Цитата Сообщение от ZMIY Посмотреть сообщение
    Да не могу я в Си ! Не понимаю я этот дурацкий язык ! Сколько раз порывался его изучить, столько изматерившись бросал. Если уж мне нужен высокоуровневый язык программирования, я уж лучше на Паскале. А Паскаль с ассемблерными вставками - так вообще на мой взгляд идеальная вещь.
    Аналогично. Засим E-LAB AvrCo и пользуюсь.
    Как раз получается Паскаль с ассемблерными вставками.

    Никто не мешает в учебных целях не использовать штатные библиотеки, а написать свои обработчики для конкретных железяк.
    Ну а если "нада" и "срочна" - накидал стандартных библиотек - и вперед.
    // 地辟于丑 - Земля рождена в час Быка

  20. #20
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    на каждом шагу приходится особенности контроллера учитывать
    "Эт точно"(С) т.Сухов... Самое обидное, что не успеваешь закончить изучение одного МК и "вкусить плодов знания", как его снимают с производства, и выпускают на замену новый, со своими нюансами, которые приходится изучать заново.
    Так что коллега, спрашивайте если будут вопросы. В личке, или в этой теме (всё равно, благодаря коллегам, ответ на главный вопрос уже получен, и она утратила актуальность). По крайней мере тем, что уже удалось понять, поделимся.

  21. #21
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Скан-код POWER

    Цитата Сообщение от ZMIY Посмотреть сообщение
    Именно тогда и зародилась любовь к ассемблеру. А сформировалась она когда я о нём впервые узнал и узнал, что ассемблер это те самы машинные коды и есть, только в виде слов
    Дык и я с ассемблера начинал, только давно это было. Аксакалы может помнят еще машинки БК-0010 (система команд PDP-11). И продолжал я тоже Паскалем... потом забросил всё.

    Но писать подобные программы сейчас на ассемблере можно либо из чистой любви к искусству, либо для тренировки. Если же цель получить работающий продукт за разумное время... То же самое касается и использования/неиспользования готовых библиотек. Ассемблер для таких задач не нужен. Знание архитектуры контроллера - нужно обязательно в любом случае. Не нравится С - есть Паскаль, есть прога, которую Zorgeподсказал.

    Я уже этот протокол наизусть почти знаю. Проблема в том, что я могу вручную его расшифровать, а надо не мне, надо контроллеру объяснить как его расшифровывать.
    Значит, проблема не в языке программирования.

    Повторюсь, это не нравоучения, я на них права не имею. Просто я на разных форумах насмотрелся на аналогичные ситуации - на эти грабли не наступал только ленивый.
    ...чего уж тигру лишняя полосочка... (© - не помню)

  22. #22
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    Написал тестовую программу (ну чтобы убедится что всё работает как задумано).
    Она должна:
    - при старте зажечь светодиоды
    - перейти к циклу опроса кнопки
    - гонять цикл, пока кнопка не нажата
    - как нажата переключить светодиоды в инверсное положение (т.е. включить или выключить, в зависимости от того, что на текущий момент)
    - Уйти на подпрограмму ожидания (чтобы дребезг контакта исключить)
    - В подпрограмме ожидания включается таймер и гоняется цикл, пока не натикает 1 секунда (на самом деле для устранения дребезга столько не нужно, но для простоты отладки сделал секунду)
    - После возврата опять начинается цикл опроса кнопки.

    Или то же, но кратко - включились после старта светодиоды. И горят пока кнопку не нажмёшь. Нажал - потухли, ещё раз нажал - опять включились и так до бесконечности.

    Так вот, это так должно быть ! А на самом деле, после включения они начинают мигать со скоростью 1 раз в секунду. Если нажать на кнопку и держать - состояние переключается и фиксируется. При отпускании - состояние переключается и они опять погнали мигать.
    Что за фигня не могу понять, при пошаговом выполнении в AVR-Studio, всё чётко работает как и задумано, а в живом контролере такая вот фигня

    UPD: Всё, нашлась бага.
    Крайний раз редактировалось ZMIY; 09.11.2010 в 15:07.
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

  23. #23
    Офицер Форума Аватар для Zorge
    Регистрация
    06.03.2004
    Адрес
    Байконур
    Возраст
    43
    Сообщений
    2,893
    Images
    10

    Re: Скан-код POWER

    Цитата Сообщение от ZMIY Посмотреть сообщение
    UPD: Всё, нашлась бага.
    Есть одна умная софтинка. Proteus называется. Лично я пользуюсь версией 7.7. Восьмерка, пока, говорят, бажная.

    Ну так вот что в ней можно сделать:
    - Нарисовать схемку, в которой участвует микроконтроллер со всеми свистелками: датчиками, внешним АЦП-ЦАП, памятью, экраном, светодиодами, подключением виртуального RS-232 или USB (причем RS-232 можно вообще вывести в соответствии с реальным COM-портом, и подцепить к нему железку, с которой контроллер должен будет общаться) и т.д и т.п.
    - Откомпилировать программу микроконтроллера в любимом компиляторе и на любимом языке, и "скормить" получившуюся прошивку виртуальному контроллеру в схеме.
    - Запустить все это на исполнение и проверить что называется "как оно работать будет".
    Поддерживает AvrStudio assembler и WinAVR С с отладкой по исходному коду.

    Вот так, например, выглядит прототип одной железяки, которую я ваяю "для себя". Это по идее должна быть погодная станция с измерением температуры в помещении и на улице, а также влажности воздуха и атмосферного давления.
    Прошивка тестовая - отлаживаю общение с SHT11 (датчик влажности и температуры, на схеме U2) и с экраном - программирование знакогенератора.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Simul2.png 
Просмотров:	91 
Размер:	76.3 Кб 
ID:	120789  
    Крайний раз редактировалось Zorge; 09.11.2010 в 18:21.
    // 地辟于丑 - Земля рождена в час Быка

  24. #24
    Механик
    Регистрация
    20.03.2005
    Адрес
    Харьков - Нижний Новгород
    Сообщений
    4,325

    Re: Скан-код POWER

    Proteus
    Не, ну так неинтересно... Это всё равно, что нанимать человека, чтобы он вместо вас разгадывал кроссворды.

  25. #25
    Старший инструктор Аватар для ZMIY
    Регистрация
    28.07.2007
    Адрес
    Магнитогорск
    Возраст
    48
    Сообщений
    3,142

    Re: Скан-код POWER

    - Uniprof
    - AVR Studio
    - Ассемблер
    - Over 9000 всяких pdf-фов справочных
    - Over 9000 всяких Интернет страниц в Избраном с электронно-программерской тематикой
    - Виндовый калькулятор в кои то веки в инженерный режим переключил
    - И много много думал.

    Уже голова просто не в состоянии изучить ещё одну прогу (хоть и нужную).
    Потом, как всё в голове уляжется по полочкам, поставлю Proteus и буду разбираться в нём. Сейчас не могу - мозг взорван
    "У пилота есть работа - он летает самолёт" (с) М/Ф Смешарики
    Ник в WoT: Rulevoy

Страница 1 из 4 1234 КрайняяКрайняя

Ваши права

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