'{$STAMP BS2} '{$PBASIC 2.5} 'use this program to test the adc and to find out 'the max and min values of the adc as you move 'the rotor throught the range of motion in az and el. DIRS = %0000000011110011 OUTB = 0 'set relay outputs to off ccw CON 4 cw CON 5 up CON 6 down CON 7 ' adc varibles adc_config VAR Nib 'configuration nibble for ADC startb VAR adc_config.BIT0 'ADC start bit sgldif VAR adc_config.BIT1 'ADC mode select chan VAR adc_config.BIT2 'ADC channel select msbf VAR adc_config.BIT3 'ADC 0's sent after transfer adc_cs CON 0 'adc chip select pin 0 adc_clk CON 1 'adc clock pin 1 adc_data CON 2 'adc data line pin 2 adc VAR Word 'adc data result adc_average VAR Word i VAR Byte doaz: 'getting azmeth position data adc_average=0 adc_config=adc_config | %1011 'reset config nibble chan = 0 'select AZ channel (0) GOSUB get_adc_data DEBUG HOME, "AZ= ", DEC adc,CR 'display result PAUSE 100 doel: adc_average=0 adc_config=adc_config | %1011 chan = 1 GOSUB get_adc_data DEBUG "EL= ", DEC adc PAUSE 100 GOTO doaz get_adc_data: FOR i = 0 TO 9 LOW adc_cs 'slect adc PAUSE 10 SHIFTOUT adc_data, adc_clk, LSBFIRST, [adc_config\4] 'send config nib SHIFTIN adc_data, adc_clk, MSBPOST, [adc\12] 'get 12 data bits HIGH adc_cs 'adc offline adc_average=adc_average + adc NEXT adc=adc_average/10 RETURN 'get_adc_data