Сколько kΩ/MΩ потенциометры?
ATmega64 -> The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less.
Сколько kΩ/MΩ потенциометры?
ATmega64 -> The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less.
Кстати да, можно и выборку замедлить максимально, сигналы это допускают, и ксв и потенционметр незачем сто тыщ раз в секунду измерять.
Про библиотеку или регистры, это имелось в виду, например что действительно делает ActivateInterrupt (); в коде. По даташиту ведь порядок выборки расписан, и время акуальности данных тоже, а не зная библиотеку сложно судить, может даже порядок инициализации имеет значение..
Последний раз редактировалось ozforester; 09.06.2021 в 18:39.
Попробовал на 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.
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
Выбросьте всю ту хренотень, что у Вас написано и, обратите внимание на пост 3. Все там не читайте, все что касается работы с АЦП подробно расписано на стр. 21-23.
SoundMaster,
Был невнимателен, не скопировал последниюю часть, где функции через регистры определены. Случайно глаз зацепился за опечатку в имени функции, что для популярных библиотек нехарактерно, почесал затылок, промотал до конца, опа - несопированный кусок. (: Сейчас просмотрю ещё раз, если что покажется подозрительным, то отмечусь. Это ведь хорошо, что с первого раза не получается, приходится глубже вникать в матчасть.
Отвлекся. Первый вопрос: Что-то не вижу код функции adcscan256? Следующий, наверное, будет про прерывание.
Последний раз редактировалось SoundMaster; 10.06.2021 в 12:19.
Почему каждое значение? MasterADC() проводит 5 измерений вызывая функцию ADC_convertion () и получая каждый раз результат resultadctemp и суммирует их в общий результат adcrrtt.
Я сейчас пока ничего не трогал, но думаю может дело в режиме преобразования одиночное/конвейерное?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)