АЦП криво работает..
Добавлено: Вс окт 30, 2011 01:16:15
Делаю вот так..
Подключаю резюк переменный и начинаю крутить. Останавливаюсь.
Цифры скачат в пределах 50-70. Нестабильные значения.
Вольтметром измеряю напряжение например ровно 3.25 вольт. Никуда не скачет. Цифры как мертвые стоят. В на дисплее дерготня в приличном диапазоне. 50-70 это слишком.
Никакого вольтметра не построишь на таких глюках.
Я оцифровываю датчик давления, думал датчик сперва такое выдает. А как подал фиксированное значение так все так и глючит.
Может кто подскажет как сделать грамотно АЦП?
Код: Выделить всё
#include <pic.h> // Include header file for MCU
#include <lcd887.h> // Include Library for LCD display
__CONFIG(HS & WDTDIS & LVPDIS); // Config. High speed clock,Disable watchdog and Disable LVP
void main()
{
int resh;
int resl;
int maxadc;
int adc=0; // Keep ADC value
TRISA2 = 1; // Set RA2 input mode
ANS2 = 1; // Set RA2 analog port
ADCON0 = 0b11001001; // Select RC Mode,ANS2 active,ADON=1
lcd_init(); // Initial LCD
lcd_puts(0x80,"ADC(RA2)="); // Show message at line 1
while(1) // Infinite loop
{
GODONE = 1; // Start conversion
while(GODONE); // Wait until conversion success
adc = (ADRESH<<2)+(ADRESL>>6); // Get ADC value
lcd_puts(0x89," "); // Clear old value
inttolcd(0x89,ADC); // Update new value
delay(100); // Delay a few time for display
}
}
Цифры скачат в пределах 50-70. Нестабильные значения.
Вольтметром измеряю напряжение например ровно 3.25 вольт. Никуда не скачет. Цифры как мертвые стоят. В на дисплее дерготня в приличном диапазоне. 50-70 это слишком.
Никакого вольтметра не построишь на таких глюках.
Я оцифровываю датчик давления, думал датчик сперва такое выдает. А как подал фиксированное значение так все так и глючит.
Может кто подскажет как сделать грамотно АЦП?