ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Среда
21 октября
/894386
Топик полностью
Nikolay_Po (08.01.2019 02:47 - 02:51, просмотров: 55) в ответ на А почему не через #pragma config? Хоть и выглядит громоздко, зато гораздо читабельнее, и не нужно знать имена фузбайтов - только битов - автор: MBedder
Не нашёл, как через #prgma config задать одновременно старт на FRC (биты FOS, FPR не влияют) и XT_PLL16 (биты FPR). Получается, нужно, чтобы действовали одновременно две "прагмы": #pragma config FOSFPR = FRC & XT_PLL16 Раньше такое делалось побитовым "И" соответствующих масок. Сейчас маски в p30F6014A.h для этих слов-статусов стали не адекватными и логическое "И" даёт совершенно другой, не верный, результат. Мне не удалось найти способа задать через #pragma config нужную конфигурацию. Корректные определения масок остались в p30F6014A.inc, но XC16 видите не их, а те, что исковерканные в p30F6014A.h. Зачем-то создатели #pragma config разбили одно слово FOSC на две разных прагмы, FOSFPR и FCKSMEN. FOSFPR 8-битная, но меняет лишь 5 своих младших разрядов - биты FPR. FCKSMEN вообще двухбитная. Управляет лишь одноимённмыи битами. Похоже, накосячили разработчики. При установке #pragma config FCKSMEN = 0, кроме зануления битов FCKSMEN, зануляются биты FOS (они в одном байте). Но задать нужное значение битам FOS через прагму FCKSMEN невозможно. При попытке указать любое значение шире двух бит, ругается и требует двухбитное значение. Завёл "кейс" поддержке XC16, 00371590 "Unable setup FOSC = ( FRC & XT_PLL16 )". Посмотрим, как отреагируют.
Ответить
Ответы