Comment by bombela
3 years ago
In my experience a decent way to solve this is by two layers of abstractions. I will take any better design ideas!
First layer gives you safe access to the hardware registers. For example, ensure atomic/synchronized access, forbid invalid/reserved values. Name the flags/bits to reduce human mistakes (reg |= Prescaler::Div8.
You can still miss-configure the PWM/Timer settings of course.
The second layer gives you a safe driver interface. Giving you all the options to configure a timer for a some PWM settings for example.
No comments yet
Contribute on Hacker News ↗