MBedder, терминатор (06.12.2008 01:01, просмотров: 191) ответил ChaiNik_Big на Подскажите, пожалуйста, алгоритм измерения разнополярного напряжения, чтобы на ЖКИ выдавался результат как в мультиметре - если на входе появляется отрицательное напряжение, то впереди выводится знак минуса, а потом само значение, а при положительном без
Зри, отрок:
.def tmp = r16
.def bin_l = r18
.def bin_h = r19
;---------------------------------------------------------------------------------------------------
; Преобразование 16-бит знакового целого значения bin_h:bin_l в ASCIIZ-строку @Z:
sitoa:
sbrs bin_h,7 ; Если MSb 16-бит числа = 1, то обработать отрицательное значение,
rjmp i16_pos ; иначе перейти к обработке его как беззнакового.
ldi tmp,'-' ; Поместить знак '-' в начало ASCIIZ строки
st z+,tmp ;
com bin_l ; Преобразовать отрицательное 16-бит значение bin в положительное
com bin_h ; (bin = 0 - bin, т.е. 16-bit neg)
adiw bin_l,1 ;
i16_pos:
rcall uitoa ; Вызов подпрограммы беззнакового преобразования. (tip: поиск рулит)
ret
;---------------------------------------------------------------------------------------------------