Piszę oprogramowanie układowe dla PIC32MX, używając HiTech PICC32. Jednym z problemów, których chcę uniknąć, jest to, że ponieważ większość pinezek ma wiele nazw (np. AN0 = RB0 = CN2 = PGED1), ja lub ktoś inny może przypadkowo użyć RB0, nie zdając sobie sprawy, że AN0 jest już używany. (W rzeczywistości może to być katastrofalne, ponieważ niepoprawne skonfigurowanie pinów analogowo-cyfrowych może prowadzić do nadmiernego poboru prądu i uwolnienia podstawowego dymu.)Makro wskazujące szpilki I/O używane
Oprócz kompleksowego dokumentowania każdego używanego styku, zastanawiałem się, czy istnieje szybka metoda wyłączyć tę kwestię na poziomie kodowania. Chcę makro, którego mogą używać ludzie (głównie ja), na przykład CLAIM_PIN(58)
, które spowoduje ostrzeżenie lub błąd, jeśli zostanie uruchomione dwukrotnie.
(Nie chcę tego za wszelką cenę, jeśli jedyne możliwe rozwiązanie jest zbyt przerażające lub niemożliwe do zapamiętania, to zapomnę o tym i po prostu rozwiną się reputacje za wybuchające łzami lub podpalenie czy coś takiego. także zobaczyłem to pytanie o macro producing macros, które wyklucza to.)
Powinienem wyjaśnić: kod IS jest zapisany w wielu jednostkach kompilacji (przynajmniej, myślę, że to właśnie oznacza to wyrażenie). Mam plik .h/.c dla mojego kodu A2D, podobnie jak dla SPI, i podobnie dla różnych urządzeń peryferyjnych, które używają tylko niektórych portów I/O. Przestrzeń nie jest naprawdę problem, mój kod pozostawia dużo miejsca na PIC32MX; również mogę użyć innej flagi __DEBUG, aby usunąć kod sprawdzania pinów do ostatecznego użycia.
brak odpowiedzi, ale dobre pytanie. (Przypuszczam, że byłoby łatwiej, gdyby ludzie z Microchip dostali swoje tyłki i wspierają C++.) –
Tak czy inaczej, nie mają kompilatora Linuksa, więc to dla mnie HiTech (i tak wolę ich makra). – detly