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

📄 main.c

📁 基于DSP的类MP4播放器使用C语言在DSP++平台上编码
💻 C
字号:
segment("sdram0_bank1")unsigned char Image_422_1716x525_0[1716*525];
segment("sdram0_bank1")unsigned char Image_422_1716x525_1[1716*525];
segment("sdram0_bank1")unsigned char Image_422_1716x525_2[1716*525];
segment("sdram0_bank1")unsigned char Image_422_1716x525_3[1716*525];
segment("sdram0_bank1")unsigned char Image_422_1716x525_4[1716*525];

segment("sdram0_bank1")unsigned char Image_422_1440x486_0[1440*486];
segment("sdram0_bank1")unsigned char Image_422_1440x486_1[1440*486];
segment("sdram0_bank1")unsigned char Image_422_1440x486_2[1440*486];
segment("sdram0_bank1")unsigned char Image_422_1440x486_3[1440*486];
segment("sdram0_bank1")unsigned char Image_422_1440x486_4[1440*486];

extern void DMA_init(unsigned char * buffer_start_addr);
extern void PPI_init( );
extern void DMA_enable( );
extern void PPI_enable( );
extern void ADV7171_reset( );
extern void DSP_PLL_CClk_SClk_Init();
extern void Init_SDRAM();
extern void Read_Flash (unsigned char* buffer_656);
extern void get_fourpic_form_one(unsigned char *image,unsigned char *pic1,unsigned char *pic2,unsigned char *pic3,unsigned char *pic4);
extern void Get_ITU656_frame_from_NTSC(unsigned char*c_in,unsigned char *c_out);
extern short button_manage();
extern int  change_p_656_display(short button,unsigned char *addr_pic0,unsigned char *addr_pic1,unsigned char *addr_pic2,unsigned char *addr_pic3,unsigned char *addr_pic4);
//extern void Read_Flash_ convert_ NTSC _ITU656(unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*);
//#include "stdio.h"
#define FIO_DIR		0XFFC00730	//16bit
#define FIO_INEN	0XFFC00740	//16bit
#define FIO_FLAG_D	0XFFC00700	//16bit


//	short button_loop;
//	int ss;
void main( )
{	
/*	struct unbind_dma_en
	{
		unsigned a:1;
		unsigned b:15;
	};
*/


//short button_manage(int sw2)

	short  sw,swup,swdown;
	int sw1,sw2,sw3,sw4;	//sw1 and sw2 去抖动
	unsigned short *p_fio_dir,*p_fio_inen,*p_fio_flag_d;
//	short  swdown;

	unsigned char *p_656_display;
	unsigned short * pDMA0_IRQ_STATUS; // PPI DMA状态寄存器,用于检测DMA传输是否结束
	unsigned int *pDMA0_START_ADDR;
//	struct unbind_dma_en *p_dma_en;
//	unsigned short *p_dma_en;
//
/*		p_fio_dir = FIO_DIR;
 	p_fio_inen = FIO_INEN;
 	p_fio_flag_d = FIO_FLAG_D;
 	*p_fio_dir =0;	//open sw4 and sw5
 	*p_fio_inen = 0x0100;	// enable sw4 and sw5
*/
 //	
 	p_fio_dir = FIO_DIR;
 	p_fio_inen = FIO_INEN;
 	p_fio_flag_d = FIO_FLAG_D;
 	*p_fio_dir =0;	//open sw4 and sw5
 	*p_fio_inen = 0x0300;	// enable sw4 and sw5
//
	pDMA0_IRQ_STATUS = 0xFFC00C28;
	pDMA0_START_ADDR = 0xFFC00C04;
//	p_dma_en = 0xFFC00C08;

	DSP_PLL_CClk_SClk_Init();

	Init_SDRAM();

	 Read_Flash (Image_422_1440x486_0);
	 Get_ITU656_frame_from_NTSC(Image_422_1440x486_0,Image_422_1716x525_0);
	 get_fourpic_form_one(Image_422_1440x486_0,Image_422_1440x486_1,Image_422_1440x486_2,Image_422_1440x486_3,Image_422_1440x486_4);
	 Get_ITU656_frame_from_NTSC(Image_422_1440x486_1,Image_422_1716x525_1);
	 Get_ITU656_frame_from_NTSC(Image_422_1440x486_2,Image_422_1716x525_2);
	 Get_ITU656_frame_from_NTSC(Image_422_1440x486_3,Image_422_1716x525_3);
	 Get_ITU656_frame_from_NTSC(Image_422_1440x486_4,Image_422_1716x525_4);

	ADV7171_reset ( );	
	DMA_init( Image_422_1716x525_0 );
	PPI_init( );
//	(p_dma_en->a)=1;
//	(p_dma_en->b)=8;	//<=>*p_dma_en=0x0011
	DMA_enable( );
	PPI_enable( );

	p_656_display = Image_422_1716x525_0;


 //	sw1=(*p_fio_flag_d & 0x0100)>>8;	//做防抖
//	swdown=sw1 &&sw2;
 //	sw2=!sw1;

while(1)
	{
while(*pDMA0_IRQ_STATUS & 0x0008)  
		{ };// DMA is enabled and running
		*pDMA0_START_ADDR =(int) p_656_display;
		DMA_enable( );
//		~((~*p_dma_en>>1)<<1);
//		p_dma_en->a = 1;	
	sw1=(*p_fio_flag_d & 0x0100)>>8;	//做防抖
	swdown=sw1 && sw2;
	sw2=!sw1;

	sw3=(*p_fio_flag_d & 0x0200)>>9;	//做防抖
	swup=sw3 && sw4;
	sw4=!sw3;

	if(swdown==1)	// pagedown
	 {
 	  if (sw<5)
 	  	sw+=1;
 	  	else sw=0;
 	 }
	else if(swup==1)	// pageup
  	 {
 		if(sw>0)
 		sw-=1;
 		else sw=4;
 	 }

	else;
//		button_loop=button_manage(ss);
//add code here to manage the button
//		button_loop=2;
		p_656_display = change_p_656_display(sw,Image_422_1716x525_0,Image_422_1716x525_1,Image_422_1716x525_2,Image_422_1716x525_3,Image_422_1716x525_4);
		//在此添加按键检测代码,重新给p_656_display赋值
	//	printf("button=%d	ss=%d\n",button_loop,ss);
}
} 

⌨️ 快捷键说明

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