📄 lpf.c
字号:
/*H*****************************************************************************
*
* $Archive:: /boards/28335eZdspUSB/28335eZdspUSBDiags/Target/28335eZdspUSBTest $
* $Revision:: 1 $
* $Date:: 9/05/07 3:31p $
* $Author:: Shilpab $
*
* DESCRIPTION: eZdsp28335 Post
*
* NOTES:
*
* (C) Copyright 2007 by Spectrum Digital Incorporated
* All rights reserved
*
*H*****************************************************************************/
#define _lpf_C_
/*---- compilation control switches ----------------------------------------*/
/*****************************************************************************
* INCLUDE FILES
*****************************************************************************/
/*---- system and platform files -------------------------------------------*/
/*---- program files -------------------------------------------------------*/
#include "DSP2833x_Device.h"
#include "r28335cfg.h"
#include "r28335init.h"
#include "memtest.h"
#include "led.h"
int ReceivedChar[16]={0};//{'0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5'};
unsigned char receive_flag=0;
extern void scia_xmit_fifo(void);
extern void scia_xmit(int a);
interrupt void SCITXINTA_ISR(void) // SCI-A none FIFO
{
int i;
for(i=0;i<16;i++)
{
scia_xmit('b'); //SciaRegs.SCITXBUF='b';
}
SciaRegs.SCIFFTX.bit.TXFFINTCLR=1; //Clear TXFFINT
PieCtrlRegs.PIEACK.bit.ACK9 = 1;
EINT;
}
interrupt void SCIRXINTA_ISR(void) // SCI-A none FIFO
{
int i;
for(i=0;i<16;i++)
{
ReceivedChar[i] = SciaRegs.SCIRXBUF.all & 0x00FF;
}
receive_flag=1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; //Clear RXFFINT
PieCtrlRegs.PIEACK.bit.ACK9 = 1;
EINT;
}
/*F**************************************************************************
* NAME: main
*
* DESCRIPTION:
*
* NOTES:
*
*F**************************************************************************/
void SCI_Init(void)
{
SciaRegs.SCICCR.all =0x0007; // 1bit 停止位 无循环模式
// 无极性, 字符长度:8 bits,
// 异步模式, 空闲线协议
SciaRegs.SCICTL1.all =0x0003; // 使能 TX, RX, 内部 SCICLK,
// 禁止 RX ERR, SLEEP, TXWAKE
SciaRegs.SCIHBAUD = 487 >> 8 ; // 波特率:9600(LSPCLK = 37.5MHz) ;
SciaRegs.SCILBAUD = 487 & 0x00FF;
//FIFO disable
// SciaRegs.SCICTL2.bit.TXINTENA = 1; // 使能SCI发送中断
// SciaRegs.SCICTL2.bit.RXBKINTENA = 1; //使能SCI接受中断
//FIFO enable
SciaRegs.SCIFFTX.all=0xE040+0x0000; //0xE040 :FIFO enabled,TX FIFO INT disabled,TXFFIL4~0=0(0xE040 enable TXFIFO)
SciaRegs.SCIFFRX.all=0x6060+0x0010; //RX FIFO INT enabled, RXFFIL4~0=16
SciaRegs.SCIFFCT.all=0x0; //FIFO Transfer Delay = 0
SciaRegs.SCICTL1.all =0x0023; // 使SCI退出复位
}
void main(void)
{
long i=0,j=0; //延时变量
DINT;
InitSysCtrl();
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
XINTF_Init();
//CSM_unlock();
InitGpio();
LED_Init();
SCI_Init();
EALLOW; // This is needed to write to EALLOW protected registers
//PieVectTable.SCITXINTA = &SCITXINTA_ISR;
PieVectTable.SCIRXINTA = &SCIRXINTA_ISR;
EDIS; // This is needed to disable write to EALLOW protected registers
/*开SCIA中断*/
IER |= 0x100;
//PieCtrlRegs.PIEIER9.bit.INTx2 = 1; //发送中断
PieCtrlRegs.PIEIER9.bit.INTx1 = 1; //接受中断
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
while(1)
{
for(i=0;i<100;i++)//delay
{
for(j=0;j<10000;j++);
}
if(receive_flag)
{
receive_flag=0;
scia_xmit_fifo();
}
LED_Toggle();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -