Доброго дня, коллеги!
Подскажите, где слабое место в программе- не работает, как хотелось бы.
Суть - на AN0/GP0 приходит аналоговый сигнал от датчика температуры, в зависимости от температуры, порты моргают светодиодами.
Должны по заыслу. В реале-работает та часть, если условие IF выполняется. Судя по всему, неверно проинициализировал АЦП.
Научите правому делу...
Вот текст
@ device pic12F675, intrc_osc_noclkout, wdt_on, PWRT_ON,mclr_off, protect_off
define adc_bits 10
define adc_clock 3
define adc_sampleus 50
adval var word
trisio=%00000001
CMCON = 7
ANSEL = %00000001 ' Set AN0 analog
adcon0=%10000011
pause 500
adcin 0, adval
if adval<=550 then cold
gpio.1=1
pause 2000
gpio.1=0
goto finish
cold:
gpio.2=1
gpio.1=1
pause 5000
gpio.1=0
pause 15000
gpio.2=0
finish:
endДобавлено (02.09.2011, 22.03.16)
---------------------------------------------
разобрался. как и ожидал, проблема была в АЦП, точнее - входном напряжении. Думал, что состоянием adval будет являться абсолютное значение напряжения, но нет. значением является результат счета по формуле Uвх/Udd*1024 при выборе опрным напряжением напряжения питания.