Въпросът не е какво ни се струва и какво не ни се струва... Има си правила!
Ето някои:
1) Най-важното е именуването. Направо се изприщвам като чета код от Луминари. Гледаш вдигат някакъв бит в някакъв регистър. Пускаш търсене в дейташита нито регистъра го има, нито бита. Естествено ги има, но под друго име и ти отнема сума си време да ги намериш. Както и обратното като четеш дейташита и искаш да провериш еди кой си регистър дали и как се пипа от софтуера трябва да стане с търсене в проекта. Това е просто задължително, но за целта имената от хедърите трябва да отговарят на имената в дейташита.
Подчертавам, това не е въпрос на "удобство" или на "струване"...
2) Естествено хедърите се правят със структури и универсални, така като имаш код за дадена периферия да не се налага да го пипаш ако смениш чипа и/или проекта.
3) Хедърите трябва да са универсални както за Ц, така и Ц++, така и асемблер. Аз в началото правех отделно за Ц/Ц++ и отделни за асемблер (заради структурите). Но има начин да е един хедъра и по-добре да е един.
4) Хедърите трябва да са документирани. Стандартът е doxygen и почти всички имат "нещо", което е по-лошо и от нищо, защо ако не бяха ползвали doxygen кодове поне нямаше да бълва толкова грешки.
-------
Нямам в момента дейташит на това LPC, но правилният запис е:
указател->ПЕРИФЕРИЯ_РЕГИСТЪР |= ПЕРИФЕРИЯ_РЕГИСТЪР_ФЛАГ;
където нещата с главни букви трябва да са изписани точно както е в дейташита!!!
Действително, тоя запис става малко по-дълъг, но затова трябва да мисли тоя който пише дейташита, а не ти... Ти трябва да мислиш какво ще правиш няколко години след като си написал кода и той е набъбнал над 100хил или 1млн. реда
