COMMENT * This file is used to generate DSP code for the second generation timing boards to operate a 256 x 256 pixel PICNIC infrared array at 3.0 microsec per pixel and whole frame readout. * PAGE 132 ; Printronix page width - 132 columns ; Define a section name so it doesn't conflict with other application programs SECTION TIMIR ; Include a header file that defines global parameters INCLUDE "timhdr.asm" APL_NUM EQU 0 ; Application number from 0 to 3 CC EQU IRREV4+TIMREV4 ; Specify execution and load addresses IF @SCP("DOWNLOAD","HOST") ORG P:APL_ADR,P:APL_ADR ; Download address ELSE ORG P:APL_ADR,P:APL_NUM*N_W_APL ; EEPROM address ENDIF ; Reset entire array and don't transmit any pixel data RESET_ARRAY MOVE #5,X0 ; Subtract 5 millisec from exposure time to SUB X0,A ; account for READ to FSYNC delay time MOVE A,X:24,X0 ; Check for argument less than 32 CMP X0,A JGE ERR_SM1 MOVE A,B MOVE #>7,X0 AND X0,B MOVE #>$18,X0 AND X0,A JNE $08,X0 CMP X0,A ; Test for 8 <= MUX number <= 15 JNE $10,X0 CMP X0,A ; Test for 16 <= MUX number <= 23 JNE 24,X0 ; Check for argument less than 32 CMP X0,A JGE ERR_SM2 REP #6 LSL A MOVE A,B MOVE #$1C0,X0 AND X0,B MOVE #>$600,X0 AND X0,A JNE $200,X0 CMP X0,A ; Test for 8 <= MUX number <= 15 JNE $400,X0 CMP X0,A ; Test for 16 <= MUX number <= 23 JNE Power reset BSET #HVEN,X:PBD ; timFO value MOVE #TST_RCV,X0 MOVE X0,X: Power reset BSET #HVEN,X:PBD ; Now ramp up the low voltages (+/- 6.5V, 16.5V) and delay them to turn on BCLR #LVEN,X:PBD ; LVEN = Low => Turn on +/- 6.5V, MOVE Y: 1.0 microsec per pixel NOP ; Increment pixel counts by one MOVE X:(APL_NUM+1)*N_W_APL WARN 'EEPROM overflow!' ; Make sure next application ENDIF ; will not be overwritten ENDIF ENDSEC ; End of section TIMIR ; End of program END