3 ms·
Yeah avr-gcc is pretty thin and it would be nice if the memory mapped registers had clearer names. That being said, there's a balance between being close enough
by Arch-TK 3y ago
Yeah avr-gcc is pretty thin and it would be nice if the memory mapped registers had clearer names. That being said, there's a balance between being close enough to the hardware to get predictable timings and the necessary flexibility and being abstract enough that the code is easy to understand by people without domain specific knowledge. You can get closer to the latter by providing increasingly thick layers of abstraction.
The problem is that making the abstractions perfect (and arduino's are not, probably for this reason) can take a LOT of code.
These Atmel chips are pretty tiny and memory constrained compared to what you might be used to. And that is not even to mention the performance overhead these abstractions can incur.
Sometimes you also run into fundamental impedance mismatch issues. Situations where you can't present a high level interface to something without having to make unacceptable compromises.
All in all, while arduino is convenient for a beginner to get started, the second the beginner starts to get serious about hardware development is the second the issues begin appearing.
You can get quite far with arduino but if you want to use a device like the ATTiny85 to its full potential, you're going to struggle.