- GOTO SCREEN begin *>SCREEN begin - COMMENT "c-current, a-actual, t-theoretical" channel%=1 maxrpm&=1000 timea&=0 counta&=0 timeb&=0 countb&=0 dgrepin&=16 ctsprev&=1024 ctspdgre!=ctsprev&/360 clutch%=0 degerror!=0 margin!=0.05 tdegree!=length!/ctspdgre! cnumber%=4 - PUT LARGE TEXT AT (1,1): "WHAT IS THE MAX RPM?" - GET NUMBER maxrpm& AT (17,3) USING "+######" DEFAULT maxrpm& - PUT LARGE TEXT AT (2,3): "HOW MANY COUNTERS?" - GET NUMBER cnumber% AT (20,7) USING "#" DEFAULT cnumber% - COMMENT "Now reset the counters" call writecnt(1,0,0) call writecnt(2,0,0) if cnumber%<3 then goto main call writecnt(3,0,0) call writecnt(4,0,0) goto main *>SCREEN main LABEL topomain call readms(timea&) call readcnt(channel%,counta&) - SOFTKEY (1) " CH1" GOTO SCREEN chone if cnumber%<2 then goto nomore - SOFTKEY (2) " CH2" GOTO SCREEN chtwo if cnumber%<3 then goto nomore - SOFTKEY (3) " CH3" GOTO SCREEN chthree if cnumber%<4 then goto nomore - SOFTKEY (4) " CH4" GOTO SCREEN chfour LABEL nomore - SOFTKEY (5) "Zrst?" GOTO SCREEN zchange - PUT LARGE TEXT AT (2,1): "CH RPM:" - PUT LARGE NUMBER channel% AT (4,1) USING "#" - BAR GRAPH UPPER LEFT (10,23) LOWER RIGHT (179,36) ORIENT: 0 - BAR GRAPH SCALE LOWER LIMIT 0 UPPER LIMIT maxrpm& - PUT TEXT AT (2,6): "0" - PUT NUMBER maxrpm& AT (25,6) USING "######" - PUT TEXT AT (14,6): "RPM" - SOFTKEY (6) "EXIT" GOTO SCREEN exitscr call cursor(0) LABEL topoloop call readms(timeb&) call readcnt(channel%,countb&) - COMMENT "calculate the number of counts per millisecond" ctspms!=(counta&-countb&)/(timea&-timeb&) - COMMENT "convert counts per millisecond to rotations per minute" rpm!=(ctspms!/ctsprev&)*60000 if ((abs(rpm!))<0.01) then rpm!=0.00 - SOFTKEY CHECK - PUT LARGE NUMBER rpm! AT (10,1) USING "+######.##" - BAR GRAPH DISPLAY: rpm! - PUT NUMBER counta& AT (31,4) USING "+########" - PUT TEXT AT (33,5): "counts" call readms(timea&) call readcnt(channel%,counta&) goto topoloop *>SCREEN QUICK chone channel%=1 goto topomain *>SCREEN QUICK chtwo channel%=2 goto topomain *>SCREEN QUICK chthree channel%=3 goto topomain *>SCREEN QUICK chfour channel%=4 goto topomain *>SCREEN QUICK zchange call writecnt(channel%,0,5) goto topomain *>SCREEN exitscr - END OF PSEUDOCODE