📄 lowpass.c
字号:
#include <string.h>
#include <stdlib.h>
#include "table.h"
#include "globleio.h"
/////////////////////////////////////////////////////////////////////////////
#define first_half 0x0001
#define half_empty 0x0002
/////////////////////////////////////////////////////////////////////////////
#pragma DATA_SECTION(RxBuf, "dmrx_sect")
signed int RxBuf[256];
#pragma DATA_SECTION(TxBuf, "dmtx_sect")
signed int TxBuf[128];
#pragma DATA_SECTION(CirBuf, "circle_sect")
signed int CirBuf[96];
unsigned int status;
extern void dspinit();
extern void bsp0init();
extern void bsp1init();
extern void dmainit();
extern void bspstop();
extern firloop(signed int *DestAddr);
extern firlooptest(signed int *DestAddr);
/////////////////////////////////////////////////////////////
int *RxIndex,*CirBufIndex;
unsigned int i;
unsigned int st_portc;
/////////////////////////////////////////////////////////////
void main()
{
dspinit();
for(i=0;i<1024;i++)
{
TxBuf[i]=0;
}
dmainit();
bsp0init();
bsp1init();
st_portc=0xffff;
st_portc&=~BSP_C1;
portcfee=st_portc;
RxIndex=TxBuf;
CirBufIndex=CirBuf;
status=0;
st_portc|=DA_LDAC;
portcfee=st_portc;
st_portc&=~DA_LDAC;
portcfee=st_portc;
asm(" STM #3fffh, IFR");
asm(" STM #3000h, IMR");
asm(" RSBX INTM");
while(1)
{
asm(" RSBX XF");
if((status&half_empty)==half_empty)
{
asm(" SSBX XF");
status&=~half_empty;
if((status&first_half)==first_half)
{
firloop(TxBuf);
// firlooptest(TxBuf);
}
else
{
firloop(&TxBuf[64]);
// firlooptest(&TxBuf[512]);
}
}
}
}
interrupt void dmtx()
{
asm(" STM #3fffh, IFR");
if((status&first_half)==first_half)
{
status&=~first_half;
status|=half_empty;
}
else
{
status|=first_half;
status|=half_empty;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -