PINB как присвоить значения

Тема в разделе "Микроконтроллеры AVR", создана пользователем Yerabdi, 28 май 2018.

  1. Yerabdi

    Yerabdi Гик

    Здравствуйте всем что то не получается присвоить значения PINB к переменной uin_t In
     
  2. ostrov

    ostrov Гуру

    Код (C++):
    in = PINB;
     
    Daniil нравится это.
  3. parovoZZ

    parovoZZ Гуру

    uin_t - это беззнаковый интегер? Если так, то по-хорошему надо сделать приведение типов. PINB имеет размерность char. Либо In заменить на char (uint8_t).
     
  4. DetSimen

    DetSimen Гуру

    не надо, он просто имя типа неправильно написал.
    uint8_t portb = PORTB;
    и сё
     
  5. Yerabdi

    Yerabdi Гик

    Не правильно написал uint8_t, дело в том что для отправки включенного порта скажем if(!(PIND&(1<<PD2))) {out=4;} . Не получается сразу присвоить значение к if(!(PIND&(1<<PD2))) {out=PIND;} для отправки по USART
     
  6. DetSimen

    DetSimen Гуру

    шта?
     
  7. parovoZZ

    parovoZZ Гуру

    КРАСАУЧЕГ! Просят пин считать, а ты ему целиком порт хирачешь. Чисто русский подход!
     
  8. b707

    b707 Гуру

    не, это сам ТС путается, что ему надо - порт или пин. Поэтому и ответить на его вопрос мудрено.
     
  9. parovoZZ

    parovoZZ Гуру

    Ты хочешь здесь присвоить??? А где здесь операция присвоения?

    Если почитать учебники, то там пишут, что актуальное состояние пинов лежит в регистре PIN. А регистр PORT для управления.
     
    Последнее редактирование: 29 май 2018
  10. ostrov

    ostrov Гуру

    Сжается мне, ТС надо разобраться с двоичной арифметикй и логическими операциями. И это не так страшно как звучит.
     
  11. Yerabdi

    Yerabdi Гик

    Вроде получился поставил указатель *Р , P=PIND; и все значение который определяется в порте PIND нормально принимает Р
     
  12. parovoZZ

    parovoZZ Гуру

    Не понял, что за проц?
     
  13. Yerabdi

    Yerabdi Гик

    атмега328Р
     
  14. ostrov

    ostrov Гуру

  15. parovoZZ

    parovoZZ Гуру

    Я думал, что у тебя хитрый проц какой. Нормально там все - по прямой адресации регистры доступны. Зачем косвенная? Что у тебя с видимостью переменной? Не в прерывании значение присваиваешь?
     
  16. Yerabdi

    Yerabdi Гик

    Пробовал запрещать после присвоение разрешать прерывания все равно нормальные показания не выходил к простому uint8_t In
     
  17. parovoZZ

    parovoZZ Гуру

    Мля, в каком месте кода присваиваешь значение?
     
  18. DetSimen

    DetSimen Гуру

    ты тоже болгарин штоли?
     
    parovoZZ нравится это.
  19. Yerabdi

    Yerabdi Гик

    Отдельную функцию написал в котором раз 50мс идет опроc
     
  20. parovoZZ

    parovoZZ Гуру

    Функция откуда вызывается? Функция инлайнится или нет?