⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dspdemo.c

📁 EADSP5402DEMO的所有资料
💻 C
字号:
#include  <Reg52.h>        
#include  <absacc.h>
#include  <stdio.h>
#include  <intrins.h>
#include  <dspcode.h>  

#define   uint unsigned  int
#define   uchar unsigned  char

#define   HPICL          XBYTE[0xe000]
#define   HPICH          XBYTE[0xe100]
#define   WR_HPIL0_D     XBYTE[0xe200]
#define   WR_HPIH0_D     XBYTE[0xe300]
#define   WR_HPIL_A      XBYTE[0xe400]
#define   WR_HPIH_A      XBYTE[0xe500]
#define   WR_HPIL1_D     XBYTE[0xe600]
#define   WR_HPIH1_D     XBYTE[0xe700]
#define   RD_HPIL0_D     XBYTE[0xeA00]
#define   RD_HPIH0_D     XBYTE[0xeB00]
#define   RD_HPIL1_D     XBYTE[0xeE00]
#define   RD_HPIH1_D     XBYTE[0xeF00]

sbit  NRST       =P1^2;
sbit  LED		 =P1^0;

void delay(uint wu)
{
	for(wu;wu>0;wu--);
}

void led_light()
{
	delay(30000);
	LED=~LED;
	delay(30000);
	LED=~LED;
	delay(30000);
	LED=~LED;
	delay(30000);
	LED=~LED;
	}

	void main()
	{
	uchar code *dspptr,*temp;
	uchar len;
	char i;
	uint addr;
	NRST=0;
	delay(100);
	NRST=1;
	delay(100);
	HPICL=0x08;
	HPICH=0x08;

	led_light();
	dspptr=dspcode;
	while(1)
	{
		len=*dspptr++;
		if(len==0) break;
		else
		{
			addr=((*dspptr++)*256)+(*dspptr++);
			addr--;
			temp=dspptr;
			again:         
			WR_HPIL_A=addr/256;
			WR_HPIH_A=addr%256;
			for(i=0;i<len/2;i++)
			{  
				WR_HPIL0_D=*dspptr++;       
				WR_HPIH0_D=*dspptr++;                      
			}
			dspptr=temp;
			addr++;
			WR_HPIL_A=addr/256;
			WR_HPIH_A=addr%256;
			for(i=0;i<len/2;i++)
			{  
				if(RD_HPIL0_D!=*dspptr++)  goto again;
				if(RD_HPIH0_D!=*dspptr++)  goto again;                      
			}
		}
	}
	WR_HPIL_A=0x00; 
	WR_HPIH_A=0x7f;
	WR_HPIL1_D=0x00;
	WR_HPIH1_D=0x80;    
	while(1) led_light();
}     

⌨️ 快捷键说明

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