Мигрировать либу

Тема в разделе "Закажу проект", создана пользователем Patriot, 25 май 2018.

  1. Patriot

    Patriot Нерд

    Есть прошивка для МК pic16f690: считывание емкостной кнопки. Нужно доработать и добавить библиотеку Modbus RTU от Ардуино в эту прошивку: заменить Software/Hardware-Serial функции на PIC'овские (SPBRG, TXIF, TXSTA и т.д.), реализовать функцию millis(), и другие небольшие правки. Библиотеку можно глянуть тут:
    https://github.com/smarmengol/Modbus-Master-Slave-for-Arduino/blob/master/ModbusRtu.h

    Из трудностей разве что уже занятый таймер 0.
    Оплата на карту.
     
  2. Rassamaha78

    Rassamaha78 Гик

    Прошивка то с исходниками ? на каком языке писанная ?
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Это называется надо написать заново
     
  4. ostrov

    ostrov Гуру

    Да, заново проще.
     
  5. Rassamaha78

    Rassamaha78 Гик

    Тут надо выяснить процентное соотношение между:
    и
    Сдаётся мне что код библы весит в разы больше ) и правильнее будет портировать библу, а уже к ней добавить работу с кнопкой.

    Ну и вопрос по языку и среде разработке остаётся открытым.
     
  6. Patriot

    Patriot Нерд

    Язык C++. на либу выше давал ссылку, она простая. Прошивку считывания кнопки скину сегодня через пару часиков. Там по сути одна функция readButton в цикле. Но она на прерываниях а я в них вообще не шарю. А из-за этих прерываний не удается нормально писать в TXIF - не знаю точно из-за чего, но есть подозрение, что меняется скорость МК, отсюда и скорость порта пляшет туда-сюда.
     
  7. Rassamaha78

    Rassamaha78 Гик

    Вам принципиально нужны исходники или устроит просто рабочая прошивка ? У меня есть рабочая Modbus под PIC, но переписывать на С++ просто лень, мне проще будет допилить считывание кнопки.
     
  8. ZAZ-965

    ZAZ-965 Гуру

    А под 16Fxx PIC есть С++ компилятор?
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Есть несколько.Микро Си например.Только вот PIC уродские от рождения.AVR значительно лучше.
     
  10. ZAZ-965

    ZAZ-965 Гуру

    Пользуюсь и MikroС и HI-TECH C - но они ANSI C. Я начинал с PIC16F84, это как первая любовь - недостатков не замечал.
     
  11. Patriot

    Patriot Нерд

    Да, ошибся, не C++, а просто C. Не обратил внимания:) Компилятор XC8 использую. Вот репозиторий: https://bitbucket.org/syamskoy/livolo-modbus/src/master/

    avr мне тоже больше нравится, но сначала хочется попробовать через pic сделать. Не получится - буду проектировать все через avr.
     
  12. Patriot

    Patriot Нерд

    Думаю да, нужно на C, что бы можно было редактировать прошивку под нужды не прибегая к сторонней помощи, базовые знания какие-то есть для простых вещей:) Да и судя по коду считывания кнопки там не все так просто)
     
  13. Airbus

    Airbus Радиохулиган Модератор

    Ещё одна Лаба?Или курсовая?Или Диплом?
     
  14. Patriot

    Patriot Нерд

    Nope, сенсорный выключатель livolo. Хочу проапгрейдить до Modbus :)
    [​IMG]

    [​IMG]
     
  15. smart_pic

    smart_pic Гик

    Если нужно в уже существующий девайс добавить функционал - это считай что заново все разработать. Тем более что нет ни исходников ни схем.
    Начать нужно с составления схемы электрической принципиальной (устроит и функциональная когда известно какие пины МК за что отвечают). А потом поняв какие ресурсы доступны для данной схемы включения МК писать софт.
    Для выполнения работ нужно 2-3 таких кнопки (при составлении схемы некоторые схемы придется подвергнуть раборке и отпайке некоторых деталей), наличие четкого ТЗ что получить на выходе и финансовые возможности.
    Про С++ точно придется забыть , С -под вопросом, а все писать на ASM, так как PIC16.
    PIC16 и ASM для него знаю отлично, так что пишите.
     
    Airbus нравится это.
  16. Patriot

    Patriot Нерд

    Ничего вышеперечисленного делать не надо. Прошивка по ссылке выше - полностью рабочая, если закомментировать modbus. Выключатель прекрасно работает. Вывод modbus надо сделать на стандартные пины pic16f690. Пин для DE/RE указывается в коде явно. Физически выключатель не нужен - там нет ничего, что может понадобится. В нем только сам МК, и два резистора на металическую планку - самая простая реализация емкостного сенсора. Все остальное - это силовая часть 220В -> 12В -> 3В, которая выкинута за ненадобностью. Какие пины задействованы для датчика - так же можно посмотреть в исходнике выше.