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)», используя регистры?

Заранее спасибо.

0 ответов

Другие вопросы по тегам