Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

avr.asm. попро ещё раз. преобразование трёх байтов в ASCII string

Отправлено nestandart 12 февраля 2008 г. 21:40


пытаюсь по аналогии оттуда: http://www.telesys.ru/wwwboards/mcontrol/297/messages/141922.shtml

вроде всё на первый взгляд верно.
но выдаёт совсем сумбур :(. (дальше десяток даже не совался)

может, кто невооружённым глазом глянет код ?


.def asc1 =r22
.def asc2 =r23
.def asc3 =r24
.def asc4 =r25
.def asc5 =r26
.def asc6 =r27
.def asc7 =r28
.def asc8 =r29

.def bin_l =r16
.def bin_m =r30
.def bin_h =r31


ldi bin_l,0xFF
ldi bin_m,0xFF
ldi bin_h,0xFF

rcall BIN2ASCII_CONVERT

LOOP:
nop
rjmp LOOP


;;;;;;;;;;;;;
.equ _10mln = 10000000
.equ _1_mln = 1000000
.equ __100k = 100000
.equ ___10k = 10000
.equ ____1k = 1000
.equ ___100 = 100
.equ ____10 = 10


ldi temp1, LOW(_10mln)
ldi temp2,BYTE2(_10mln)
ldi temp3,BYTE3(_10mln)


ldi asc1,'0'-1 ;Will be ASCII '0' after 1st increment
sub10mln:
inc asc1 ;'0','1'
subi bin_l, LOW(_10mln)
sbci bin_m, BYTE2(_10mln)
sbci bin_h, BYTE3(_10mln)
brsh sub10mln
subi bin_l,- LOW(_10mln)
sbci bin_m,-BYTE2(_10mln)
sbci bin_h,-BYTE3(_10mln)
;
ldi asc2,'0'-1
sub1mln:
inc asc2 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l, LOW(_1_mln)
sbci bin_m, BYTE2(_1_mln)
sbci bin_h, BYTE3(_1_mln)
brsh sub1mln
subi bin_l,- LOW(_1_mln)
sbci bin_m,-BYTE2(_1_mln)
sbci bin_h,-BYTE3(_1_mln)
;
ldi asc3,'0'-1
sub100k:
inc asc3 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l, LOW(__100k)
sbci bin_m, BYTE2(__100k)
sbci bin_h, BYTE3(__100k)
brsh sub100k
subi bin_l,- LOW(__100k)
sbci bin_m,-BYTE2(__100k)
sbci bin_h,-BYTE3(__100k)
;
ldi asc4,'0'-1
sub10k:
inc asc4 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l, LOW(___10k)
sbci bin_m, BYTE2(___10k)
sbci bin_h, BYTE3(___10k)
brsh sub10k
subi bin_l,- LOW(___10k)
sbci bin_m,-BYTE2(___10k)
sbci bin_h,-BYTE3(___10k)
;
ldi asc5,'0'-1
sub1k:
inc asc5 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l, LOW(____1k)
sbci bin_m, BYTE2(____1k)
sbci bin_h, BYTE3(____1k)
brsh sub1k
subi bin_l,- LOW(____1k)
sbci bin_m,-BYTE2(____1k)
sbci bin_h,-BYTE3(____1k)
;
ldi asc6,'0'-1
sub100:
inc asc6 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l, LOW(___100)
sbci bin_m, BYTE2(___100)
sbci bin_h, BYTE3(___100)
brsh sub100
subi bin_l,- LOW(___100)
sbci bin_m,-BYTE2(___100)
sbci bin_h,-BYTE3(___100)
;
ldi asc7,'0'
sub10:
inc asc7 ;'0','1','2','3','4','5','6','7','8','9'
subi bin_l,0x0A
brsh sub10
subi asc8,-('0'+10) ;Correct negative value and convert it to ASCII

ret





Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 63:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru