51 OpenSPI(SPI_FOSC_64,MODE_10,SMPMID);
57 while(WriteSPI(data>>8));
59 while(WriteSPI(data));
101 if(function_type==4){
107 if(function_type==5){
114 if(function_type==6){
120 if(function_type==7){
127 if(function_type==8){
133 if(function_type==9){
140 if(function_type==10){
159 K=268435456/(fmclk*100000);
180 unsigned long freq_reg_value;
181 unsigned int freq_reg_value_l,freq_reg_value_h;
182 unsigned int control_word;
184 freq_reg_value = (freq_value/10) *
K;
186 freq_reg_value = freq_reg_value << 2;
187 freq_reg_value_l = freq_reg_value;
188 freq_reg_value_h = freq_reg_value >> 16;
189 freq_reg_value_l = freq_reg_value_l >> 2;
195 if(frequency_register==0){
197 freq_reg_value_l = freq_reg_value_l & 0x7FFF;
198 freq_reg_value_l = freq_reg_value_l | 0x4000;
200 freq_reg_value_h = freq_reg_value_h & 0x7FFF;
201 freq_reg_value_h = freq_reg_value_h | 0x4000;
205 if(frequency_register==1){
207 freq_reg_value_l = freq_reg_value_l & 0xBFFF;
208 freq_reg_value_l = freq_reg_value_l | 0x8000;
210 freq_reg_value_h = freq_reg_value_h & 0xBFFF;
211 freq_reg_value_h = freq_reg_value_h | 0x8000;
227 unsigned int control_word;
240 if(frequency_register==0){
248 if(frequency_register==1){
266 unsigned int phase_reg;
268 phase_value=(phase_value*1137)/1000;
270 phase_reg=phase_value;
273 if(phase_register==0){
275 phase_reg=phase_reg & 0xFFF;
276 phase_reg=phase_reg | 0xC000;
280 if(phase_register==1){
282 phase_reg=phase_reg & 0xFFF;
283 phase_reg=phase_reg | 0xE000;
295 unsigned int function;
297 switch(function_type){