У меня есть библиотека, которая может записывать в последовательный порт на Arduino. Использует назначение формы
#define UDRn UDR0
....
void write(uint8_t data) {
UDRn = data;
}
для записи. Насколько я понимаю, UDR0 — это регистр данных для последовательного порта 0. #define означает, что UDRn будет этим регистром данных. Библиотека имеет флаг, чтобы изменить UDRn на UDR1 во время компиляции.
Тем не менее, я хотел бы использовать одну и ту же библиотеку для записи разных данных в Serial0 и Serial1. Поэтому мне нужно иметь возможность иметь один экземпляр, который пишет в UDR0, и один, который пишет в UDR1. Можно ли это унифицировать?
Что-то вроде:
class Writer {
public:
write(uint8_t);
private:
register target;
}
void Writer::write(uint8_t data) {
target = data;
}
Например. Могу ли я иметь указатели на регистры?
Задача ещё не решена.
Других решений пока нет …