[an error occurred while processing this directive]
|
/*---------------------------------------------------*/
void load_AD9832(unsigned long dphase)
{
SPI_init(AD9832); // Select synth chip for SPI
SPI_send_16(0xf8,0x00); // Sleep, Reset, CLR
SPI_send_16(0x33,0xff & dphase>>24); // Load 4 bytes
SPI_send_16(0x22,0xff & dphase>>16);
SPI_send_16(0x31,0xff & dphase>>8);
SPI_send_16(0x20,0xff & dphase);
SPI_send_16(0xc0,0x00); // Start
}
/*---------------------------------------------------*/
void set_syn_freq(float f)
{
if( f < Fsyn_min ) f = Fsyn_min; // Check the valid range
if( f > Fsyn_max ) f = Fsyn_max;
if( f <= 10000.000 ) { // Lower Frequencies <10kHz
RCAP2H = 0xff; // divide by 56
RCAP2L = 0xf2;
Fsyn_clk = Fmclk/56.; // 714285.71;
}
else { // Upper Frequencies >10kHz
RCAP2H = 0xff; // divide by 4
RCAP2L = 0xff;
Fsyn_clk = Fmclk/4.; // 10000000.;
}
load_AD9832(((float)0x10000l/Fsyn_clk)*f*2.*(float)0x10000l);
}
E-mail: info@telesys.ru