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

📄 main.c

📁 采用美国adi公司的bf系列
💻 C
字号:
/************************************************************************** 
文件名称: main.c
作者: Andy
版本: 0.1 
创建时间 : 2007-04 
描述: 
	文件实现了从BMP图片格式的数据中提取图像数据并将其显示于屏上的功能
修改历史: 
****************************************************************************/ 

#include <cdefBF533.h>
#include "dm_cpu.h"
#include "dm_bf5xx.h"
#include "dm_types.h"

section ("sdram0") unsigned char DisplayBuffer[262][960] ;
section ("sdram0") unsigned char TempBuffer_img[262][960] ;
section ("sdram0") unsigned char Inputdata0[251574]={
#include "bmp1.dat"
};
section ("sdram0") unsigned char Inputdata1[251574]={
#include "bmp2.dat"
};

/****************************************************************************
* 名称 : gbrtorgb24
* 功能 : 从BMP格式图片中提取RGB数据
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void gbrtorgb24(uint_t f)
{
	
	int_t i,j;
	int_t  a,b;

	for(i=0;i<262;i++)
	{
		for(j=0;j<960;j++)
		{
			if(f) TempBuffer_img[i][j] = Inputdata0[i*960+j+54];
			else TempBuffer_img[i][j] = Inputdata1[i*960+j+54];
					
		}
	}
	for(i=0;i<262;i++)
	{
		for(j=0;j<320;j++)
		{
	   		a = TempBuffer_img[i][j*3];
	   		b = TempBuffer_img[i][j*3+2];	
	   		TempBuffer_img[i][j*3] = b;
	   		TempBuffer_img[i][j*3+2] = a;
		}
	}	
	for(i=0;i<262;i++)
	{
		for(j=0;j<960;j++)
		{
			DisplayBuffer[i][j] = TempBuffer_img[261-i][j];
		}
	}
}

void display(uint_t f)
{
	gbrtorgb24(f);
	Init_PPIDMA(DisplayBuffer);
	Init_Platform_TFT();
}
//定义字形码
uint8_t LED_code[10]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f};

/****************************************************************************
* 名称 : leddisplay
* 功能 : 点亮LED,输入要点亮的LED号和要显示的数据
* 入口参数 :LEDNum,data
* 出口参数 :无
****************************************************************************/
void leddisplay(uint8_t LEDNum,uint8_t data)
{
	switch(LEDNum)
	{
		case 1: 	*pCtrOut_Flag_B = 0x00;  	break;
 		case 2:		*pCtrOut_Flag_B = LED_A0;	break;
		default:	printf("ERROR!\n");			break;
	}
	*pLED_DAT_OUT = LED_code[data];
	*pCtrIner_Flag_OE = 0x00;
	*pCtrIner_Flag_OE = LEDCS;
}

void leddisplay1(uint8_t data)
{
	uint8_t i;
	*pCtrOut_Flag_B = LED_A1;
	i=data%8;
	*pLED_DAT_OUT = (0x01<<i);
	*pCtrIner_Flag_OE = 0x00;
	*pCtrIner_Flag_OE = LEDCS;
} 


/****************************************************************************
* 名称 : main
* 功能 : TFT显示图片测试函数
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
int main()                                                                                                                                                                               
{	
	int_t i,j;
	Set_PLL(22,5);  			//配置内核时钟为594M,系统时钟为118.8M
	Init_SDRAM();	
	Init_EBIU();
	Init_Flash();
	//Init_LED_CPLD();
	lcd_init();
	
	display(0);
	while(1)
	{
		for(i=0;i<10;i++)
		{
			//leddisplay(2,i);
			
			for(j=0;j<10;j++)
			{
				//leddisplay(1,j);
				//leddisplay1(j);
				mdelay(10000);
			}
		}

	}
}





⌨️ 快捷键说明

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