NEW ' Variable Usage ' A = Main Camera Delay Time (MIN) ' B = Right Strobe Charge Time (SEC) ' C = Left Strobe Charge Time (SEC) ' D = Strobe Charge Time Difference ' P = Camera Pline Active Time (mSEC) ' L = Camera Deployment Delay Time ' V = Temporary Voltage Variable ' X = Data Storage Pointer ' Z = Temporary General Variable ' 100 PCLR(0): PCLR(2): PCLR(3): PCLR(5): PCLR(6) 102 ONERR 6000 105 A=60: B=70: C=35: P=200: L=0 110 A=A*60: B=B*100: C=C*100: D=B-C: P=P/10 ' 300 PRINT: PRINT: PRINT: PRINT 301 PRINT "LONG-TERM CAMERA TRIPOD MAIN MENU V1.1" 305 PRINT 310 PRINT "1 - SET CLOCK" 320 PRINT "2 - SET SYSTEM VARIABLES" 330 PRINT "3 - TEST MENU" 340 PRINT "4 - DEPLOY" 345 PRINT "9 - OFFLOAD DATA" 350 PRINT 400 INPUT 'ENTER SELECTION 'Z 410 IF Z = 1 GOSUB 1000 420 IF Z = 2 GOSUB 2000 430 IF Z = 3 GOSUB 3000 440 IF Z = 4 GOSUB 4000 450 IF Z = 9 GOSUB 9000 460 GOTO 300 ' ' ' Set Real-Time Clock 1000 PRINT: INPUT 'THE YEAR IS (0 TO 99) ' ?(5) 1010 INPUT 'THE MONTH IS (1 TO 12) ' ?(4) 1020 INPUT 'THE DAY IS (1 TO 31) ' ?(3) 1030 INPUT 'THE HOUR IS (0 TO 23) ' ?(2) 1040 INPUT 'THE MINUTE IS (0 TO 59) ' ?(1) 1050 INPUT 'THE SECOND IS (0 TO 59) ' ?(0) 1060 STIME: RTIME: PRINT 1070 PRINT 'THE TIME IS: ',?(2),':',?(1),':',?(0); 1080 PRINT ' on ',?(4),'/',?(3),'/',?(5) 1090 PRINT: INPUT 'HIT RETURN TO CONTINUE 'Z 1095 RETURN ' ' ' Set System Variables 2000 PRINT: INPUT 'MAIN DELAY TIME IN MIN ' A 2010 INPUT 'RIGHT STROBE CHARGE TIME IN SEC ' B 2020 INPUT 'LEFT STROBE CHARGE TIME IN SEC ' C 2021 IF C<=B GOTO 2025 2022 PRINT 'L-STROBE CHARGE TIME TOO LARGE': GOTO 2020 2025 INPUT 'P-LINE TIME IN mSEC 'P 2030 PRINT: PRINT 'MAIN TIME = ',A,' MIN' 2040 PRINT 'R-STROBE = ',B,' SEC' 2050 PRINT 'L-STROBE = ',C,' SEC' 2055 PRINT 'PLINE = ',P,' mSEC' 2060 A=A*60: B=B*100: C=C*100: D=B-C: P=P/10 2070 PRINT:INPUT 'HIT RETURN TO CONTINUE ' Z 2080 RETURN ' ' ' Camera/Strobe Test Menu 3000 PRINT: PRINT: PRINT '1 - ADVANCE CAMERA ONCE' 3010 PRINT '2 - CYCLE STROBES ONCE' 3015 PRINT '3 - EXIT' 3020 INPUT 'ENTER SELECTION ' Z 3030 IF Z=1 GOSUB 5200 3100 IF Z=2 GOSUB 3500 3120 IF Z=3 RETURN 3130 GOTO 3000 ' 'Charge strobes 3500 GOSUB 5000 3504 Z=BAT 3505 PRINT: PRINT 'CONTROL BAT VOLTS: ', Z/10,'.',Z%10 3506 PRINT 'MAIN BAT VOLTS: ', (V*5*9/256) 3507 PRINT 'RIGHT STROBE HV: ', (2*CHAN(1)) 3508 PRINT 'LEFT STROBE HV: ', (2*CHAN(0)) ' 'Trigger Strobes 3510 GOSUB 5200 3514 PRINT 'AFTER FLASH...' 3515 PRINT 'RIGHT STROBE HV: ', (2*CHAN(1)) 3517 PRINT 'LEFT STROBE HV: ', (2*CHAN(0)) 3520 RETURN ' ' 'Deployment Loop 4000 INPUT 'ENTER DEPLOYMENT DELAY TIME IN HOURS: ' L 4010 PRINT: PRINT 'MAIN LOOP TIME: ', (A/60),' MIN' 4015 PRINT 'R-STROBE CHARGE TIME: ', (B/100),' SEC' 4020 PRINT 'L-STROBE CHARGE TIME: ', (C/100),' SEC' 4025 PRINT 'P-LINE ACTIVE TIME: ', (P*10),' mSEC' 4030 RTIME: PRINT: PRINT 'THE TIME IS: ',?(2),':',?(1),':',?(0); 4035 PRINT ' on ',?(4),'/',?(3),'/',?(5) 4040 PRINT: PRINT 'CAMERA WILL START IN: ',L,' HOURS' 4045 PRINT 'REMOVE COMM. CABLE AND DEPLOY' 4050 X=0: HYB 0 4053 IF L=0 GOTO 4100 4055 FOR Z=1 TO L 4060 HYB 3600 4065 NEXT Z ' ' This is the main control loop. First, it charges ' the two strobes, then stores the strobe high-voltage ' and main battery voltage. Second, it triggers the strobes and ' advances the camera. Third, it measures the strobe high voltage ' and controller battery voltage. ' 'Charge strobes 4100 GOSUB 5000 4120 STORE X,#1,V 4130 V=CHAN(0): STORE X,#1,V 4140 V=CHAN(1): STORE X,#1,V ' 'Trigger strobes and advance camera 4150 GOSUB 5200 4160 V=CHAN(0): STORE X,#1,V 4165 V=CHAN(1): STORE X,#1,V 4170 V=CHAN(6): STORE X,#1,V ' ' 'Sleep A seconds 4180 HYB A 4190 GOTO 4100 ' ' ' ******COMMON SUBROUTINES****** ' 'Strobe Charge 5000 SLEEP 0: PSET 5: SLEEP D: PSET 2: SLEEP C 5010 V=CHAN(3): PCLR 5: PCLR 2 5020 RETURN ' 'Combined P-Line and Strobe Trigger for shutter operation 5200 PSET 0: SLEEP 0: PSET 6: PSET 3: SLEEP 5: PCLR 6: PCLR 3 '5200 MODIFIED TO PUT SLEEP IN BETWEEN START AND STOP TRIGGER 5210 SLEEP (P-5): PCLR 0 5215 RETURN ' 'Default Control Loop 6000 HYB 0 6005 PRINT 'RUNNING DEFAULT CONTROL LOOP' 'Charge strobes 6010 GOSUB 5000 'Trigger strobes and advance camera 6020 GOSUB 5200 'Sleep 2 hours 6030 HYB 7200 6040 GOTO 6000 ' ' ' Offload Data 9000 INPUT 'ENABLE DATA CAPTURE AND PRESS RETURN TO CONTINUE' Z 9010 Y=0 9020 FOR I=1 TO (X/6): FOR J=1 TO 6 9030 PRINT #4, GET(Y, #1); 9040 NEXT J: PRINT: NEXT I 9050 RETURN