Пишу прошивку для PIC32MX, используя HiTech PICC32. Одна из проблем, которую я хочу избежать, состоит в том, что, поскольку большинство выводов имеют несколько имен (например, AN0 = RB0 = CN2 = PGED1), я или кто-то другой мог бы случайно использовать RB0, не осознавая, что AN0 уже используется. (На самом деле это может привести к катастрофическим последствиям, поскольку неправильная настройка аналогового / цифрового контакта может привести к чрезмерному потреблению тока и выделению существенного дыма.)
Помимо подробного документирования каждого используемого пина, мне было интересно, есть ли быстрый способ решить эту проблему на уровне кодирования. Я хочу макрос, который могут использовать люди (в основном я), скажем CLAIM_PIN(58)
, который выдаст предупреждение или ошибку, если его запустить дважды.
(Я не хочу этого любой ценой, если единственно возможное решение является слишком ужасным или неприемлемым, тогда я забуду об этом и просто создаю репутацию расплакаться или поджечь себя или что-то в этом роде. Я также видел этот вопрос о макросах, производящих макросы , что исключает это.)
Я должен уточнить: код написан в нескольких единицах компиляции (по крайней мере, я думаю, что это то, что означает эта фраза). У меня есть файл .h / .c для моего кода A2D, аналогично для SPI и аналогично для различных периферийных устройств, которые просто используют определенные порты ввода-вывода. Пробел не на самом деле проблема, мой код оставляет много места на PIC32MX; также я могу использовать другой флаг __DEBUG для удаления кода проверки пин-кода для окончательного использования.