...so I'm back !
After solving first problem, I meet another one ... I can not reading two channel ADC.
I try two version of code :
-first variant
-second variantCode:@ __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_ON & _CP_ON DEFINE OSC 4 CMCON = 7 OPTION_REG.7= 1 TRISIO = %00001110 GPIO = %00000001 ANSEL = %00110110 ADCON0.7 = 1 adval var word advalb var word PAUSE 200 main: ADCON0.2 = 1 ADCON0.3 = 0 ADCON0.1 = 1 WHILE ADCON0.1 = 1 : WEND adval.HighByte = ADRESH adval.LowByte = ADRESL PAUSE 50 if adval < 950 then if adval < 940 AND adval > 650 THEN gosub Led1 IF adval < 600 AND adval > 450 THEN gosub Led2 IF adval < 400 AND adval > 150 THEN gosub Led3 IF adval < 100 THEN gosub Led4 endif ADCON0.2 = 0 ADCON0.3 = 1 ADCON0.1 = 1 WHILE ADCON0.1 = 1 : WEND adval.HighByte = ADRESH adval.LowByte = ADRESL PAUSE 50 if advalb < 950 then if advalb < 940 AND advalb > 650 THEN gosub Led1 IF advalb < 600 AND advalb > 450 THEN gosub Led2 IF advalb < 400 AND advalb > 150 THEN gosub Led3 IF advalb < 100 THEN gosub Led4 endif goto main
ONLY "advalA < 100" is sensing and LED4 command is executed ...Code:@ __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_ON & _CP_ON DEFINE OSC 4 DEFINE ADC_BITS 10 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 200 CMCON = 7 OPTION_REG = %10000110 TRISIO = %00000110 GPIO = %00000110 ANSEL = %00000110 ADCON0.7 = 1 ADVALA VAR WORD ADVALB VAR WORD pAUSE 100 main: adcin 1, advalA pause 5 if advalA < 950 then if advaLA < 940 AND advalA > 650 THEN gosub LED1 IF advalA < 600 AND advalA > 450 THEN gosub LED2 IF advalA < 400 AND advalA > 150 THEN gosub LED3 IF advalA < 100 THEN gosub LED4 endif adcin 2, advalB pause 5 if advalB < 950 then if advalB < 940 AND advalB > 655 THEN gosub LED1 IF advalB < 600 AND advalB > 450 THEN gosub LED2 IF advalB < 400 AND advalB > 150 THEN gosub LED3 IF advalB < 100 THEN gosub LED4 endif goto main
Can somebody pointing to the right direction ? Thanks in advance !
Schematic added.
![]()


...


Bookmarks