roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 май 2025, 16:40

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: bin_to_dec
СообщениеДобавлено: 10 янв 2015, 14:33 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Почему не отображается на LCD?
Вроде bin_to_dec рабочий.

Код:
;********************************************************************
;;=========================================================================
;; Преобразование 10-разрядного двоичного числа
;; в 3-разрядное двоично-десятичное неупакованное число
;; resH:resL - двоичное число
;; r18:r17:r16 - десятичное
bin_to_dec:

ser r18
bin_to_dec1: inc r18
subi resL, 100
sbci resH, 0
brcc bin_to_dec1; вычитаем еще раз (нет заема)
subi resL, -100
sbci resH, 0

ser r17
bin_to_dec2: inc r17
subi resL, 10
brcc bin_to_dec2
subi resL, -10

ser r16
bin_to_dec3: inc r16
subi resL, 1
brcc bin_to_dec3
subi resL, -1
ret

;*************************************************************************

;*************************************************************************
;*************************************************************************
LCD_Write:
;преобразовать десятичный код в ASCII
   ldi temp1,0x30 ;Смещение для ASCII кода
add r18,temp1 ;r2
   add r17,temp1 ;r3
   add r16,temp1 ;r4

;*************************************************************************

;запись в lcd
ldi r16,0x45 ;;;;;;;;;;
rcall LCD_SetAddressDD ;запись в LCD ;;;;;;;;;;;

   mov temp1,r2 ;;;;;;;;;;;
   rcall LCD_WriteData ;;;;;;;;;;;
   mov temp1,r3 ;;;;;;;;;;;;
   rcall LCD_WriteData ;;;;;;;;;;
   mov temp1,r4 ;;;;;;;;;;;;;;
   rcall LCD_WriteData ;;;;;;;;;;
   mov temp1,r5 ;;;;;;;;;;;;
   rcall LCD_WriteData ;;;;;;;;
   mov temp1,r6 ;;;;;;;;;;
   rcall LCD_WriteData ;;;;;;;;;;;;;

;************************************************************************

reti


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 10 янв 2015, 23:12 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Приведены несколько подпрограмм - и все. Как тут помочь?

ЗЫ. Почему у меня машина не едет? Вот колеса - на вид нормальные. Вот генератор и радиатор. Гляньте, почему машина не едет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 10 янв 2015, 23:37 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
А машина не едет потому что прокладка между машиной и водителем протекла))

Все разобрался. тема закрыта


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 14 янв 2015, 18:44 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Подскажите уважаемые гуру форума, а как сделать чтоб в этом BIN_BCD появилась точка ну например (5.12V)

Код:
;; Преобразование 10-разрядного двоичного числа
;; в 3-разрядное двоично-десятичное неупакованное число
;; resH:resL - двоичное число
;; r18:r17:r16 - десятичное
bin_to_dec:

ser r18
bin_to_dec1: inc r18
subi resL, 100
sbci resH, 0
brcc bin_to_dec1; вычитаем еще раз (нет заема)
subi resL, -100
sbci resH, 0

ser r17
bin_to_dec2: inc r17
subi resL, 10
brcc bin_to_dec2
subi resL, -10

ser r16
bin_to_dec3: inc r16
subi resL, 1
brcc bin_to_dec3
subi resL, -1
ret


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 15 янв 2015, 04:08 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Проще всего точку рисовать в процедуре вывода на экран. Нужно только знать где. И работать как с целым натуральным числом, например 512.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 15 янв 2015, 19:44 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Это преобразование правда какое-то ущербное.
У меня счет идет почему-то вот так: 4.00,4.11,4.22,4.33,4.44,4.55 и т.д.
Может есть у кого трехзначное преобразование?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 15 янв 2015, 21:01 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
если не забуду скину завтра, напишите пост чтобы тема вылезла в новых сообщениях завтра..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 15 янв 2015, 21:42 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
O.K.:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 16 янв 2015, 08:13 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
Код:
UARTE0_TX_DEC_16:
   push   R18
   push   R19
   push   R20
.equ   UARTE0_TX_DEC_16_DIGITS = 5

   ldi      R20,      UARTE0_TX_DEC_16_DIGITS-1;result digits - 1

UARTE0_TX_DEC_16_1:
   
   clr      R18
   ldi      R19,      16 ;data bits

UARTE0_TX_DEC_16_2:
   
   lsl      R16
   rol      R17
   rol      R18

   cpi      R18,      10
   brcs   UARTE0_TX_DEC_16_3

   subi   R18,      10
   ori      R16,      1

UARTE0_TX_DEC_16_3:

   dec      R19
   brne   UARTE0_TX_DEC_16_2
   

   push   R18

   dec      R20
   brne   UARTE0_TX_DEC_16_1

   subi   R16,      -0x30
   call   UARTE0_TX_byte

   ldi      R20,         UARTE0_TX_DEC_16_DIGITS-1
UARTE0_TX_DEC_16_4:
   pop      R16
   subi   R16,         -0x30
   call   UARTE0_TX_byte
   dec      R20
   brne   UARTE0_TX_DEC_16_4

   pop      R20
   pop      R19
   pop      R18
   ret


в том месте где вызывается
call UARTE0_TX_byte
В R16 будет готовый байт, эта процедура в общем для 2-х байтных целых чисел, для дробных готового нет у меня
UARTE0_TX_DEC_16_DIGITS = 5 можно попробовать поставть 3 - но не уверен что все правильно отработает, пробуйте

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 16 янв 2015, 22:57 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
не пашет

может мое преобразование лучше исправить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 17 янв 2015, 11:12 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Нашёл.Регистр r16 заменил на другой и все заработало.
Теперь другая проблема: На вольтметре 5.00V а на LCD 5.11V
причем не сразу начинаетса с 0.35 на вольтметре а на LCD 0.36 и так все больше и больше

Вот мое деление

Код:
;***********************деление***********************************************         ;
   ;деление на 64
   clr count_data
div64L:
        lsr ADC_H;сдвинуть старший в право
   ror ADC_L;сдвинуть младший с переносом
   inc count_data
   cpi count_data,1
   brne div64L
;*****************************************************************************


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 17 янв 2015, 11:46 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
а причем тут деление на 64? расскажите как вы вообще все это делаете, начиная с опорного напряжения и делителя резистивного, если он есть, оч. желательно использовать знаки препинания в объяснении

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 18 янв 2015, 02:20 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Деление на 64 это если так: cpi count_data,6

В железе пока не делал.Эксперименты c АЦП пока в PROTEUSE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 18 янв 2015, 11:05 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
не важно где, распишите как вы полагаете это все должно работать. типа на измеряемом источнике N вольт, на вход микроконтроллера подается M вольт, при опорном напряжении Q вольт, АЦП должен выдать такой то код, его я делю на столько то, дабы нам понять где может быть ошибка

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: bin_to_dec
СообщениеДобавлено: 18 янв 2015, 16:55 
Не в сети
Аватара пользователя

Зарегистрирован: 15 июл 2013, 15:15
Сообщения: 46
Откуда: г.Москва
прог. языки: ASM
Посылаю код + схема в PROTEUS
Комментарии в коде превратились в кракозябры не знаю как это исправить.



Всем кто только изучает АЦП и ПИШЕТ на ASSEMBLER, будет интересно.


Вложения:
Комментарий к файлу: Исходник и схема в PROTEUS
КОД и схема в протеусе.zip [44.83 КиБ]
Скачиваний: 0


Последний раз редактировалось arm-17 19 янв 2015, 01:57, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO