Обновить

Динамические списки GPIO-линий: пакетные операции с группами выводов на современном C++

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.9K
Всего голосов 5: ↑3 и ↓2+3
Комментарии8

Комментарии 8

Такой подход удобен с точки зрения чистого программиста. Но с точки зрения программиста-схемотехника это не очень практично. Не во всех случаях это облегчит переназначение пинов или миграцию на другой микроконтроллер.

Естественно, это механизм абстракции, а не серебряная пуля. Есть ограничение периферии, которая привязана к конкретным пинам, есть ограничения по физической разводке платы. Их надо учитывать. И да, эта библиотека для удобства программиста.

GPIO настолько тривиально, зачем это всё? :) Про обработку прерываний от GPIO кстати здесь вроде как вообще ничего.

Прерывания немного выходят за рамки "групповых операций с GPIO".

Тогда почему, применительно к ВГ015, не задействуется "механизм маскирования"?

Он менее удобен, чем CLEAR/SET регистры.

А Вы вообще в курсе, что механизм маскирования может одновременно и сбрасывать, и устанавливать биты? :) Всего одной операцией записи.

А Вы вообще в курсе, что механизм маскирования разделяет порт на две половины - младшие 8 пинов и старшие 8 пинов. И выбор в какой из из двух, или ода сразу, регистров маски писать, обходится от 3 до 6 тактов на каждый используемый порт дороже чем безусловная запись CLEAR/SET регистров:)
Но если использовать маскирование и constexpr группу, которая не пересекает половину порта, то да, можно сэкономить один такт :))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации