📄 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<n;j++){
for(i=0;i<10;i++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -