| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Умножение и деление в AVR |
| Автор: Коляй 26.11.2005, 21:21 |
| Уважаемые программисты. Подскажите как покультурнее организовать умножение, а лучше деление в программе на ассемблере для AT90S2313. Точность не нужна, просто это регулировка от переменного резистора. Чило изначально 32-х разрядное, располагается в 4-х регистрах, потом идёт три раза сдвиг вправо каждого регистра. Если оставить один раз сдвиг вправо, получается "максимум", а если ещё два сдвига добавить - "минимум". Надо что бы эти "мин" и "макс" задавались переменником. Переменник изменяет 16-и разрядное число "захват таймера 1". Как тут лучше сделать? Спасибо. |
| Автор: Alex1984 27.11.2005, 00:43 |
| Подобное уже обсуждалось Зайди по поводу деления и умножения на Atmel.ru |
| Автор: Гость_Александр 28.11.2005, 01:36 |
| 2005 11 28 AVR200: Multiply and Divide Routines http://www.atmel.com/dyn/resources/prod_documents/AVR200.zip http://www.atmel.com/dyn/resources/prod_documents/DOC0936.PDF Divide Routines http://www.atmel.com/dyn/resources/prod_documents/DOC1973.PDF 32bit/32bit Unsigned Division http://elm-chan.org/docs/avrlib/div32.txt "...Точность не нужна, просто это регулировка от переменного резистора. ...Надо что бы эти "мин" и "макс" задавались переменником. Переменник изменяет 16-и разрядное число "захват таймера 1". " -Я ничего не понял, об чем речь. |
| Автор: Коляй 28.11.2005, 22:59 |
| И это не удивительно, я же не программист. 32-х разрядное число разделить надо на 16-и разрядное. Делимое находится в r16,r17,r18,r19 , а делитель в r24,r25. Спасибо за ссылки, буду почитать. |