AVR USART: сделать регистр данных гибким

У меня есть библиотека, которая может записывать в последовательный порт на 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;
}

Например. Могу ли я иметь указатели на регистры?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]