1. Убедитесь, что вы выдерживаете все временные имтервалы, указанные в datasheet.
Если вы включаете и выключаете ацп, то имеется минимальная задержка, которую вы должны выдержать перед преобразованием.
Если вы переключаете каналы ввода, также необходимо выдержать задержку, и
наконец имеется временной параметр Tad, который является временем необходимым для преобразования каждой выборки. Он должен
быть между 2us и 6us. Если Tad слишком короток, результат не может быть полностью преобразован(конвертирован) прежде, чем преобразование закончится, и если Tad сделан слишком
долгим, напряжение на конденсаторе, который осуществляет выборки может
уменьшится прежде, чем преобразование будет выполнено.
Эти спецификации выбора времени указаны в datasheet вашего контроллера
2. Часто выходное сопротивление источника аналогового сигнала довольно высоко
(больше 1К), чтобы зарядить этим током внутренний конденсатор за маленькое время.
Если сигнал на входе не изменяется слишком бысто, попробуйте подключить паралельно входу
ацп конденсатор емкостью 0.1uF. Этот конденсатор будет заряжен средним напряжением на входе,
и сможет давать ток, необходимый для того, чтотбы заряжать 52пф внутренний
конденсатор.
3. На PIC16C71, вывод одного из аналоговых входов - рядом с выводом генератора.
Естественно, если эти дорожки проводников проходят рядом с друг другом,
на аналоговом входе возникнет некоторый шум от генератора.
Это особенно вырыжено, когда источник частоты - внешний генератор, так как его выход - прямоугольные импульсы
с высоким уровнем частоты к фронтам, в противоположность кристаллическому
резанатору, который обеспечивает более плавную волну синуса. Выбор RC генератора дает самую высокую точность преобразования.