Эксперт
Регистрация: 08.11.2009
Сообщений: 2,310
Репутация: 641
|
Код:
setup_adc_ports(sAN0|sAN1); setup_adc(ADC_CLOCK_DIV_64|VSS_VDD);//- делитель поставить 16. // посмотреть в описании масок, возможно нужно явное включение АЦП Код:
setup_adc_ports(sAN1); // - удалить не нужен. set_adc_channel(1); delay_us(30) ; // добавить vol1=vol1+read_adc(); // delay_ms(30); |
||
Оценка
|
Новичок
Регистрация: 01.03.2009
Сообщений: 12
Репутация: 13
|
Также нагрузка на входе АЦП должна быть не более 10 кОм.
|
||
Оценка
|
Новичок
Регистрация: 02.04.2012
Сообщений: 15
Репутация: 13
|
Необходимо установить задержку после выбора канала АЦП и перед запуском измерения. Для удобства - написать свою функцию, учитывая задержку, и номер канала АЦП. У микроконтроллера разрядность 10 бит, 0х3FF - максимальное значение. Если это умножить на 100, тогда превысим int16. Будет бред.
|
||
Оценка
|
Новичок
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
|
С переменными всё норм ! Да и прога написана идеально (ну скорее всего может быть подвергнута оптимизации , но этого не нужно) . Изменять делитель частоты для АЦП ничего не даст . Я склоняюсь к тому что разводка платы произведена не правильно, типа масса не в круговую, или какие то паразитные ёмкости ...Короче либо аппаратно , либо микроконтроллер хреновый от природы .
|
||
Оценка
|
Новичок
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
|
С пульсациями порядок . Питал от самодельного лабораторного БП и от гелиевого АКБ 7А/ч 12 вольт. Результат одинаковый. До этого делал подобные проекты на PIC16F684 , atmega 8 и с динамической индикацией и на LCD (правда без сдвиговых регистров, потому как ног хватало, иногда даже с избытком), и было приемлемо. А тут полтергейст какой то.
|
||
Оценка
|
Новичок
Регистрация: 17.03.2018
Адрес: Курган РОССИЯ
Сообщений: 1,079
Репутация: 16
|
|
||
Оценка
|
Новичок
Регистрация: 02.04.2012
Сообщений: 15
Репутация: 13
|
Я понимаю, что в исходнике int32, но понимает-ли это компилятор? Предлагаю автору попробовать уменьшить счетчик накоплений со 100, например, до 50. Это просто. Тогда будет видно. Да и с задержкой можно поиграться, при 0,1 мкф и 10к я предлагаю попробовать 3 миллисекунды.
Последний раз редактировалось witaly_k; 28.02.2019 в 02:16.
|
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |