'{$STAMP BS2} '{$PBASIC 2.5} ' ' Connect 1K resistor between Stamp Dio pin and ADC0832.6 (data out) to ' prevent a damage in the event of a data collision. ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- CS PIN 0 ' ADC0832.1 Dio PIN 1 ' ADC0832.5 / ADC0832.6 Clk PIN 2 ' ADC0832.7 XSERVO CON 14 BAUD CON 396 ' -----[ Constants ]------------------------------------------------------- ' -----[ Variables ]------------------------------------------------------- chan VAR Nib ' channel number adc0 VAR Word ' channel 0 value adc1 VAR Byte ' channel 1 value MAX_VALUE CON 600 DEGREE VAR Word ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- initalize: SEROUT 15,BAUD+$8000,["!SCSBR",1,CR] ' -----[ Program Code ]---------------------------------------------------- Main: DO GOSUB Read_0832 DEBUG HOME, "Ch0: ", DEC4 adc0,CR DEGREE = adc0*/(MAX_VALUE)+100 IF DEGREE<360 THEN DEGREE=360 IF degree>1240 THEN degree=1260 'DEBUG DEC4 degree,CR SEROUT 15,6+$8000, ["!SC",14,8,DEGREE.LOWBYTE,DEGREE.HIGHBYTE,CR] SEROUT 15,6+$8000, ["!SC",15,8,DEGREE.LOWBYTE,DEGREE.HIGHBYTE,CR] 'PAUSE 20 LOOP END ' -----[ Subroutines ]----------------------------------------------------- ' Reads ADC0832 inputs as single-ended Read_0832: LOW CS SHIFTOUT Dio, CLk, MSBFIRST, [%11000\5] ' select channel 0 SHIFTIN Dio, Clk, MSBPOST, [adc0\9] HIGH CS RETURN