' ========================================================================= ' ' File...... ADC0834.BS2 ' Purpose... ' Author.... Jon Williams ' E-mail.... jwilliams@parallax.com ' Started... ' Updated... 14 MAR 2005 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' ' *** NOT TESTED *** ' ' Connect 1K resistor between Stamp Dio pin and ADC0834.10 (data out) to ' prevent a damage in the event of a data collision. Tie ADC DI and DO ' pins together. ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- CS PIN 15 ' ADC0834.2 Dio PIN 14 ' ADC0834.13 / ADC0834.10 Clk PIN 13 ' ADC0834.12 ' -----[ Constants ]------------------------------------------------------- ' -----[ Variables ]------------------------------------------------------- chan VAR Nib ' channel number mux VAR Nib ' ADC mux bits adc VAR Byte(4) ' channel data ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Reset: HIGH CS ' -----[ Program Code ]---------------------------------------------------- Main: DEBUG HOME FOR chan = 0 TO 3 GOSUB Read_0834 DEBUG "CS", DEC1 chan, ": ", DEC3 adc(chan), CR NEXT GOTO Main END ' -----[ Subroutines ]----------------------------------------------------- ' Reads ADC0834 inputs as single-ended ' -- input to read is passed in 'chan' (0 - 3) Read_0834: LOW CS LOOKUP chan, [%100, %110, %101, %111], mux SHIFTOUT Dio, CLk, MSBFIRST, [1\1, mux\3] ' send start, mux SHIFTIN Dio, Clk, MSBPOST, [adc(chan)\8] ' read selected input HIGH CS RETURN