Analog difference
by Tom Igoe
This program takes two analog inputs and returns
the difference of the two.
It's useful when you have a sensor with V+ and V- outputs, but no clear +5V and ground outputs.
' Define ADCIN parameters ' Set number of bits in result DEFINE ADC_BITS 10 ' Set clock source (3=rc) DEFINE ADC_CLOCK 3 ' Set sampling time in microseconds DEFINE ADC_SAMPLEUS 10 ' serial constants and pin assignments: tx var portc.6 rx var portc.7 n9600 con 16468 adcVar VAR WORD ' Create variable to store result adcvar2 var word result var word ' Set PORTA to all input TRISA = %11111111 ' Set up ADCON1 ADCON1 = %10000010 Pause 500 ' Wait .5 second main: ADCIN 0, adcVar ' Read channel 0 pause 10 ' let the ADC settle adcin 1, adcvar2 ' read channel 1 ' get the difference between the two: result = abs(adcvar - adcvar2) ' send out the result SEROUT2 tx, n9600, [DEC result, 10, 13] Pause 10 ' let the ADC settle GoTo main