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