www.pudn.com > uCOS_II_uart.rar > 4360.c


// 导入头文件 
#include "AT91SAM7X256.h" 
#include "4360.h" 
 
 
 
 
 
 
// 函数原型 
/*_______________________________________________________________________________________________ 
__函数原型:	void CONTROL_register(void) 
__参数说明:   无 
__返回值:     无 
__说明:		向C寄存器发送3字节的控制数据; 
_______________________________________________________________________________________________*/ 
 void CONTROL_register() 
{   
  //unsigned long control=1042820; //R DIVIDER OUTPUT 
 //unsigned long control=1042724;//digital lock detect 
 //unsigned long control=1042916;  //111 
  //unsigned long control=1042788;  //011 
  //unsigned long control=1042756; //N DIVIDER OUTPUT 
 unsigned long control=0x025940;   
 unsigned char i; 
 *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
  
 DELAY(1); 
 for(i=0;i<24;i++) 
  { 
   if((control&0x800000)==0x800000) 
   *AT91C_PIOA_SODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
   else 
   *AT91C_PIOA_CODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
   control=control<<1; 
  } 
 DELAY(10); 
 *AT91C_PIOA_SODR=AT91C_PIO_PA2; 
 DELAY(10); 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
} 
 
 
 
 
/*_______________________________________________________________________________________________ 
__函数原型:	void  N_register(compose) 
__参数说明:   无 
__返回值:     无 
__说明:		向N寄存器发送3字节数据,该数据用于频率合成; 
_______________________________________________________________________________________________*/ 
 
 void  N_register(unsigned long compose) 
{   
 unsigned char i; 
 *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
 DELAY(1); 
  for(i=0;i<24;i++) 
  { 
   if((compose&0x800000)==0x800000) 
   *AT91C_PIOA_SODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
   else 
   *AT91C_PIOA_CODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
    compose=compose<<1; 
  } 
 DELAY(10); 
 *AT91C_PIOA_SODR=AT91C_PIO_PA2; 
 DELAY(10); 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
 DELAY(100); 
  DELAY(100); 
   DELAY(100); 
    DELAY(100); 
     DELAY(100); 
      DELAY(100); 
 
} 
 
 
 
/*_______________________________________________________________________________________________ 
__函数原型:	void R_register(discompose) 
 
__参数说明:	无 
__返回值:	无 
__说明:	   	向R寄存器发送3字节数据,该数据用于分频; 
__________________________________________________________________________*/ 
 void R_register() 
{  
 unsigned char i; 
 //unsigned long R=393617;  //6ns 
 //unsigned long R=262545; //3ns 
 unsigned long R=0x130029;//10分频 
 *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
 DELAY(1); 
 for(i=0;i<24;i++) 
  { 
   if((R&0x800000)==0x800000) 
   *AT91C_PIOA_SODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
   else 
   *AT91C_PIOA_CODR=AT91C_PIO_PA1, 
   DELAY(1), 
   *AT91C_PIOA_SODR=AT91C_PIO_PA0, 
   DELAY(1), 
   *AT91C_PIOA_CODR=AT91C_PIO_PA0; 
   R=R<<1; 
  } 
 DELAY(10); 
 *AT91C_PIOA_SODR=AT91C_PIO_PA2; 
 DELAY(10); 
 *AT91C_PIOA_CODR=AT91C_PIO_PA2; 
} 
 
 
 
 
/**************************** 
          延时程序 
****************************/ 
 
void DELAY(unsigned int n) 
{ 
  unsigned int i,j; 
  for(j=0;j