Зачем вы делаете выводы о моём коде по паре функций из библиотеки?
То что пишется эвридэй сильно проще. :)
- Честно, понять исходники библиотеки 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-битную, чтобы потом её в регистр периферии записать. Или можно избежать таким образом процесса чтение-модификация-запись. Это реальная экономия на памяти/скорости. Вот С-программисты этим не заморачиваются, хотя почему-то считают что намного ближе к железу. Оно и понятно, каждый раз это делать руками - упаришься, а я заставляю компилятор делать это при каждом доступе к порту.