Чт ноя 30, 2017 01:21:14
Чт ноя 30, 2017 01:59:14
Чт ноя 30, 2017 07:53:02
short int t; // Переменная которую нужно конвертировать
char out[4]; // Здесь будет результат
short int tmp;
tmp=t;
out[2]=tmp%10+48; tmp=tmp/10;
out[1]=tmp%10+48;
out[0]=tmp/10+48;
out[3]=0; // Символ конца строки
Чт ноя 30, 2017 07:57:50
; ----------
bin2bcd2:
; ----------
; Преобразование однобайтного числа в упакованный BCD
; ----------
; Вход : R24 - число от 0 до 255
; Выход: R17:16 - BCD представление
; Изменяет: R18, R24, SREG
; ----------
ldi R16, 0 ; инициализация результата
ldi R17, 0 ;
ldi R18, 8 ; счетчик циклов
loop:
cpi R16, 0x05 ; сравнение разряда 0
brhs L1 ; если <= 4, продолжаем
subi R16, 256-3 ; иначе увеличиваем разряд 0 на 3
L1:
cpi R16, 0x50 ; сравнение разряда 1
brcs L2 ; если <= 4,
subi R16, 256-(3*16); иначе увеличиваем разряд 1 на 3
L2:
cpi R17, 0x05 ; сравнение разряда 2
brhs L3 ; если <= 4, продолжаем
subi R17, -3 ; иначе, увеличиваем разряд 2 на 3
L3:
lsl R24 ; сдвиг
rol R16
rol R17
dec R18 ; цикл
brne loop
ret
Чт ноя 30, 2017 08:44:58
Чт ноя 30, 2017 09:20:23
Пт дек 01, 2017 09:35:13
Пт дек 01, 2017 09:58:03