You'll need a PIC with onboard A/D to use ADCIN. This works on an F876.
Code:DEFINE OSC 4 DEFINE ADC_BITS 8 ' Set number of bits in result DEFINE ADC_CLOCK 2 ' Set clock source (3=rc) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS SVO_POS VAR BYTE ' 90 deg horn rotation (adjust for servo) 'LEFT CON 100 ' Left position 1mS 'RIGHT CON 200 ' Right position 2mS ' 180 deg horn rotation (adjust for servo) LEFT CON 70 ' Left position 0.70mS RIGHT CON 240 ' Right position 2.4mS TRISA = %00001001 ' RA0 = A/D input ADCON1.7 = 0 ' RA.3 = +Vref, Set PORTA analog and left justify result LOW 0 ' Setup RB0 for high-going pulseout Loop: ADCIN 0,SVO_POS ' Read A/D channel IF SVO_POS < LEFT THEN SVO_POS = LEFT IF SVO_POS > RIGHT THEN SVO_POS = RIGHT PULSOUT 0,SVO_POS ' Move servo PAUSE 15 ' ~60Hz update-rate GOTO Loop ' Forever




Bookmarks