Akl, не понял что такое 502, посчитал на бумажке( в екселе то есть), работает. Reflector, доходчиво, на бумажке тоже работает. Посмотрю, как лучше в ассемблере сделать. Единственное, что я и сам пока не знаю, а не придётся ли это преобразование делать нелинейным. типа х^2. Но пока для тестов подойдёт линейное преобразование. СПАСИБО.
_________________ Я всё-всё узнAю и стану профессором.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
{.. с точки зрения быстродействия} По сути и расчёт на асме не займёт значительного времени. Да и спешить некуда. В моём случае 100 мс ничего не решают. {таблицу надо предварительно составить и занести в память.} Я же «на бумажке « посчитал уже, Вам спасибо.
_________________ Я всё-всё узнAю и стану профессором.
Ну там не только быстродействие - возможность оперативного изменения диапазона и/или характеристик преобразования при коэффициенте в виде данных в любом из регистров (0-31) или константного смещения 0-63 для регистровой пары как указателя. Единственный минус - придется Z занять.
Ассемблер это всегда поиск компромиссов. Объем памяти, быстро действие, занимаемые регистры. Я не вижу минуса в том, что ах, регистры Z надо занимать. Минуса как такового нет. Это ваше личное предпочтение, как вы распределяете регистры в своих программах. Ваши личные правила. Есть задача. Есть условия. И ты определяешь, на какие компромиссы идёшь, и какие регистры использовать. Нужно чётко разделять личные предпочтения и целесообразность.
День добрый всем. Компилятор Avrasm2. Столкнулся с непонятными его действиями при задании констант. .equ N=10 .equ t1= int(666938/N-7.9207) .equ t2= int(666938/N-7-9207/10000)
Почему-то t1 не равно t2, который дает корректный для работы устройства результат.
Второй вопрос. Как задать вещественную константу, например 34.5, чтобы потом простые формулы с её участием использовать для задания целых констант (хотелось как ниже представлено) A=34.5???? .equ t3= int(666938/A)
Вот не нашел в разных описания avrasm2 этих моментов. Может кто сталкивался.
Посмотрите instruction set (хотя-бы Atmel-0856L-AVR-Instruction-Set-Manual)... Ежли найдете команду, в которой в качестве данных подставляется ДРОБНОЕ значение - тогда можете работать с оным и под ассемблером.
Не надо путать препроцессор с собственно системой команд. Собственно система команд и АЛУ могут работать только со знаковой арифметикой. Для обработки дробных величин (и прочего...) необходимо предварительно создать соответствующие подпрограммы и уж затем скармливать им соответствующего формата данные.
INT(expression) Truncates a floating point expression to integer (ie discards fractional part) FRAC(expression) Extracts fractional part of a floating point expression (ie discards integer part). Q7(expression) Converts a fractional floating point expression to a form suitable for the FMUL/FMULS/FMULSU instructions. (sign + 7-bit fraction) Q15(expression) Converts a fractional floating point expression to a form suitable for the FMUL/FMULS/FMULSU instructions. (sign +15-bit fraction)
перевод
Цитата:
Следующие функции определены только в AVRASM2: INT (выражение) Обрезает выражение с плавающей запятой до целого числа (т.е. отбрасывает дробную часть) FRAC (выражение) Извлекает дробную часть выражения с плавающей запятой (т.е. отбрасывает целую часть). Q7 (выражение) Преобразует дробное выражение с плавающей запятой в форму, подходящую для инструкций FMUL / FMULS / FMULSU. (знак + 7-битная дробь) Q15 (выражение) Преобразует дробное выражение с плавающей запятой в форму, подходящую для инструкций FMUL / FMULS / FMULSU. (знак + 15-битная дробь
Я Вас не спрашивал про арифметику вещественных чисел. Вопрос был именно по avrasm2, а не к набору инструкций. С set ничего не получалось. А по первому есть что сказать?
Архитектурой и ассемблером avr владею на серьезном уровне. Английским техническим тоже.
Архитектурой и ассемблером avr владею на серьезном уровне
очень плохо ты владеешь, если пытаешься подставить дробное число. на самом деле делается так: числа, которые должны быть дробными, представляются целыми числами с фиксированной точкой. и для каждого такого числа программописатель знает, где в этом числе находится точка.
С.Н. писал(а):
A=34.5???? .equ t3= int(666938/A)
поэтому в данном конкретном случае нужно записать так: .equ t3= 666938 * 10 / 345
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
А по первому есть что сказать? Архитектурой и ассемблером avr владею на серьезном уровне. Английским техническим тоже.
ну в документации на английском ничего нет про флоат константы (там в формуле есть 7.9207), есть Integer Constants и Strings и Character Constants. Может пропустил.
очень плохо ты владеешь, если пытаешься подставить дробное число.
Во первых, призываю Вас сохранять уважительный тон общения и обращаться на "Вы". Во-вторых, я спросил то что спросил. Мне не надо объяснять про альтернативную форму представления, тем более что она есть в первой части вопроса, а глаза цепляются за последнюю строчку. Правда?
Я программу пишу для других, у которых познания в этом близко к нулю. Им приходиться править прошивку под себя. Так вот, они в состоянии число записать как привыкли "34.5", а не приводить к удобной форме. Пока обхожусь и без этого, но хочется упростить кое какие моменты.
Вопросы снимаю... Спрашивал личный опыт, а не вырезки документации, которые и сам читал.
А по первому есть что сказать? Архитектурой и ассемблером avr владею на серьезном уровне. Английским техническим тоже.
ну в документации на английском ничего нет про флоат константы (там в формуле есть 7.9207), есть Integer Constants и Strings и Character Constants. Может пропустил.
Да я тоже не нашел и мало того переперобывал разные комбинации... Видать придется мириться с этим.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения