#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_GlobalPrototypes.h"
#include "f2812a.h"
//#include "DSP281x_Examples.h" // DSP281x Examples Include File
//#include "f2812a.h"
// Prototype statements for functions found within this file.
// interrupt void ISRTimer2(void);
//使用中断:interrupt void ISRTimer2(void);
//变量声明
void delay_loop(void);
void spi_dlb8(void);
void spi_xmit(int a);
int spi_rev();
void spi_fifo_init(void);
void error(int);
void program_stop();
unsigned int var1=0;
unsigned int var2=0;
unsigned int var3=0;
unsigned int var4=0;
unsigned int var5=0;
unsigned int Test_count=0;
unsigned int Test_flag1=0;
unsigned int Test_flag2=0;
unsigned int Test_flag3=0;
unsigned int Test_flag4=0;
unsigned int Test_var=0;
unsigned int Test_status[32];
unsigned int PASS_flag=0;
unsigned int Ret_var1=0;
unsigned int Ret_var2=0;
//void dac_loop(void);
void main(void)
{
//Step 1,初始化系统控制寄存器、锁相环、看门狗以及时钟默认状态
int i;
//为充分发挥片上RAM M0/M1/L0/L1/H0的特性,设置下列寄存器
//DevEmuRegs.M0RAMDFT=0x0300;
//DevEmuRegs.M1RAMDFT=0x0300;
//DevEmuRegs.L0RAMDFT=0x0300;
//DevEmuRegs.L1RAMDFT=0x0300;
//DevEmuRegs.H0RAMDFT=0x0300;
InitSysCtrl();
//HISPCP/LOSPCP预定标定寄存器设置
SysCtrlRegs.HISPCP.all=0x0001;
SysCtrlRegs.LOSPCP.all=0x0002;
//Step3,初始化外设中断向量表
//屏蔽和清除所有CPU中断
DINT;
IER=0x0000;
IFR=0x0000;
//初始化PIE向量表
//InitPieVectTable()函数参考中断一章中DSP28_DefaultIsr.c相关代码
//InitPieVectTable();
//Step4,使用特定的函数重新分配向量使能中断
spi_fifo_init();// 初始化Spi FIFO
spi_dlb8(); //设置自测试模式
//设置测试状态标志
if (PASS_flag!=0)
PASS_flag=0xDEAD;
else
PASS_flag=0xD0BE;
//Step5,循环等待
asm ("ESTOP0");//设置软断点
// for(;;);
}
//Step5,所有中断服务程序和函数
void delay_loop()
{
long i;
for (i=0;i<1000000;i++){}
}
void error(int ErrorFlag)
{
PASS_flag=0xDEAD;
Test_status[Test_var]=0xDEAD;
}
//测试1,SPI 8位字符,自测试,主模式,上升沿,波特率设置0x07F
void spi_dlb8()
{
SpiaRegs.SPICCR.all=0x0007;//SPI复位,设置时钟为上升沿,8位字符长度
SpiaRegs.SPICTL.all=0x0006;// 使能主模式,标准相位
// 使能Talk,SPIINT屏蔽
SpiaRegs.SPIBRR=0x0009;//设置波特率
//Step2,配置芯片的通用数字I/O为希望的功能引脚
EALLOW;
GpioMuxRegs.GPFMUX.all=0x000F;//设置GPIO工作在SPI的功能
//Port F MUX-x000 0000 0000 1111
EDIS;
//退出复位状态
SpiaRegs.SPICCR.all=0x0087;//使SPI退出复位状态
//使能自测试模式
//位Changes for the test
//var3=WREN;
spi_xmit(WREN);//发送SPI
SpiaRegs.SPICTL.bit.TALK=0;
SpiaRegs.SPICTL.bit.TALK=1;
//SpiaRegs.SPICCR.bit.SPISWRESET=1;
spi_xmit(WRITE);
spi_xmit(0x0F);
spi_xmit(0x0A);
spi_xmit(0x56);
//SpiaRegs.SPICCR.bit.SPISWRESET=0;
//SpiaRegs.SPICCR.bit.SPISWRESET=1;
SpiaRegs.SPICTL.bit.TALK=0;
SpiaRegs.SPICTL.bit.TALK=1;
spi_xmit(READ);
spi_xmit(0x0F);
spi_xmit(0x0A);
Ret_var1=spi_rev();
spi_xmit(RDSR);
Ret_var2=spi_rev();
SpiaRegs.SPICCR.bit.SPISWRESET=0;
//while (SpiaRegs.SPIFFRX.bit.RXFFST!=1) {}
//Test_flag4=SpiaRegs.SPIRXBUF;
//if (Test_flag4!=0x4141) error(1);
//Test_status[Test_var]=0x8000;//刷新测试状态
//Test_var++;
}
void spi_xmit(int a)
{
SpiaRegs.SPITXBUF=a;
}
int spi_rev()
{
return SpiaRegs.SPIRXBUF;
}
void spi_fifo_init()
{
//初始化SPI FIFO寄存器
SpiaRegs.SPIFFTX.all=0xE040;
SpiaRegs.SPIFFRX.all=0x204F;
SpiaRegs.SPIFFCT.all=0x0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
F2812_SPI_EEROM.rar (31个子文件)
F2812_SPI_EEROM
spi-eerom.c 4KB
dac.paf 7KB
f2812a.h 617B
spi-eerom.pjt 2KB
Debug.lkv 1KB
F2812_SPI_EEROM
spi-eerom.c 4KB
dac.paf 7KB
f2812a.h 617B
spi-eerom.pjt 2KB
Debug.lkv 1KB
Debug
DSP281x_PieVect.obj 13KB
DSP281x_DefaultIsr.obj 12KB
DSP281x_CodeStartBranch.obj 837B
DSP281x_GlobalVariableDefs.obj 141KB
DSP281x_PieCtrl.obj 4KB
dac.obj 1KB
spi-eerom.obj 21KB
DSP281x_Spi.obj 456B
DSP281x_SysCtrl.obj 9KB
dac.out 162KB
dac.map 16KB
cc_build_Debug.log 4KB
Example_281xSpi_FFDLB.paf 8KB
Debug.lkf 1KB
spi-eerom.paf 8KB
Example_281xSpi_FFDLB.gel 425B
Debug
cc_build_Debug.log 134B
Example_281xSpi_FFDLB.paf 8KB
Debug.lkf 1KB
spi-eerom.paf 7KB
Example_281xSpi_FFDLB.gel 425B
共 31 条
- 1
资源评论
- raill2016-09-24有參考的價值。
- ccbbcc2024-05-13不错,是我想要的
wtwdwr123
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功