Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс ноя 30, 2014 14:46:00
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Хорошая игрушка для тех, кто не хочет париться с программированием и нужно создать быстро и разово что-то простенькое. Кстати, а почему модуль, подключенный к АЦП перед множителем, назвается IntToString ? Это же - перевод в строку, а не в вещественное число. И каким образом потом эта строка умножилась на коэффициент ?
Что то не как не разберусь как этот конфигуратор зарегистрировать
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи Деньги webmoney, kivi, сбербанк
IntToSingl - преобразование целого числа в вещественное. Single - вещественное число одинарной точности (4 байта) Можно и не регистрироваться, просто обнови Configurator и HR_AVR. Исходный ассемблерный код любого блока доступен через меню вызванным над блоком.
Последний раз редактировалось Lihouzov Вс ноя 30, 2014 16:25:18, всего редактировалось 1 раз.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
вроде разобрался с программой маленько. В принципе меня заинтересовала эта идея. Сделал все по вашему проекту но не хочет компилировать фаил прошивки Спойлер
ну и при открытии проекта выдает Спойлер если использовать вывод на индикатор через LCD_word то все работает. Очевидно проблема в IntToSingl
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи Деньги webmoney, kivi, сбербанк
Последний раз редактировалось xkp Вс ноя 30, 2014 20:47:43, всего редактировалось 1 раз.
Прикольно. Просто, удобно... Критиковать не буду, т.к. сам такое не смогу сделать. ) Однозначно плюс.
Но! Не много ли для ассемблера 600 Байт, чтобы помигать одним светодиодом???? С учетом того, что у меня АТтини13 с 1 кБайтом флеша... А я хочу туда еще много чего напихать.... У меня в нее программка перехвата ИК пульта с NЕC-протоколом (урезанным) и управление Н-мостом мотора заняла в районе 300-400 Байт на ассемблере.
//Размер описания FDB блока 4 байта //1 байт- вход S //1 байт- вход R //1 байт- выход //1 байт- начальное состояние //Оперативная память 1 байт //1 байт состояние триггера
FBD15_init: ADIW YL, 3 //пропускаем первые три байта конфигурации rcall Read_cfg //Читаем начальное состояние st X+, Addr_Data //Сохраняем начальное состояние ret //Окончание инициализации блока
FBD15_run: //======== Читаем данные блока ========= rcall Read_cfg_Load_Uz1 //вход S rcall Read_cfg_Load_Uz2 //вход R ld A, X //текущее состояние триггера //============= Логика работы FBD блока ==================
and Uz1L, One //and sbrc UZ1L, 0 //Проверка 1 на S mov A, One //Устанавливаем тригер and Uz2L, One //and sbrc UZ2L, 0 //Проверка 1 на R mov A, Zero //Сбрасываем тригер mov Uz1L, A //Копируем текущее состояние //============= Сохраняем результат ================== st X+, A rcall Read_cfg_Save_Uz1 //Сохраняем результат ADIW YL, 1 //пропускаем байт конфигурации ret;
у меня был припадок, во время которого я пытался разработать микро-ПЛК на AVR с простейшим вводом блок-схем. есть теоретические проработки псевдоязыка, которым описывается блок-схема. интерпретацией этого языка по моей задумке должен был заниматься AVR, что в итоге давало достаточно низкое быстродействие (порядка 1000 прогонов главного цикла в секунду) - ваш подход с компиляцией на ББ позволит существенно увеличить быстродействие. не знаю, будут ли полезны мои наработки, но если есть желание с ними ознакомиться - милости прошу в личку.
идею использовать ассемблер поддерживаю процентов на 40 - на остальные 60 я сторонник применения в подобной системе Си.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Могу взяться за код написания подпрограммы для 7-ми сегментников. 1. Сколько сегментов? 2. Выходы: общий/сегменты GND/Vcc, GND/GND, Vcc/GND Vcc/Vcc делать с переключением в ПП или разные ПП писать под них? 3. Какой вид ввода информации? Отдельные для каждого сегмента числа или сразу несколько знаков?
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи Деньги webmoney, kivi, сбербанк
Отлично. 1. давай попробуем для 4 сегментов. 2. блок разные, количество блоков никто не ограничивает. 3. Сразу на несколько знаков. По принципу с LCD. Есть блок который выводит участок памяти на индикаторы в нашем случае 4 байта, а есть блоки которые в этот участок пишут данные.
То есть будет блок который отображает данные и множество блоков которые пишут данные.
4 байта? Я правда маленько не понимаю в выражениях "целые", "целочисленные" и тд. То есть каждый байт данных соответствует своему индикатору? Ну это облегчает задачу, можно еще и буквенные символы туда запихать, ну разумеется те, что можно написать на 7 сегментах. Будет выглядеть примерно так? 4 разряда * 7 сегментов + 1 точка
И еще вопрос в блок что верхний на моем рисунке данные в каком виде поступают? В регистрах, в памяти? В каких регистрах? В какой ячейке или под каким именем памяти?
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи Деньги webmoney, kivi, сбербанк
4 байта? Я правда маленько не понимаю в выражениях "целые", "целочисленные" и тд. То есть каждый байт данных соответствует своему индикатору? Ну это облегчает задачу, можно еще и буквенные символы туда запихать, ну разумеется те, что можно написать на 7 сегментах.
4 байта - да. выражениях "целые", "целочисленные" и тд - тип соединительных выводов блока. То есть каждый байт данных соответствует своему индикатору -да
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения