' ' ICXoddF.bas Marco Paolilli - 11 Set.05 ' ' Programma per la generazione dei segnali di sincronismo per la lettura di ' un campo dispari dell' ICX429ALL ' ' Collegamenti Porta B(PIC16F877A) : ' RB7 RG pin 40 ' RB6 H pin 39 ' RB5 V1 pin 38 ' RB4 V2 pin 37 ' RB3 V3 pin 36 ' RB2 V4 pin 35 ' RB1 XV1 pin 34 ' RB0 XV3 pin 33 ' ' Il programma genera una sola sequenza di lettura. Per ripetere la lettura ' premere il tasto RESET ' DEVICE = 16F877A ' Utilizzo il PIC 16F877A XTAL = 20 ' Quarzo da 20 Mhz SYMBOL SIG = PORTB ' Alias PORTB to SIG DIM RIT AS BYTE ' RIT = ritardo DIM I AS WORD ' I = contatore (16bit) DIM K AS WORD ' K = contatore (16bit) DIM NLINEE AS WORD ' NLINEE = Numero di linee dell'immagine DIM NCOL AS WORD ' NCOL = Numero di colonne dell'immagine RIT = 20 ' Valore di ritardo in microsecondi NLINEE = 298 ' Numero di linee fisiche del campo dispari NCOL = 795 ' Numero di colonne fisiche del CCD LOW SIG ' Reset PORTB : output LOW GOSUB INI_ODD ' Inizio lettura campo dispari FOR I=1 TO NLINEE ' Per tutte le linee del campo GOSUB VRT_SHIFT ' Shift del registro verticale GOSUB READ_REG ' Legge il registro orizzontale NEXT I END INI_ODD: ' Inizio lettura campo dispari FOR K = 1 TO 10 ' A - Parte 1 SIG = 240 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' B - Parte 1 SIG = 248 DELAYUS RIT SIG = 120 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' C - Parte 1 SIG = 216 DELAYUS RIT SIG = 88 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' D - Parte 1 SIG = 220 DELAYUS RIT SIG = 92 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' E - Parte 1 SIG = 204 DELAYUS RIT SIG = 76 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' F - Parte 1 SIG = 236 DELAYUS RIT SIG = 108 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' G - Parte 1 SIG = 228 DELAYUS RIT SIG = 100 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' H - Parte 1 SIG = 244 DELAYUS RIT SIG = 116 DELAYUS 3*RIT NEXT K FOR K = 1 TO 13 ' I - Parte 1 SIG = 240 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K FOR K = 1 TO 35 ' A - Parte 2 SIG = 240 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K FOR K = 1 TO 1 ' B - Parte 2 SIG = 224 DELAYUS RIT SIG = 96 DELAYUS 3*RIT NEXT K FOR K = 1 TO 3 ' C - Parte 2 SIG = 232 DELAYUS RIT SIG = 104 DELAYUS 3*RIT NEXT K FOR K = 1 TO 4 ' D - Parte 2 SIG = 234 DELAYUS RIT SIG = 106 DELAYUS 3*RIT NEXT K FOR K = 1 TO 4 ' E - Parte 2 SIG = 232 DELAYUS RIT SIG = 104 DELAYUS 3*RIT NEXT K FOR K = 1 TO 4 ' F - Parte 2 SIG = 233 DELAYUS RIT SIG = 105 DELAYUS 3*RIT NEXT K FOR K = 1 TO 4 ' G - Parte 2 SIG = 224 DELAYUS RIT SIG = 96 DELAYUS 3*RIT NEXT K FOR K = 1 TO 35 ' A - Parte 3 SIG = 240 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' B - Parte 3 SIG = 216 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' C - Parte 3 SIG = 220 DELAYUS RIT SIG = 92 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' D - Parte 3 SIG = 204 DELAYUS RIT SIG = 76 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' E - Parte 3 SIG = 236 DELAYUS RIT SIG = 108 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' F - Parte 3 SIG = 228 DELAYUS RIT SIG = 100 DELAYUS 3*RIT NEXT K FOR K = 1 TO 13 ' G - Parte 3 SIG = 244 DELAYUS RIT SIG = 116 DELAYUS 3*RIT NEXT K RETURN READ_REG: ' Lettura registro orizzontale FOR K = 1 TO NCOL SIG = 240 DELAYUS RIT SIG = 112 DELAYUS RIT SIG = 48 DELAYUS 2*RIT NEXT K RETURN VRT_SHIFT: ' Shift verticale FOR K = 1 TO 11 ' B - Parte 1 SIG = 248 DELAYUS RIT SIG = 120 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' C - Parte 1 SIG = 216 DELAYUS RIT SIG = 88 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' D - Parte 1 SIG = 220 DELAYUS RIT SIG = 92 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' E - Parte 1 SIG = 204 DELAYUS RIT SIG = 76 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' F - Parte 1 SIG = 236 DELAYUS RIT SIG = 108 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' G - Parte 1 SIG = 228 DELAYUS RIT SIG = 100 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' H - Parte 1 SIG = 244 DELAYUS RIT SIG = 116 DELAYUS 3*RIT NEXT K FOR K = 1 TO 11 ' I - Parte 1 SIG = 240 DELAYUS RIT SIG = 112 DELAYUS 3*RIT NEXT K RETURN