[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: Уважаемый, дядя Вова!....
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Hog 22 августа 2001 г. 15:00
В ответ на: Ответ: Дешевый трюк оптимизатора. отправлено дядя Вова 22 августа 2001 г. 05:43

Простите.
В вашем случае-типичная подмена желаемого на нерациональное.
Суть Вашего примера понял сразу (правда он с ошибками.Ну не беда. ). Действительно, как Вы изволили выразиться "аппологет" HITECH-C не станет бесшабашно всовывать в обработчик аппаратного прерывания процедуры long-численного перемножения (и.т.п.). Это совершенно безболезненно можно и в основной процедуре main() выполнить, что в большинстве готовых программ делалось и делается. В ряде др. конференций это уже обсуждалось.
На счёт плохой многозадачности в PIC16 (и ниже) -тут Вы ПРАВЫ на все 100! Это точно-ОБИДНО :-((
И по поводу "иллюзий"... Алгоритмизация процедур -бездонный кладезь. И компиляторы (силами программистов их разработавших) вооружены ими сполна.
Дальше( от Htsoft.com)- больше. GOTO-вместо "НЕиллюзорного" RETLW - НУ и СЛАВА БОГУ! Суть проблемы разрешена: выполнение многовложенности(>8) вызовов подпрограмм.
Кстати, пример успешно обкатывается и для 2-ур. стековых процов.
Например PIC16C57 :-)
Ну и, конечно же, Microchip'овский алгоритм выше обозначенного Data Sheet An527.pdf- в подспорье.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru