Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры 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
tyzord66
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
10.01.2013, 22:43 0

Деление на 10.

10.01.2013, 22:43. Просмотров 25441. Ответов 67
Метки (Все метки)

Ответ

Цитата Сообщение от putmom
Действительно оно того не стоит, вычитанием 10-ки проще и нагляднее получается.
Оставляю значит как есть процедуру в своей программе.
«Цыганский шахматист считает партию проигранной, если потерял двух коней»

Я бы не стал так быстро сдаваться. Безусловно, за скорость придется платить, но мне кажется, уважаемые Гуру несколько сгущают краски. Загадочный алгоритм, с которым не разобрался ТС действительно достаточно быстрый, реализация на асме у меня получилась всего менее, чем в три раза длинней классического деления из апноты AVR200. «Классика» 32/32=32+32(остаток) занимает примерно 32 КОПа и выполняется где то за 850 тактов. Пример ТСа получился у меня длинной 87 КОПов и выполняется за 80/87 такта в зависимости от необходимости коррекции результата, на минуточку в !10! раз быстрей.
Код
;*****************************************************************
; IN(аргумент) = R19:R18:R17:R16
; OUT = R3:R2:R1:R0(целая часть) R4(остаток)
;***************************************************************** 52 коп
d10:      movw   R4,      R16
movw   R6,      R18
lsr      R19
ror      R18
ror      R17
ror      R16
movw   R0,      R16
movw   R2,      R18
lsr      R3
ror      R2
ror      R1
ror      R0
add      R16,   R0
adc      R17,   R1
adc      R18,   R2
adc      R19,   R3
movw   R0,      R16
movw   R2,      R18
lsr      R19
ror      R18
ror      R17
ror      R16
lsr      R19
ror      R18
ror      R17
ror      R16
lsr      R19
ror      R18
ror      R17
ror      R16
lsr      R19
ror      R18
ror      R17
ror      R16
add      R16,   R0
adc      R17,   R1
adc      R18,   R2
adc      R19,   R3
movw   R0,      R16
movw   R2,      R18
clr      R0
add      R16,   R1
adc      R17,   R2
adc      R18,   R3
adc      R19,   R0
movw   R0,      R16
movw   R2,      R18
clr      R0
add      R16,   R2
adc      R17,   R3
adc      R18,   R0
adc      R19,   R0
;***************************************************************** 10 коп
movw   R0,      R16
movw   R2,      R18
lsr      R3
ror      R2
ror      R1
ror      R0
lsr      R3
ror      R2
ror      R1
ror      R0
;***************************************************************** 14 коп
omdi   R16,   $f8
add      R16,   R0
adc      R17,   R1
adc      R18,   R2
adc      R19,   R3
cbr      R16,   $1
;-----------------------------------*
sub      R4,      R16      ;   остаток частного
;-----------------------------------*
sbc      R5,      R17
sbc      R6,      R18
sbc      R7,      R19
;-----------------------------------*
lsr      R3            ;   целая часть частного
ror      R2            ;
ror      R1            ;
ror      R0            ;
;-----------------------------------*
;***************************************************************** 11 коп
ldi      R16,   $9
cp      R16,   R4
brsh   d10_ex
ldi      R16,   $a
sub      R4,      R16
ldi      R16,   $1
add      R0,      R16
ldi      R16,   $0
adc      R1,      R16
adc      R2,      R16
adc      R3,      R16
d10_ex:      ret
;*****************************************************************


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

Задача про деление яблок (целочисленное деление)
Ребят,помогите с задачкой,как написать 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