Зачем вы делаете выводы о моём коде по паре функций из библиотеки?
То что пишется эвридэй сильно проще. :)
- Честно, понять исходники библиотеки std сильно проще ваших.
using LED = TLed<GPIO::PA5>; using KEY = TKey<GPIO::PC13>; KEY key; int main() { for(;;) { if(key.pressed()) { LED::Toggle(); } } } void SysTick_Handler() { key.Scan(); }
- Честно, понять исходники библиотеки std сильно проще ваших.
Вот не уверен.
- В чём преимущество вашего кода?
В той самой связи между С++ и ассемблером о которой говорил Мастер.
- Какой смысл в обращении к отдельным байтам регистра bsrr, если можно работать масками, вычисляемыми на этапе компиляции?
Для ARM есть разница загрузить из памяти 32-битную маску/константу в РОН или 8-битную, чтобы потом её в регистр периферии записать. Или можно избежать таким образом процесса чтение-модификация-запись. Это реальная экономия на памяти/скорости. Вот С-программисты этим не заморачиваются, хотя почему-то считают что намного ближе к железу. Оно и понятно, каждый раз это делать руками - упаришься, а я заставляю компилятор делать это при каждом доступе к порту.