📄 flash.c
字号:
/****************************************************************************
* 公司名称:SITRONIX *
* 模块名称:FLASH.C *
* 模块功能:读取外部FLASH中数据并显示 *
* 创建人员:Jim Yuan *
* 创建日期:2007-6-8 *
* 修改日期:2007-6-26 *
****************************************************************************/
#include "flash.h"
extern idata volatile uint8 bl_ctl; //backlight control
extern idata volatile uint8 rom_bank; //A16_A17_A18
extern idata volatile uint8 rom_cs; //00:bank0_01:bank1_10:bank2_11:bank3
extern idata volatile uint8 key_scanx; //ken scan address
/****************************************************************************
* 函数名称:flash_data_out() *
* 函数功能:读取外部FLASH中的图片数据,并且显示。 *
* 入口参数:data_rom 图片数据所在的FLASH编号,0/1/2/3 *
* data_base 图片数据所在的FLASH中的开始地址 *
* size 图片大小 *
* 出口参数:无 *
* 创建日期:2007-6-8 *
* 修改日期:2007-6-26 *
* 修改原因:优化ROM_BANK的切换代码,增加画面刷新速度 *
****************************************************************************/
void flash_data_out(uint8 data_rom, uint32 data_base, uint32 size)
{
uint32 i;
uint32 data_end;
/*设定起始ROM*/
rom_cs = data_rom;
/*设定起始BANK*/
rom_bank = (data_base >> 16) & 0x07;
XBYTE[0] = (rom_bank & 0x07)|
((bl_ctl & 0x01)<<3)|
((rom_cs & 0x03)<<4)|
((key_scanx & 0x03)<<6);
/*读取FLASH数据并显示*/
data_end = data_base + size * 2;
for (i = data_base; i < data_end; i++)
{
if ((i & 0xFFFF) == 0) //数据范围在0x0?0000 ~ 0x0?FFFF
{
rom_bank = (i >> 16) & 0x07;
XBYTE[0] = (rom_bank & 0x07)|
((bl_ctl & 0x01)<<3)|
((rom_cs & 0x03)<<4)|
((key_scanx & 0x03)<<6);
}
disp_data(XBYTE[(i & 0xffff)]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -