打印

DSP2812入学习进程(7)SPI自检程序设计

[复制链接]
2209|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梅花望青竹|  楼主 | 2012-3-26 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
check_spi.zip (100.48 KB)
自检程序是设定在spi发送和接收中断中执行的!
#include "inc/DSP28_Device.h"
#include "inc/DSP28_GlobalPrototypes.h"
#define uchar unsigned char
#define uint unsigned int
uchar ct;
unsigned  int  *Led  = (unsigned int *)0x4100;
interrupt void spirx(void)
{
*Led = SpiaRegs.SPIRXBUF;
SpiaRegs.SPIFFRX.bit.RXFFINTCLR=1;
SpiaRegs.SPIFFRX.bit.RXFFOVFCLR=1;
PieCtrl.PIEACK.all= 0x20;
}
interrupt void spitx(void)
{ uint i;
  SpiaRegs.SPITXBUF=ct;
  while(Spi_TxReady()!=1);
  for(i=0;i<50000;i++);
  ct++;
  PieCtrl.PIEACK.all= 0x20;
  SpiaRegs.SPIFFTX.bit.TXFFINTINTCLR=1;
}
void init_spi(void)
{
SpiaRegs.SPICCR.bit.RESET=0;
SpiaRegs.SPICCR.bit.SPICHAR=0x08;
SpiaRegs.SPICCR.bit.SPILBK=1;

SpiaRegs.SPICTL.bit.MASTER_SLAVE=1;
SpiaRegs.SPICTL.bit.SPIINTENA=1;
SpiaRegs.SPICTL.bit.OVERRUN=1;
SpiaRegs.SPICTL.bit.TALK=1;

SpiaRegs.SPIFFTX.all=0xc021;
SpiaRegs.SPIFFRX.all=0x0021;
SpiaRegs.SPIBRR=0x1D;
SpiaRegs.SPIFFCT.all=0x00;

SpiaRegs.SPIPRI.all=0x10;

SpiaRegs.SPIFFRX.bit.RXFIFORESET=1;
SpiaRegs.SPIFFTX.bit.TXFIFORESET=1;

SpiaRegs.SPICCR.bit.RESET=1;
}
void init_gpio(void)
{
EALLOW;
GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0 = 1;
   
GpioMuxRegs.GPFMUX.bit.SPICLKA_GPIOF2  = 1;

PieVectTable.SPIRXINTA =&spirx;
PieVectTable.SPITXINTA =&spitx;

PieCtrl.PIECRTL.bit.ENPIE=1;
PieCtrl.PIEIER6.bit.INTx1=1;
PieCtrl.PIEIER6.bit.INTx2=1;

IER =0x20;

EDIS;
}
void main(void)
{

InitSysCtrl();
DINT;

InitPieCtrl();
InitPieVectTable();
init_spi();
init_gpio();
*Led = ct+5;
EINT;
while(1)
{

/* if(Spi_TxReady()==1)
  SpiaRegs.SPITXBUF=ct;
  while(Spi_TxReady()!=1);
  for(i=0;i<50000;i++);
  ct++;*/
}
}

相关帖子

沙发
xlhtracy| | 2012-3-26 10:43 | 只看该作者
楼主能介绍的更具体点吗

使用特权

评论回复
板凳
快乐出发| | 2012-3-26 11:18 | 只看该作者
:handshake

使用特权

评论回复
地板
abcsmile| | 2012-3-26 11:23 | 只看该作者
:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

2589

帖子

7

粉丝