Arduino Due устанавливает порт как ввод с использованием регистров
У меня есть Ardino Due, и я хочу улучшить свои навыки работы с микроконтроллерами. Я начинаю использовать регистры вместо встроенных функций.
Мне удалось записать данные, но я не могу читать, потому что не знаю, как установить порт в качестве ввода. Я попытался установить штифт в качестве входа с предварительно созданной функцией, и я успешно прочитал.
Я привожу здесь свой код.
const int EchoPin = 22; // Pin D9
const int TriggerPin = 21; // Pin D8
void setup() {
Serial.begin(9600);
PIOC-> PIO_OER |= 1 << TriggerPin; // Enable Port 8 as output
//PIOC -> PIO_PUER |= 1 << EchoPin; // Pull up resistor in port 9
//PIOC -> PIO_PER |= 1 << EchoPin; // Enable Port 9 (Doesn't work)
//PIOC -> PIO_ODR |= 1 << EchoPin; // Enable Port 9 as input (Doesn't work)
pinMode(9, INPUT);
}
void loop() {
int32_t result;
PIOC-> PIO_SODR |= 1 << TriggerPin; //High Level
delay(100);
result = (PIOC -> PIO_PDSR & (1 << EchoPin)) >> EchoPin; // Get the bit and move it
Serial.println(result, BIN);
delay(1000);
PIOC-> PIO_CODR |= 1 << TriggerPin; //Low Level
delay(100);
result = (PIOC -> PIO_PDSR & (1 << EchoPin)) >> EchoPin; // Get the bit and move it
Serial.println(result, BIN);
delay(1000);
}
Итак, как мне сделать строку «pinMode(9, INPUT)», используя регистры?
Заранее спасибо.