Как лучше сохранять большие числа в 8-битных регистрах в AVR на ассемблере? Например, имеется формула для определения сопротивления термистора:
A*(B/C-1) = D
1000*(1023/430-1)= 1300R
Здесь A балансирующий резистор, В разрядность ацп, С значение ацп, D сопротивление термистора.
Как такие большие числа можно организовать в памяти на ассемблере с последующим сравнением сопротивления термистора с другим большим числом?

21 Авг 2019 в 06:21
193 +1
0
Ответы
1

Для сохранения больших чисел в 8-битных регистрах в AVR на ассемблере можно использовать несколько регистров для хранения байтов числа, а затем проводить операции над этими регистрами для выполнения расчетов. Например, вы можете сохранить число 1300 в двух 8-битных регистрах, например R16 и R17, и затем выполнить операции для расчета сопротивления термистора.

Примерный код на ассемблере для данного расчета может выглядеть примерно так:

ldi R16, 0b00000101 ; числитель 1023
ldi R17, 0b00111111 ; числитель 1023
ldi R18, 0b00000001 ; делитель 430
ldi R19, 0b10110110 ; делитель 430
ldi R20, 0b00000011 ; константа 1000
ldi R21, 0b11101000 ; константа 1000
mul R16, R20 ; умножение числителя на константу
mov R22, R0 ; сохранение младшего байта результата
mov R23, R1 ; сохранение старшего байта результата
mul R18, R0 ; умножение делителя на младший байт результата
add R23, R0 ; добавление к старшему байту результата
adc R24, R1 ; добавление к старшему байту результата
ldi R25, 0b00000001 ; константа 1
sub R22, R25 ; вычитание 1 из числа
sbc R23, R1 ; вычитание 1 из числа

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

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 196 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир