|
АЦП работает с максимальдной скорость, хотя скорость на это не влияет, полоучаю данные с одной ножки, допустим там 0xff, когда я переключаюсь на другую ногу, не смотря на то, что на ней 0в, она при первом проходе показывает значения примерно половина от 0xff, т.е. половитна как бы от прошлого раза, вот таке я его включаю:
...
{
AMX0P=temp; //установить номер канала АЦП
for(i=50; i; i--) // ставил разную задержку, на ситуацию вообще не влияет, хоть буду 1с ждать
AD0BUSY=1; //запустить преобразование АЦП
while(!adc_int) // пока не произошло 4 отсчета
AD0BUSY=1; //запустить преобразование АЦП
adc_int=0;
return (result);
}...
void ADC_ISR (void) interrupt 10 //прерывания от АЦП
{
...
AD0INT=0; //преобразование завершено, сбросили бит прерывания
temp=ADC0H;
...
}
temp при первом проходе, равнается полной чуши, на следующих все становится на свои места, в чем дело может быть?
E-mail: info@telesys.ru