PINx vs PORTx, или зачем нужен PINx?

Тема в разделе "Микроконтроллеры AVR", создана пользователем ostrov, 22 фев 2016.

  1. ostrov

    ostrov Гуру

    Понятно, что из первого читаем состояние порта, во второй пишем. Только вот PORTx тоже доступен для чтения. Например, как компактно и элегантно выглядит команда инвертирования ножки порта, например для программы blink:
    Код (C++):
    PORTB ^= 1 << 7;
    Вопрос: в чем преимущество использования PINx для чтения порта?
     
  2. Unixon

    Unixon Оракул Модератор

    Из PINx вы читаете действительно состояние пина, из PORTx - желаемое.
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Я бы сказал Из PINx вы читаете действительно состояние пина в а PORTх выводите желаемое состояние
     
  4. ostrov

    ostrov Гуру

    То есть разница в один такт или вроде того? Пока желаемое не станет действительным.
     
  5. Unixon

    Unixon Оракул Модератор

    В режиме входа какую пользу вам даст чтение PORTx ?
     
  6. ostrov

    ostrov Гуру

    Пу сути никакой, вот единственный пример который в голову пришел - инвертирование бита без его запоминания в перменной. И тот в режиме выхода.
     
  7. Onkel

    Onkel Гуру

    ну PINx и PORTx вообще-то это разные регистры. И для чтения состояния пинов порта используется только PINx