9851__.c

来自「AD9851的驱动程序」· C语言 代码 · 共 72 行

C
72
字号
#include <mega16.h>
	#ifndef __SLEEP_DEFINED__
	#define __SLEEP_DEFINED__
	.EQU __se_bit=0x40
	.EQU __sm_mask=0xB0
	.EQU __sm_powerdown=0x20
	.EQU __sm_powersave=0x30
	.EQU __sm_standby=0xA0
	.EQU __sm_ext_standby=0xB0
	.EQU __sm_adc_noise_red=0x10
	.SET power_ctrl_reg=mcucr
	#endif
#include <delay.h>
//------------端口操作宏定义------------------//
#define  W_CLK       PORTD.0
#define  FQ_UD       PORTD.1
#define  RSET        PORTD.2
#define  WDATA           PORTC
unsigned long f_freq;
unsigned int  p_phase;
void updatedds()
{
 FQ_UD=0;
 W_CLK=0;
 WDATA=p_phase<<3;
 WDATA|=0x01;
 W_CLK=1;
 W_CLK=0;
 WDATA=(f_freq>>24)&0xff;
 W_CLK=1;
 W_CLK=0;
 WDATA=(f_freq>>16)&0xff;
 W_CLK=1;
 W_CLK=0;
 WDATA=(f_freq>>8)&0xff;
 W_CLK=1;
 W_CLK=0;
 WDATA=f_freq&0xff;
 W_CLK=1;
 FQ_UD=1;
 W_CLK=0;
}

void sendfreq(unsigned long freq)
{
 FQ_UD=0;
 f_freq=freq*29.826162;
 updatedds();
 FQ_UD=1;
 FQ_UD=0;
}

void sendphase(unsigned int phase)
{
 FQ_UD=0;
 p_phase=phase;
 updatedds();
 FQ_UD=1;
 FQ_UD=0;
}

void main()
{
 DDRC=0xff;
 DDRD=0xff;
 while(1)
 {
  sendfreq(1000);
  sendphase(1);
 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?