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

21 Авг 2019 в 06:21
239 +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 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир