📄 main.c
字号:
diswordyel(0);
diswordgre(0);
diswordblu(0);
diswordpur(0);
}
// 黄色
void Dispyelall(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line1);
Dispcolorrank(col1,line1,col5,line4,WHITE);
Dispcolorrank(col1,line4,col5,line5,YELLOW);
Dispcolorrank(col1,line5,col5,line8,WHITE);
diswordmune();
diswordred(0);
diswordorg(0);
diswordyel(1);
diswordgre(0);
diswordblu(0);
diswordpur(0);
}
void Dispgreall(void) // 绿色
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,0);
Dispcolorrank(col1,line1,col5,line5,WHITE);
Dispcolorrank(col1,line5,col5,line6,GREEN);
Dispcolorrank(col1,line6,col5,line8,WHITE);
diswordmune();
diswordred(0);
diswordorg(0);
diswordyel(0);
diswordgre(1);
diswordblu(0);
diswordpur(0);
}
void Dispbluall(void) // 兰色
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line1);
Dispcolorrank(col1,line1,col5,line6,WHITE);
Dispcolorrank(col1,line6,col5,line7,BLUE);
Dispcolorrank(col1,line7,col5,line8,WHITE);
diswordmune();
diswordred(0);
diswordorg(0);
diswordyel(0);
diswordgre(0);
diswordblu(1);
diswordpur(0);
}
void Disppurall(void) // 紫色
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line1);
Dispcolorrank(col1,line1,col5,line7,WHITE);
Dispcolorrank(col1,line7,col5,line8,pur);
diswordmune();
diswordred(0);
diswordorg(0);
diswordyel(0);
diswordgre(0);
diswordblu(0);
diswordpur(1);
}
/****************************************************************************
* 名 称:Disp'color'
* 功 能:以非全屏重写方式滚动色条,每次只重写新的色条,擦去上一色条
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Dispred(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line7);
Dispcolorrank(col1,line7,col5,line8,WHITE); // 重写“紫色”条
TftSetWrite(col1,line2);
Dispcolorrank(col1,line2,col5,line3,RED); // 填充红色
diswordred(1);
diswordpur(0);
}
void Disporg(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line2);
Dispcolorrank(col1,line2,col5,line3,WHITE); // 重写“红色”条
Dispcolorrank(col1,line3,col5,line4,org); // 填充橙色
diswordred(0);
diswordorg(1);
}
void Dispyel(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line3);
Dispcolorrank(col1,line3,col5,line4,WHITE); // 重写“橙色”条
Dispcolorrank(col1,line4,col5,line5,YELLOW); // 填充黄色
diswordorg(0);
diswordyel(1);
}
void Dispgre(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line4);
Dispcolorrank(col1,line4,col5,line5,WHITE); // 重写“黄色”条
Dispcolorrank(col1,line5,col5,line6,GREEN); // 填充绿色
diswordgre(1);
diswordyel(0);
}
void Dispblu(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line5);
Dispcolorrank(col1,line5,col5,line6,WHITE); // 重写“绿色”条
Dispcolorrank(col1,line6,col5,line7,BLUE); // 填充蓝色
diswordgre(0);
diswordblu(1);
}
void Disppur(void)
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line6);
Dispcolorrank(col1,line6,col5,line7,WHITE); // 重写“蓝色”条
Dispcolorrank(col1,line7,col5,line8,pur); // 填充紫色
diswordpur(1);
diswordblu(0);
}
/****************************************************************************
* 名 称:Dispic
* 功 能:显示一幅图片
* 入口参数:* const_pic,指向图片文件名
* 出口参数:无
****************************************************************************/
void dispic(const unsigned short * const_pic)
{ uint32 x, y;
uint32 no;
uint16 dat;
TftSetWindow(0,0, 239, 319);
TftSetWrite(0,0);
no = 0;
for(y=0; y<320; y++)
{ for(x=0; x<240; x++)
{
dat = const_pic[no];
TftSendDat(dat);
no++;
}
}
}
/****************************************************************************
* 名 称:Dispplayfill
* 功 能:全屏显示选中的色条对应的图片
* 入口参数:select
* 出口参数:无
****************************************************************************/
void displayfill(uint8 no)
{
if (no==1)
dispic(pic3);
else if(no==2)
dispic(pic1);
else if(no==3)
dispic(pic4);
else if(no==4)
dispic(pic2);
else if(no==5)
dispic(pic5);
else
dispic(pic6);
}
/****************************************************************************
* 名 称:Dispplaymune
* 功 能:显示色条滚动
* 入口参数:select,传递选中的颜色,state,传递是否需要全屏重写
* 出口参数:无
****************************************************************************/
//显示菜单
void displaymenu(uint8 no,uint8 stat)
{
DelayNS(10);
if(stat==0)
{ if(no==1)
Dispred();
else if(no==2)
Disporg();
else if(no==3)
Dispyel();
else if(no==4)
Dispgre();
else if(no==5)
Dispblu();
else
Disppur();
}
else
{ if(no==1)
Dispredall();
else if(no==2)
Disporgall();
else if(no==3)
Dispyelall();
else if(no==4)
Dispgreall();
else if(no==5)
Dispbluall();
else
Disppurall();
}
}
/****************************************************************************
* 名 称:main()
* 功 能:对ZLG7290进行操作
* 说 明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位);
* 在CONFIG.H文件中包含I2CINT.H、ZLG7290.H。
****************************************************************************/
int main(void)
{
uint8 key_buf[8];
uint8 key=0,select=1,fillsr=0;
PINSEL0 = 0x00000000;
PINSEL1 = 0x00000000;
GUI_Initialize();
Dispredall();
I2C_Init(30000); // I2C 配置初始化
while(1)
{
DelayNS(7);
IRcvStr(ZLG7290, 0x01, key_buf, 2);
if(select==6)
select=0;
if(fillsr==2)
fillsr=0;
if(0 == key_buf[1]) // 是否有效的按键动作
{
key = key_buf[0]; // 取得键值
if(key!=0)
{
if(key==1)
{
if(fillsr==0)
{
select++;
displaymenu(select,0);
}
else
{
displaymenu(select,1);
fillsr++;
}
DelayNS(38);
}
else if(key==2)
{
fillsr++;
if(fillsr==2)
displaymenu(select,1);
else
displayfill(select);
DelayNS(20);
}
}
}
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -