Вод так не ругается. Так правильно аль нет? #define R24V 6 // #define R48V 4 // #define R96V 7 // #define R192V 5 //
PORTA|=0<<R24V||1<<R24V||1<<R96V||0<<R192V;
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Да, я , понял спасибо. Но у меня таких проблем с полным кодом - разбираться и разбираться. Все дело в том что я сам пишу на ассемблере. Человек который мне писал программу на CVAVR умер. И мне теперь приходится разбираться с кодом и переносить его в AStudio т.к. CVAVR рабочего у меня нет. Вот такие проблемы.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Ну если человек знаком с ассемблером, то чем трактовать эти взбрыки разных версий компиляторов - не проще ли переписать на асм абсолютно четко прописанный алгоритм, т.е. поработать "живым компилятором" ?
Я переписал бы . Но меня пугает одно в этом коде, это обработка CRC16 для ModBus RTU. Я так и не нашел внятного объяснения как подсчитать CRC16 на ассемблере.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Если табличный метод не пугает (512 байт таблица), могу дать готовый вариант ( как раз делалось и работало на Modbus RTU ). По бестабличному методу когда-то давно пробовал, но что-то результаты отличались, видимо, неправильно понимал алгоритм. Если переписать с Си на асм, 512 "лишних" байт флеши, думаю, появятся. СпойлерПредвижу возмущенный гул Сишников. Но что поделать - остаюсь при мнении, что писать для небольшого камня на Си - это пахать дачный участок однокорпусным плугом, прицепленным к трактору Беларус.
_________________
Последний раз редактировалось Jack_A Ср май 24, 2017 15:16:35, всего редактировалось 1 раз.
писать для небольшого камня на Си - это пахать дачный участок однокорпусным плугом, прицепленным к трактору Беларус
нееееее в этом есть особое удовольствие! когда на тини13 работает сишный код, например, "лампы настроения", аналоги которого в интернете все на меге8 сделаны - это ли не оргазменноть?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Добавлено after 1 minute 18 seconds: Решился переписать код на ASM. Заодно и с кодом разберусь.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Jack_A Спасибо выручил все работает. С кодом разобрался.
Добавлено after 5 minutes 35 seconds: Есть еще вопрос Почему так все работает lds r16,rx_buffer cp r16,r10 brne Error_ID а, так нет lds r16,rx_buffer lds r17,Modbus_ID cp r16,r17 brne Error_ID
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Рецепт, как переползти с асма на си. Скачиваем книги по си. Читаем. Не понимаем, делаем паузу. Опять читаем. Что то начинаем понимать. Начинаем пробовать. Притом пробуем переносить наработки на асме. Так постепенно начнет получаться. Главное, отучиваться от наследия асма. Мы теперь оперируем "объектами". Но знание асма помогает понять что там компилятор накомпилировал. И миримся с тем, что на си выхлоп объемнее, чем на асме.
Вопрос, наверно, ко мне ? И что значит "не работает" ? Не компилируется? Или компилится, но работаeт не так? В первом коде не знаю, что загружено в r10. Во втором: я так понимаю, дивайс принял пакет и хочет узнать - ему ли эта мессага адресована. В таком случае, он сравнивает со своим ID, который константа, потому должно д.быть:
Код:
ldi r17,Modbus_ID
или еще проще - вместо последних двух - одна команда :
Дело в том что в первом варианте я сравниваю полученный ID с сохраненным ID в r10, а, во втором я свой ID сохранил в RAM и пытаюсь сравнить. В первом все отлично, а во втором постоянный косяк.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Не понимаю. Если этот дивайс - слейв, то он имеет свой физический адрес - перемычками, DIP-переключателями или записью в EEPROM заданный. И куда его считывать для сравнения - в r10 или r17 - абсолютно безразлично. Телепатия мне подсказывает, что возможная причина косяка - портится r17 в прерывании из-за криво написанного обработчика. Иначе - влияние кометы Галея.
Не понимаю. Если этот дивайс - слейв, то он имеет свой физический адрес - перемычками, DIP-переключателями или записью в EEPROM заданный. И куда его считывать для сравнения - в r10 или r17 - абсолютно безразлично. Телепатия мне подсказывает, что возможная причина косяка - портится r17 в прерывании из-за криво написанного обработчика. Иначе - влияние кометы Галея.
Видимо реально глюк. Надо попробовать в другой версии программы.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Эта команда сравнивает с константой, а та - с переменной, расположенной то тому адресу
Ясно дело. Но при первом подходе ID был бы прописан во флеш-памяти прграмм, что, конечно, было бы абсурдом - для каждого экземпляра прибора - свой экземпляр прошивки.
Я пробовал запретить прерывания-та же фигня. Пробовал указать в Z адрес и скидывать в R16. В общем все перепробовал. Работает только если при старте программы ID сохраняю в регистре общего назначения.
_________________ Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник". Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения