ad9858.c

来自「2005年全国大学生电子设计竞赛论文集」· C语言 代码 · 共 47 行

C
47
字号
#include "AD9858.h"
#include "IO.h"

unsigned char RCount[21]={'1','0','0','0','0','0','0','0','0','0','0','0','1','1','1','1','1','0','1','0','0'};
unsigned char NCount[21]={'1','0','0','0','0','0','1','0','0','1','1','1','0','0','0','1','0','0','0','0','1'};
unsigned char FLatch[20]={'0','0','0','0','0','0','0','0','0','0','0','0','1','1','1','1','0','0','1','0'};
unsigned char Init[20]={'0','0','0','0','0','0','0','0','0','0','0','0','1','1','1','1','0','0','1','0'};
//=========================================================================================
//
//=========================================================================================
void Send21Bits(unsigned char* dat,unsigned char mode)
{
	char cou;
	if(mode)
		cou = 21;
	else
		cou = 20;	
	CLR_PORTA(LMX_CLK);
	while(cou--)
	{
		if(dat[cou])
			SET_PORTA(LMX_DATA);
		else
			CLR_PORTA(LMX_DATA);
		SET_PORTA(LMX_CLK);
		CLR_PORTA(LMX_CLK);
	}
	
	SET_PORTA(LMX_LE);
	CLR_PORTA(LMX_LE);
}
//=========================================================================================
//
//=========================================================================================
void SetLMX2316()
{
	unsigned char dat[21];
	SetBITMode;
	//初始化      11 : 00000000000011110010
	Send21Bits(Init,0);
	//写R寄存器   00 : 100000000000111110100
	Send21Bits(RCount,1);
	//写N寄存器   10 : 100000100111000100001
	Send21Bits(NCount,1);
	//写F-Lantch  01 : 00000000000011110010
	Send21Bits(FLatch,0);
}

⌨️ 快捷键说明

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