dac.c

来自「DSP2812 DAC源码」· C语言 代码 · 共 80 行

C
80
字号
//DAC实验

#include "DSP28_Device.h"

#define  SPI_SEL_REG  *(unsigned  int*)0x2004 
#define  DA_SPI    0X03

void WriteDAC(unsigned data);
void delay(unsigned long);

void main(void)
{

	InitSysCtrl();			//初始化系统

	DINT;					//关中断
	IER = 0x0000;
	IFR = 0x0000;

	InitPieCtrl();			//初始化PIE控制寄存器
	InitPieVectTable();		//初始化PIE参数表
	InitPeripherals();		//初始化外设寄存器
	InitGpio();				//初始化GPIO
   	InitSpi();				//初始化SPI   	
    
	EINT;   				//Enable INTM
	ERTM;					//Enable DBGM

    SPI_SEL_REG=DA_SPI;
	for(;;)
	{
		WriteDAC(0x000);
		delay(50000);
		WriteDAC(0x200);
		delay(50000);
		WriteDAC(0x400);
		delay(50000);
		WriteDAC(0x600);
		delay(50000);
		WriteDAC(0x800);
		delay(50000);
		WriteDAC(0xA00);
		delay(50000);
		WriteDAC(0xC00);
		delay(50000);
		WriteDAC(0xE00);
		delay(50000);
		WriteDAC(0xC00);
		delay(50000);
		WriteDAC(0xA00);
		delay(50000);
		WriteDAC(0x800);
		delay(50000);
		WriteDAC(0x600);
		delay(50000);
		WriteDAC(0x400);
		delay(50000);
		WriteDAC(0x200);
		
	}
} 	

void WriteDAC(unsigned data)
{
	if(Spi_TxReady() == 1)
		SpiaRegs.SPITXBUF = data;
	delay(500000);
	if(Spi_TxReady() == 1)
		SpiaRegs.SPITXBUF = data;
	delay(500000);
	
}


void delay(unsigned long t)
{
	while(t>0)
    	t--;
}

⌨️ 快捷键说明

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