MBedderтерминатор (06.12.2008 01:01, просмотров: 243) ответил 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
;---------------------------------------------------------------------------------------------------