'========================================================== ' ' PicStic4 PicBASIC Pro Demo for testing the 8 and 12 bit A/D ' and the 12 bit D/A using the PASS call ' '========================================================== ' B1 var byte 'COUNTER FOR A/D CHANNELS 0-5 B2 var W1.byte0 'TEMPORARY SAVE OF LSB PARAMETER [FROM PASS] B3 var W1.byte1 'TEMPORARY SAVE OF MSB PARAMETER [FROM PASS] B19 var byte 'COMMAND [FOR PASS] B20 var byte 'LSB OF PARAMETER [FOR PASS] B21 var byte 'MSB OF PARAMETER [FOR PASS] W1 var word START: B19=3 : B20=3 : B21=0 : REM SET THE CONFIGURATION WORD call PASS gosub ERR B19=4 : B20=0 : B21=0 : REM SET THE CONFIGURATION WORD call PASS gosub ERR if B19<>4 or B20<>3 or B21<>0 then START LOOP: FOR B1=0 TO 5 B19=10 : B20=B1 : B21=0 : REM READ AN A/D CHANNEL call PASS gosub ERR LOOP1: B2=B20 B3=B21 SEROUT2 7,16780,["Analog Channel ",#B1," = ",#W1,10,13] pause 100 IF B1=4 THEN D2A4 IF B1=5 THEN D2A5 NXT1: pause 100 NEXT B1 pause 1000 GOTO LOOP D2A4: SEROUT2 7,16780,["Setting D/A Channel 0 to A/D Channel 4",10,13] B19=11 : B20=0 : B21=0 : REM SELECT A D/A CHANNEL call PASS gosub ERR D2A41: B19=12 : B20=B2 : B21=B3 : REM SET A D/A call PASS gosub ERR goto NXT1 D2A5: SEROUT2 7,16780,["Setting D/A Channel 1 to A/D Channel 5",10,13] B19=11 : B20=1 : B21=0 : REM SELECT A D/A CHANNEL call PASS gosub ERR D2A51: B19=12 : B20=B2 : B21=B3 : REM SET A D/A call PASS gosub ERR goto NXT1 ERR: if B19<>0 or B20<>0 or B21<>0 then ERR1: Serout2 7,16780,["Comm Error-",#B19,13,10] : pause 100 ERR1: return