__hugeflash unsigned char FPGA_DATA[]={
#include "..\fpga\DelayLine1.ttf"
};
PORTC = (0 << hFPGA_nCONFIG)|(1 << hFPGA_MSEL0)|(0 << hFPGA_MSEL1) | (1 << hFPGA_nSTATUS)|(1 << hFPGA_CONF_DONE);
DDRC = (1 << hFPGA_nCONFIG)|(1 << hFPGA_MSEL0)|(1 << hFPGA_MSEL1) | (1 << hFPGA_DATA0)|(1 << hFPGA_DCLK) | (0 << hFPGA_nSTATUS)|(0 << hFPGA_CONF_DONE);
unsigned char Configure_FPGA(void) {
unsigned long int i; unsigned char b,j;
clrbit(PORTC,hFPGA_nCONFIG);
__delay_cycles(100*mks); if(tstbit(PINC,hFPGA_nSTATUS)!=0) return(1);
setbit(PORTC,hFPGA_nCONFIG); __delay_cycles(100*mks);
if(tstbit(PINC,hFPGA_nSTATUS)==0) return(2);
if(tstbit(PINC,hFPGA_CONF_DONE)!=0) return(3);
for(i=0;i b=FPGA_DATA[i];
for(j=0;j<8;j++) {
if(tstbit(b,j)!=0) setbit(PORTC,hFPGA_DATA0); else clrbit(PORTC,hFPGA_DATA0);
//__delay_cycles(mks/100); // 0.5 us (min=0.05us)
setbit(PORTC,hFPGA_DCLK); //__delay_cycles(mks/100); // 0.5 us (min=0.08us)
clrbit(PORTC,hFPGA_DCLK); //__delay_cycles(mks/100); // 0.5 us (min=0.00us)
}
}
clrbit(PORTC,hFPGA_DATA0); setbit(DDRC,hFPGA_DATA0); // не отпускаем линию DATA
clrbit(PORTC,hFPGA_DCLK); setbit(DDRC,hFPGA_DCLK); // не отпускаем линию DCLK __delay_cycles(30*mks); // до перехода в USER MODE
if(tstbit(PINC,hFPGA_CONF_DONE)==0) return(5); // Конфигурирование не завершено
if(tstbit(PINC,hFPGA_nSTATUS)==0) return(6); // Ошибка в конфигурации
return(77); // всё в порядке!
}