Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Fuse bit для тактирования 32768 кварцем http://www.cyberforum.ru/avr/thread2086670.html
Знатоки, подскажите, как выставить CKSEL на tiny 2313, чтоб задать тактирование от внешнего кварца 32768 Гц? В даташите: 0.4 - 0.9 Мгц 0.9 - 3.0 Мгц 3.0 - 8.0 Мгц 8.0 - 12 Мгц Про...
Помощь по макросам Atmega AVR микроконтроллер
Всем привет! Снова прошу вашей помощи, гиганты AVR :) Ребята, очень хочу научиться использовать макросы, но беда, не нахожу по ним уроки с нуля. Помогите, пожалуйста, понять вот эти строки: 1)...
Atmega AVR микроконтроллер Hapsim wanted
Форумчане, может есть у кого последняя версия Hapsyma, а то http://www.hitmix.at/hapsym/ кажется протух. Выложите куда-нибудь плз.
Atmega AVR микроконтроллер Режим захвата Подскажите, пожалуйста, доступен ли модуль захвата при работе Таймера1 (атмега328р)? Будет ли верхняя граница = OCR1x? Или таймер должен работать только в 4 или 12 режиме (СТС)? http://www.cyberforum.ru/avr/thread2086667.html
Atmega AVR микроконтроллер AtMega8, внешняя EEPROM и UART http://www.cyberforum.ru/avr/thread2086666.html
Всем привет. Нумбский вопрос, я новичок. Думаю над новой разработкой. Нужно послушать шину RS-485, и каждый байт записать в память. Если я для этого буду использовать ATMEGA8, успеет ли МК поймать...
Изменение приоритетов прерываний в Atmega328p Atmega AVR микроконтроллер
Столкнулся с проблемой которая требует чтобы текущий обработчик прерывания отработал без прерывания своей работы более высокоприоритетным прерыванием. Т.е. если в процессе обработки прерывания INT1,...
Atmega AVR микроконтроллер AVRstudio4 ASM. Адресация и инициализация EEPROM.
Есть кусок кода: ===== адреса переменных в EEPROM ===== .ESEG .org 0 EE_code_Unlock: .byte 2 EE_code_Service: .byte 2 EE_code_Test: .byte 2 EE_code_Educat: .byte 2 EE_Status: .byte 1...
Atmega AVR микроконтроллер Вопрос про общение с МК День добрый. Вот понадобилось реализовать установки параметров с помощью ПК, на ум лезет только передача команд такого типа "SIT DSTIME 20:50:10 17.01.2013 END" по USORT. Вопрос: Как обработать... http://www.cyberforum.ru/avr/thread2086663.html
Atmega AVR микроконтроллер Считать значение напряжения с нулевого канала АЦП http://www.cyberforum.ru/avr/thread2086662.html
Необходимо считать значение напряжения с нулевого канала АЦП. Какой АЦП выбрать? Может кто поможет в CodeVision сделать. Заранее спасибо за помощь!
Atmega AVR микроконтроллер Подмена стека Возникла такая задачка: при определенном прерывани необходимо СРОЧНО выполнить одну ПЕРВОСТЕПЕННУЮ и довольно громоздкую процедуру, и при ее выполнении оставить возмоность отрабатывать другим... http://www.cyberforum.ru/avr/thread2086661.html
Bytt
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
13.01.2013, 10:09 0

Деление на 10.

13.01.2013, 10:09. Просмотров 25433. Ответов 67
Метки (Все метки)

Ответ

Цитата Сообщение от tyzord66
Цитата Сообщение от drvtos
Да и 4,294,967,295 - 9 циклов. Я потому и спросил, пробовал ли ты. Самому-то влом проверять, но думаю, не более сотни микросекунд на АВР.
Не придумал ничего лучше того, что под спойлером :). Длинна 55 КОПов время выполнения для 4,294,967,295(0xffffffff) – 1048 тактов, время работы тем больше, чем больше девяток в аргументе. Получилось дольше чем универсальное деление «сдвиг/вычитание» из AVR200. Может у кого то этот метод получится быстрей?
Код
;*****************************************************************
; IN(аргумент) = R19:R18:R17:R16
; OUT = R9:R8:R7:R6(целая часть) R16(остаток)
;***************************************************************** 18 words
razr_10:   .db      $00,$00,$00,$01      ;   1
.db      $00,$00,$00,$0a      ;   1*10^1
.db      $00,$00,$00,$64      ;   1*10^2
.db      $00,$00,$03,$E8      ;   1*10^3
.db      $00,$00,$27,$10      ;   1*10^4
.db      $00,$01,$86,$A0      ;   1*10^5
.db      $00,$0F,$42,$40      ;   1*10^6
.db      $00,$98,$96,$80      ;   1*10^7
.db      $05,$F5,$E1,$00      ;   1*10^8
.db      $3B,$9A,$CA,$00      ;   1*10^9
;----------------------------------------------------------------- 37 words
d10:      ldi      R21,   $4         ; шаг указателя
ldi      R20,   $9         ; ожидаемое число десятичных разрядов
clr      R6               ; очистка результата
clr      R7               ;   -"-
clr      R8               ;   -"-
clr      R9               ;   -"-
ves_next:   tst      R20
brne   d10_nex
ret
d10_nex:   dec      R20
ldi      ZL,      low(razr_10*2)
ldi      ZH,      high(razr_10*2)
mul      R20,R21
add      ZL,      R0
adc      ZH,      R1
;----- читаем коэффициент накопителя -----------------------------
lpm      R13,   Z+
lpm      R12,   Z+
lpm      R11,   Z+
lpm      R10,   Z+
;----- читаем вес разряда ----------------------------------------
lpm      R5,      Z+
lpm      R4,      Z+
lpm      R3,      Z+
lpm      R2,      Z+
ves_rpt:   sub      R16,   R2
sbc      R17,   R3
sbc      R18,   R4
sbc      R19,   R5
brcc   accum
add      R16,   R2
adc      R17,   R3
adc      R18,   R4
adc      R19,   R5
rjmp   ves_next
accum:      add      R6,      R10
adc      R7,      R11
adc      R8,      R12
adc      R9,      R13
rjmp   ves_rpt
;*****************************************************************
Это код можно сделать короче и, соответственно, быстрее.

Вернуться к обсуждению:
Деление на 10.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 10:09
Готовые ответы и решения:

Задача про деление яблок (целочисленное деление)
Ребят,помогите с задачкой,как написать input.txt и output.txt? Помогите решить задачу. C++....

Умножение, деление и деление с остатком
Рассмотрим эти операции на примере. static void Main() { int i = 100, j = 15; double a =...

Деление знаковых чисел с выводом ошибки "Деление на ноль"
Собственно поставили передо мной задачу - написать прогу деления двух чисел, причем что бы...

Деление
Всем привет! Нужна помошь по математике :wacko: Нужно делить дробные числа. Максимальное число...

Деление
data SEGMENT a DW 20 b DW 6 c DW ? data ENDS code SEGMENT assume cs:code,ds:data...

67
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru