Wpis z mikrobloga

#elektronika #mikrokontrolery #atmel

Jakie macie sposoby na utrzymanie kompatybilności kodu pomiędzy różnymi modelami uC? :P Ja staram się napisać kod na trzy różne, maksymalnie przed kompilacją chciałbym zmieniać jeden parametr. Oczywiście używam tylko portów tych które są w każdym modelu, funkcji które są w każdym modelu i nawet rozpisałem sobie listę pinów nieużywanych na każdym z nich. Problem w tym że np INT0 w jednym jest na pinie PB0, a w innym na PD2. Macie jakieś szablony ifndefów do C++? :D

Trochę chaotycznie napisane ale wierzę że zrozumiecie. ( ͡º ͜ʖ͡º)
  • 7
@mk87so0: mn. dlatego że łatwiej mi projektować i debugować na płytce rozwojowej z ATmegą128 i JTAGiem a potem przerzucić to tylko na miniwersję z 328P. :P Niektóre moduły (korzystające z tego samego softu) mogą później wymagać czegoś bardziej rozbudowanego i co potem zrobię?
@bartoneczek: chyba nie ma jednej dobrej odpowiedzi na taki temat.

Ja robię wszystko co się da klockowo-modułowo, przez funkcje maksymalnie oddzielone od sprzętu. A funkcje sprzętowe (choćby I/O) robię przez define lub inline, też by były łatwo edytowalne/zmienialne.

Niech to będą nawet funkcje inline, ale tak, by mieć je zgrupowane w jednym miejscu i w razie zmian - zmienić tylko include na inną wersję, lub wiedzieć gdzie przerabiać.

Przykład - zapal/zgaś