Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 42

Тема: Странное поведение АЦП ATmega64

  1. #11

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,420
    Позывной
    LZ2WSG
    Сколько kΩ/MΩ потенциометры?
    ATmega64 -> The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less.


  2. #12

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    1,000
    Кстати да, можно и выборку замедлить максимально, сигналы это допускают, и ксв и потенционметр незачем сто тыщ раз в секунду измерять.

    Про библиотеку или регистры, это имелось в виду, например что действительно делает ActivateInterrupt (); в коде. По даташиту ведь порядок выборки расписан, и время акуальности данных тоже, а не зная библиотеку сложно судить, может даже порядок инициализации имеет значение..
    Последний раз редактировалось ozforester; 09.06.2021 в 18:39.

  3. #13

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,420
    Позывной
    LZ2WSG
    Попробовал на AТmega328 (Arduino): 3 входа, потенциометры: 27k, 4,7k, 560k (поворачиваю 27k). Влияния не замечаю (кроме +/-1..2 ед., как описано в pdf).
    824
    180
    1023
    ---
    823
    180
    737
    ---
    822
    180
    143
    ---
    823
    180
    677
    ---
    822
    180
    366
    ---
    822
    180
    0
    Последний раз редактировалось veso74; 09.06.2021 в 18:43.

  4. #14

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    1,000
    veso74, Для меню кнопочного и вовсе два младших бита выбрасывал, проще с одним байтом то.

    Скрытый текст

    adc_read: ; ADC3 or PC3
    sbi ADCSRA, ADSC ; start conversion
    adc:
    sbis ADCSRA, ADIF ; conversion complete
    rjmp adc ;
    in sample, ADCL ; lsb sample
    lsr sample ; 0xxx xxxx
    lsr sample ; 00xx xxxx
    in temp, ADCH ; msb sample
    andi temp, 0x03 ; ---- --xx
    swap temp ;--xx ----
    lsl temp ;
    lsl temp ; xx-- ----
    or sample, temp ; single byte
    ret


  5. #15
    Выбросьте всю ту хренотень, что у Вас написано и, обратите внимание на пост 3. Все там не читайте, все что касается работы с АЦП подробно расписано на стр. 21-23.

  6. #16

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    1,000
    SoundMaster,
    Был невнимателен, не скопировал последниюю часть, где функции через регистры определены. Случайно глаз зацепился за опечатку в имени функции, что для популярных библиотек нехарактерно, почесал затылок, промотал до конца, опа - несопированный кусок. (: Сейчас просмотрю ещё раз, если что покажется подозрительным, то отмечусь. Это ведь хорошо, что с первого раза не получается, приходится глубже вникать в матчасть.

  7. #17

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    1,000
    Отвлекся. Первый вопрос: Что-то не вижу код функции adcscan256? Следующий, наверное, будет про прерывание.

  8. #18
    Цитата Сообщение от veso74 Посмотреть сообщение
    Сколько kΩ/MΩ потенциометры?
    Как раз 10 кОм

    Добавлено через 10 минут(ы):

    код функции adcscan256
    Код:
    void adcscan256(ADCinput)
    {
    MasterADC();
    adcrrtt=adcrrtt/18u;/*делим на 18 чтобы максимально близко вогнать сумму от 5 измерений в диапазон от 0 до 256*/
    if(adcrrtt>255u){adcrrtt=255u;}
    }
    Последний раз редактировалось SoundMaster; 10.06.2021 в 12:19.

  9. #19
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,741
    Цитата Сообщение от SoundMaster Посмотреть сообщение
    чтобы максимально близко вогнать сумму от 5 измерений в диапазон от 0 до 256
    Вогнать хотите сумму, а вгоняете каждое значение - может тут что скрывается?
    Вадим


  10. #20
    Почему каждое значение? MasterADC() проводит 5 измерений вызывая функцию ADC_convertion () и получая каждый раз результат resultadctemp и суммирует их в общий результат adcrrtt.
    Я сейчас пока ничего не трогал, но думаю может дело в режиме преобразования одиночное/конвейерное?

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Странное поведение VEF-201
    от alexbe в разделе Для начинающих
    Ответов: 41
    Последнее сообщение: 29.10.2018, 12:15
  2. Ответов: 52
    Последнее сообщение: 01.10.2018, 16:29
  3. Странное поведение супергетеродина
    от jett в разделе Для начинающих
    Ответов: 18
    Последнее сообщение: 07.06.2015, 22:43
  4. GM360 странное поведение
    от ra9flw в разделе Модификация радиостанций
    Ответов: 3
    Последнее сообщение: 15.05.2010, 12:23
  5. Странное поведение LM7001
    от Семён в разделе Для начинающих
    Ответов: 7
    Последнее сообщение: 07.04.2008, 22:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •