PINx аналоговый

Тема в разделе "Микроконтроллеры AVR", создана пользователем DrProg, 12 авг 2015.

  1. DrProg

    DrProg Вечный нерд

    Вопрос, вероятно, нубский, только начинаю вылезать из скорлупы IDE. С регистрами портов более менее все понятно, но пока не могу понять как считать состояние аналогового пина. В PINx, насколько понимаю состояние битов пинов в цифровом виде. Подскажите пожалуйста или дайте ссылку с примером или объяснением.
     
  2. Alex19

    Alex19 Гуру

    DrProg нравится это.
  3. DrProg

    DrProg Вечный нерд

    Спасибо, то что надо. Не думал однако, что считать в аналоговом виде настолько сложнее.
    И что, получается, если на МК нет порта А, то и АЦП нет?
     
  4. Alex19

    Alex19 Гуру

    Не сразу понял, о чем речь. Наверно Вы говорите о примере по 1 ссылке, там описание работы ATmega32, у Вас скорее всего ардуина. У ардуин АЦП на других портах.

    Почему дал эти ссылки, там подробно расписано о принципах работы с АЦП.

    Разумеется, регистры могут незначительно отличатся в зависимости от самих чипах.

    Поэтому придется читать такие pdf - http://www.atmel.com/images/atmel-8...pa-168a-168pa-328-328p_datasheet_complete.pdf.

    Или искать в сети описание для конкретного чипа, к примеру ATmega328 - http://avrprog.blogspot.com/2013/03/blog-post_13.html, вот пример работы http://avrprog.blogspot.com/2013/04/adcc.html.

    Порты АЦП в ардуинах.
    Ардуины на базе ATmega168/328 - https://www.arduino.cc/en/Hacking/PinMapping168.
    ATmega2560 на K и F - https://www.arduino.cc/en/Hacking/PinMapping2560.
    ATmega 32U4 на F - https://www.arduino.cc/en/Hacking/PinMapping32u4.

    UPD.
    Это будет лишь по началу. Между чипами, очень много общего. К примеру I2C один в один на перечисленных чипах ардуины (только пины разные). UART лишь небольшие изменения связанные с тем, что где-то больше, где-то меньше и т.д.
     
    Последнее редактирование: 12 авг 2015
    DrProg нравится это.
  5. DrProg

    DrProg Вечный нерд

    У меня Attiny 13, на ней нет порта А.
     
  6. Megakoteyka

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

    DrProg нравится это.
  7. Alex19

    Alex19 Гуру

    Любое знакомство с AVR, да и STM, лучше начинать с поиска даташита на конкретный чип. Просто вбиваем в поиск название чипа. Многие вопросы просто отпадут сами собой.

    Как показал Megakoteyka.
     
    Последнее редактирование: 12 авг 2015
  8. KamAdm

    KamAdm Нерд

    Код (Text):
    int Volts = 0; // Вольтметр
    void setup()
    {
    }
    void loop()
    {
    Volts = analogRead_C(2); // РВ4 в ATtiny13
    }
    аналог
    Код (Text):
    unsigned int analogRead_C(byte channel){
      ADMUX = channel; // ADC pin
      ADCSRA |= 1<<ADEN;
      ADCSRA |= 1<<ADSC;
      while(!(ADCSRA & (1<<ADIF)));
      ADCSRA |= 1<<ADIF;
      byte low  = ADCL;
      byte high = ADCH;
      ADCSRA &= ~(1 << ADEN);  // отключаем АЦП, для уменьшения энергопотребления
      return (high << 8) | low;
    }
    (с)перто
     
    DrProg нравится это.
  9. DrProg

    DrProg Вечный нерд

    Так, с этим разобрались. Теперь не получается добавить Tiny 13 в IDE. Делаю как показано здесь, не видит. Пробовал переписать в другие папки и подпапки, не помогает. Папки, подскажите что сделать? Помогите оторваться. )

    Да, IDE 1.6.5.

    upd: удалось установить надстройку по инструкции отсюда, но там нет 13, начинается с 45. Существует ли поддержка 13 в природе?
     
    Последнее редактирование: 13 авг 2015
  10. DrProg

    DrProg Вечный нерд

    Вот это нужная функция, спасибо.
     
  11. KamAdm

    KamAdm Нерд

    DrProg нравится это.
  12. geher

    geher Гуру

    Вот с версией IDE и могут быть проблемы. В версии 1.5 они поменяли формат файла boards с описанием плат и МК. В результате образовалась некоторая несовместимость.
    Для примера.
    Тут: http://code.google.com/p/arduino-tiny/
    выложены два разных пакета поддержки AtTiny для версий IDE до 1.5 и после.
    Но там нет поддержки AtTiny13.
    Наверное, надо поискать что-то аналогичное на ресурсах, посвященных AtTiny13, т.е. версию для IDE 1.5 и более поздних.
    Или по аналогии с тем, как оно сделано в пакетах по ссылке, сформировать добавку с учетом требований новой версии IDE.
     
    Последнее редактирование: 13 авг 2015
  13. DrProg

    DrProg Вечный нерд

    Да, опередили, ее я и поставил о чем дописал выше. На 13 найти пока не могу.

    Зайду с другого боку, AVR Studio поддерживает функции IDE? Может быть есть библиотека для начала?
     
  14. DrProg

    DrProg Вечный нерд

  15. DrProg

    DrProg Вечный нерд

    Всем спасибо, все получилось. Единственное что пока не понял, пины А0 и А1 не работают должным образом, но с А2 и А3 все ок. Собрал простую тестовую схему по такому типу, потенциометр будучи подключенным в А2 или А3 прекрасно руководит лампочкой, но через А0 работает как тумблер, то есть в определенном положении выставляет либо HIGH либо LOW без промежутков. В А1 вообще никак не реагирует на происходящее. Не пойму почему такая разница.
     
  16. DrProg

    DrProg Вечный нерд

    Сделал первую нехитрую поделку на базе Tiny13 - бегущий огонёк при помощи 74HC595. Дебют, так сказать, аппаратного отрыва от Ардуины. Правда пока что прошиваю через Мегу, ибо программатор пока не спаял, да и вообще не вижу чем он удобнее. Жду небольшую партию Tiny85, там на 8Кб разгуляться можно. )

    Думаю идея применять малипусек везде, где хватит их возможностей, правильная.
     
  17. Unixon

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

    AVR Studio - это другая IDE. Если нужны функции библиотеки Wiring - подключайте ее файлы в проект вручную.