Measure Time Intervals With The Pet Parallel User Port

Started by Blacklord, August 08, 2009, 08:39 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Blacklord

10 REM TIMER BASIC
20 REM ROBERT MACNAUGHTON OCT 5/80
25 REM 2124 GREENHURST AVE
30 REM MISSISSAUGA   L4X 1J6
35 REM THE MACHINE LANGUAGE PROGRAM MEASURES 7 TIMES DURING A SINGLE TRIP
40 REM UP TO 8 PHOTOTRANSISTORS ARE CONNECTED TO PA0-7
45 REM SYS 826 ACTIVATES THE TIMER AND? APPEARS
50 REM WHEN PA0 IS BLOCKED OFF, RAPPEARS AND THE TIMER IS READY TO START
60 REM WHEN LIGHT AGAIN FALLS ON PA0, THE TIMER STARTS AND T APPEARS
70 REM AS EACH OF PA1-7 IS CUT OFF, THE TOTAL ELAPSED TIME IS STORED
75 REM AS EACH MEASUREMENT IS MADE, ITS NUMBER APPEARS (1â€"7)
80 REM UNUSED PA LINES SHOULD BE OPEN CIRCUITS
200 PRINT "ĥ"205 INPUT "â†"NUMBER OF RUNS" ; NR
210 FORJ = 1TONR
215 SYS826
220 FOR I = 0TO6
225 REM THE NEXT STATEMENT CALCULATES THE TIMES
226 REM THE MEMORY LOCATIONS FOR THE TIMES ARE (995, 1002, 1009)(996, 1003, 1010),
227 REM CONTINUING UP TO (1001, 1008, 1015)
228 REM EACH TIMING CYCLE TAKES 43 MACHINE LANGUAGE STEPS OR 43 MICROSECONDS
230 T(I, J) = 43*(PEEK (995 + I) + PEEK(1002 + I) *256 + PEEK (1009 + I) *256*256)/1000000
240 REM NEXT STATEMENT ROUNDS OFF THE TIMES TO 1/10000 S
250 T(I, J) = INT (T(I, J)*10000)/10000
260 PINT T (I, J),
270 NEXT: PRINT: PRINT: NEXT
280 REM CALCULATE THE AVERAGE TIMES
290 PRINT "AVERAGE TIMES"
300 FOR I = 0TO6: TM (I) = 0: FOR J = 1 TONR
310 TM(I) = TM (I) + T (I, J)
320 AV(I) = TM (I)/NR
330 AV(I) = INT(AV(I)*10000)/10000
340 NEXT: NEXT
350 FOR I = 0 TO6: PRINTAV(I), : NEXT: PRINT
400 GOTO 205