Пост N: 1459
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
3
Фото:
Отправлено: 30.01.11 01:32. Заголовок: Если пожертвовать то..
Если пожертвовать точностью, то, например, извлечь корень из суммы квадратов(про теорему пифагора все слышали?) можно очень и очень быстро. Погрешность вычислений можно и уменьшить, но возрастет время выполнения...
Пост N: 102
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 30.01.11 03:11. Заголовок: Не думал что так быс..
Не думал что так быстро ответят на это сообщение, да и задача оказывается все-таки востребованная. Эт я к чему поднял тему, нарыл в википедии алгоритм извлечения квадратного корня простой как 3 рубля, я аж обалдел от простоты действий ( до этого думал что в МК извлечения квадратного корня идёт методом последовательных приближений к истине). вот и задумался мож написать программу извлекающую корень. но перед этим решил спросить, мож есть уже подобный метод. и интересно стало кто как с этой задачей справлялся, хочется посмотреть разные варианты. SanSanich спасибо за алгоритм, погоняю в симуляторе в свободное время. Алексей если можно то выложите вариант быстрого извлечения.
Пост N: 150
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг:
0
Отправлено: 30.01.11 20:24. Заголовок: Спасибо, не видел. П..
Спасибо, не видел. Правда, при беглом просмотре общего не увидел. Нужна база, компоненты к формулам, работающим в алгоритмах прошивок (программ). Когда есть скелет, рабочий материал, мясо наростить куда проще, чем лепить монстра не совсем понимая как это всё работает. Моё мнение, в основе работы любой программы лежит алгоритм, математическая модель, и чем она рациональнее, тем быстрее и оптимальнее программа, состоящая из сценариев и типовых ПП.
Пост N: 103
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 30.01.11 23:48. Заголовок: MAZ пишет: В википе..
MAZ пишет:
цитата:
В википедии, лучше не искать, автор не за что не отвечает,
Не знаю всегда там всё смотрю, а если есть сомнения то перепроверяю в других источниках, но пака косяков не обнаружил, а извлечения квадратного корня так это взял на бумаге да перепроверил, правда там написана или лож. MAZ пишет:
цитата:
Искать лучше в англоязычном интернете.
да сначала нужно басурманский разучит, а потом уж туда лазить. но и наврятли там будет правда написана о русской культуре или о каких нибудь битвах российских городов. теж буржуи всё на свой лад переработали.
Отправлено: 31.01.11 10:27. Заголовок: Я про битвы не писал..
Я про битвы не писал, там у всех свой взгляд. Писал о программах. Самый просто вариант, в гугл перевести запрос с русского на английский, после поиска на анг. он же и переведет. Очень помогает.
Пост N: 60
Зарегистрирован: 24.04.08
Откуда: Россия, г.Хабаровск
Рейтинг:
0
Отправлено: 19.03.11 07:03. Заголовок: Липин Руслан г. Хабаровск.
приветствую всех неравнодушных! Проблемка у меня нарисовалась в програмной области. Суть такова.
Имеется внушительных размеров программа, в теле которой имеются вычисляемые переходы. Поскольку программа занимает более 1500 команд, перед каждым вычисляемым переходом производится выбор соответствующего блока памяти программ корректировкой значения PCLATH общеизвестным способом:
Эти програмные конструкции в теле основной программы работают отлично, что неоднократно проверено на практике.
В моей программе имеется ещё 2 источника прерываний. Подпрограмма обработки прерываний тоже содержит вычисляемые переходы. Поскольку вычисляемые переходы основной программы и вычисляемые переходы подпрограммы обработки прерывания расположены в разных блоках програмной области, вычисляемые переходы подпрограммы обработки прерываний тоже "оборудованы" вышеупомянутой корректировкой PCLATH. Поскольку место возникновения прерываниия может быть любым, то оно может возникнуть и здесь:
movlw high LOOP movwf PCLATH movf Reg,W ;;;;;;;; И ЗДЕСЬ!!! addlw low LOOP ;;;;;;;; И ЗДЕСЬ!!! btfsc STATUS,C ;;;;;;;; И ЗДЕСЬ!!! incf PCLATH,F ;;;;;;;; И ЗДЕСЬ!!! movf Reg,W ;;;;;;;; И ЗДЕСЬ!!! addwf PCL,F LOOP retlw .1 retlw .2 ................
Обработчик прерывания всегда вносит изменения в PCLATH, соответственно если прерывания возникают в вышеупомянутых местах, то вышеупомянутый вычисляемый переход в теле основной программы уже не исполнится корректным образом. Вопрос следующий: не означает ли это, что помимо соханения содержимого STATUS и аккумулятора в обработчике прерываний нужно ещё сохранять значение PCLATH?
movwf w_temp ; save off current W register contents movf STATUS,w ; move status register into W register movwf status_temp ; save off contents of STATUS register movf PCLATH,w ; move pclath register into w register movwf pclath_temp ; save off contents of PCLATH register
; isr code can go here or be located as a call subroutine elsewhere
movf pclath_temp,w ; retrieve copy of PCLATH register movwf PCLATH ; restore pre-isr PCLATH register contents movf status_temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents swapf w_temp,f swapf w_temp,w ; restore pre-isr W register contents retfie ; return from interrupt
Пост N: 62
Зарегистрирован: 24.04.08
Откуда: Россия, г.Хабаровск
Рейтинг:
0
Отправлено: 19.03.11 11:04. Заголовок: в моём случае необхо..
в моём случае необходимо. Если в прерывании PCLATH не изменяется, то можно и обойтись. Боже, неужели дело сдвинулось 3 месяца искал, почему у меня стек переполняется
отладчик подключал, но он долго шагает, даже на автомате, так и не дождался, нужного момента. Симулятор выдавал ошибку переполнения стека. В стековом окне - какие-то левые адреса. Вот и сидел, чесал репу 3 месяца, пока не засомневался в переходах.
Отправлено: 19.03.11 14:37. Заголовок: Я всегда сохраняю, н..
Я всегда сохраняю, на всякий случай. Но если что в программе со страницами идет не так, в первую очередь надо смотреть на PCLATH. Тоже столько нервов помотал пока не разобрался .
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет