Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР. |
19.03.2007, 16:18
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от CERGEI1982
|
с LCD пока не работал,а так бы подсказал
|
В Си перемеррая 4 байта, соответственно ее максимальное значение 4 000 000 с чем то (2^32).
Допустим у меня число 4 123 456 и мне его надо вывести число на экран. На экран можно выводить только символ (цифру). Для этого я от моего числа отнимаю 1 000 000 пока число не будет меньше
1 000 000. Так я получу первую цифру числа. Дальше буду отнимать 100 000, и т.д. А на асме регистры то однобайтные, интересен алгоритм вывода 4 байтного числа...
|
|
|
|
19.03.2007, 16:20
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от avr123-nm-ru
|
ОЧЕВИДНО !!! посмотреть листинг на АСМе после компиляции Си.
|
Да но компилятор этот кусок программы разбивает на много макросов и собрать его очень неудобно...
|
|
|
|
19.03.2007, 16:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от dimonbest
|
Сообщение от CERGEI1982
|
с LCD пока не работал,а так бы подсказал
|
В Си перемеррая 4 байта, соответственно ее максимальное значение 4 000 000 с чем то (2^32).
Допустим у меня число 4 123 456 и мне его надо вывести число на экран. На экран можно выводить только символ (цифру). Для этого я от моего числа отнимаю 1 000 000 пока число не будет меньше
1 000 000. Так я получу первую цифру числа. Дальше буду отнимать 100 000, и т.д. А на асме регистры то однобайтные, интересен алгоритм вывода 4 байтного числа...
|
ну и делай как ты сказал отнимая сначала 1000 000,инкриминируя временый регистр и сравнивая это число 1000000 отнимая и смотря бит переноса,потом посылай из временого регистра на LCD как старшую цифру 4,потом дальше сравнивая с число 100000,когда будет меньше шли дальше и т д
а как выводится 4 байтное число? по последовательной шине,принцип опиши хотя бы кратко как на LCD отправлять?
|
|
|
|
19.03.2007, 16:41
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от CERGEI1982
|
ну и делай как ты сказал отнимая сначала 1000 000,инкриминируя временый регистр и сравнивая это число 1000000 отнимая и смотря бит переноса,потом посылай из временого регистра на LCD как старшую цифру 4,потом дальше сравнивая с число 100000,когда будет меньше шли дальше и т д
а как выводится 4 байтное число? по последовательной шине,принцип опиши хотя бы кратко как на LCD отправлять?
|
Как я на асме смогу отнимать 1000000 если там регистры однобайтные и их максимальное значение 255???
По поводу LCD: можно отправлять данные и команды по 4 или 8 разрядной шине, 2 линии сигналов, строб и выбор команды или данных... Если интересно могу datasheet выслать
|
|
|
|
19.03.2007, 16:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от dimonbest
|
Как я на асме смогу отнимать 1000000 если там регистры однобайтные и их максимальное значение 255 ???
|
Сделайте на Си и откомпилируйте - посмотрите листинг АСМ ...
По-моему это очевидно.
Сообщение от dimonbest
|
По поводу LCD: можно отправлять данные и команды по 4 или 8 разрядной шине, 2 линии сигналов, строб и выбор команды или данных... Если интересно могу datasheet выслать
|
Вот примеры - pid.by.ru/z5.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
19.03.2007, 17:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Как я на асме смогу отнимать 1000000 если там регистры однобайтные и их максимальное значение 255???
не подумал об этом,тогда легче на си,а зачем
тебе имено на асамблере это?
я сильно еще с этим не разбирался,может здесь посмотреть
http://www.microchip.ru/load.php?mid...f;00526.zip;;;
если найдеш книжку PIC-МИКРОКОНТРОЛЕРЫ,ПРАКТИКА ПРИМЕНЕНИЯ(АВТОР КРИСТИАН ТАВЕРНЬЕ) там описано вычитание 16 разрдных чисел,если посидеть может можно и с 32 разрядными числами сделать,если сильно надо будет напишу программу с книжки
|
|
|
|
19.03.2007, 17:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
а на счет 4 байтного числа на LCD надо читать как работает он и тогда думать
|
|
|
|
19.03.2007, 17:27
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от CERGEI1982
|
Как я на асме смогу отнимать 1000000 если там регистры однобайтные и их максимальное значение 255???
не подумал об этом,тогда легче на си,а зачем
тебе имено на асамблере это?
|
На асме в принципе не надо, это вы говорили что предпочитаете асм ![Подмигивание](images/smilies/icon_wink.gif) , а я Вам в противовес этому пример и привел, за pdf спасибо, почитаю...
|
|
|
|
19.03.2007, 18:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
сложные программы лучше на таких как си или бэйсик делать,нервов и времени меньше потеряеш
|
|
|
|
19.03.2007, 21:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от CERGEI1982
|
сложные программы лучше на таких как си или бэйсик делать,нервов и времени меньше потеряеш
|
Спасибо за ветку, много посмеялся.
Для начала максимальное 32-х битное целое = 4294967295 , а вовсе не " 4 000 000 с чем то (2^32)."
Дальше больше - вычитать беззнаковые целые числа любой разрядности не просто просто ![Валяюсь от смеха](images/smilies/icon_biggrin.gif) , а очень просто.
Пример 32-х битный - нужно вычесть из 2864434397 (0xAABBCCDD) 2575857510 (0x99887766):
Код:
|
; загрузка исходных данных в регистры
; может отсутствовать за ненадобностью
ldi R16,byte4(0xAABBCCDD) ;
ldi R17,byte3(0xAABBCCDD) ;
ldi R18,byte2(0xAABBCCDD) ;
ldi R19,byte1(0xAABBCCDD) ;
ldi R20,byte4(0x99887766) ;
ldi R21,byte3(0x99887766) ;
ldi R22,byte2(0x99887766) ;
ldi R23,byte1(0x99887766) ;
; а вот собственно вычитание
; всего 4 команды
sub R19,R23 ;
sbc R18,R22 ;
sbc R17,R21 ;
sbc R16,R20 ;
; вот и все :-)
; результат в регистрах R16-R19
nop
...... |
Здесь R16 содержит сташий байт, в компиляторах С обычно (но не всегда) наоборот. В ассемблере можно и так и так. В результате регистры R16-R19 содержат 0x11335577 , что в десятичной системе = 288576887.
Вообще нужно задавать конкретные вопросы и помогут, подскажут и т.д. Вывод на LCD тоже совсем несложен.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
вопрос по отладчику IAR AVR to kison
|
picavr |
Микроконтроллеры, АЦП, память и т.д |
36 |
28.04.2009 18:01 |
Вопрос по ШИМ на нулевом таймере AVR.
|
chapa |
Микроконтроллеры, АЦП, память и т.д |
10 |
09.02.2009 18:31 |
Обработка нескольких прерываний AVR (вопрос)
|
festoon |
Микроконтроллеры, АЦП, память и т.д |
27 |
17.11.2008 18:02 |
GNU GCC AVR вопрос по переменным..
|
Mozart |
Микроконтроллеры, АЦП, память и т.д |
3 |
09.02.2007 20:00 |
Вопрос по асемблеру к AVR
|
Гость |
Микроконтроллеры, АЦП, память и т.д |
2 |
12.09.2005 00:47 |
Часовой пояс GMT +4, время: 02:18.
|
|