|
你好,我使用的触摸屏是DMG10600C070_03WTR,后台DWIN_os代码中,在循环之前包括更新进度条和切换页码,程序可以正常下载调试,但是前台没有更新效果,请帮我看一下,代码如下。
char Switch_Page[4] = {0x5a,0x01,0x00,0x00}; //定义切页命令
char progress_Bar[4] = {0x00, 0x01, 0xff, 0xff};//进度条10%
char progress_Dat[4] = {0x00, 0x00, 0xff, 0xff};//进度条百分比
int main()
{
int i ;
char Variable_Addr[8]={0x00, 0x00, 0x00, 0x00};
char Variable_Addr2[8]={0x00, 0x00, 0x00, 0x00};
char Vp_Clear[10]={0x00, 0x00, 0x00, 0x00};//清空密码框
char RW_Flash_Flag[2]={0};
char RW_Flash_Value[4]={0};
char Read_Flash[8]={0x5a,0x00,0x12,0x00,0x10,0x08,0x00,0x02}; //数据库读操作
char Write_Flash[8]={0xa5,0x00,0x12,0x00,0x10,0x02,0x00,0x02}; //数据库写操作
char Supervisor_Password[4]={0x00,0x02,0x2c,0xc8};//142536=00 02 2c c8 赋值超级密码
write_dgus_vp(0x1002,Vp_Clear,2); //请输入框
write_dgus_vp(0x1004,Vp_Clear,2); //请输入框
write_dgus_vp(0x1006,Vp_Clear,2); //请输入框
write_dgus_vp(0x1008,Vp_Clear,2); //请输入框
write_dgus_vp(0x1100,Vp_Clear,2); //清按键
write_dgus_vp(0x1102,Vp_Clear,2); //清按键
for(i=0; i<10; i++)
{
progress_Bar[1] = i+1 ;
write_dgus_vp(0x1030,progress_Bar,2); //更新进度条
progress_Dat[1] = (i+1)*10 ;
write_dgus_vp(0x1032,progress_Dat,2); //更新百分比
Delayms(500); //延时0.5s
}
Switch_Page[3]=1;
write_dgus_vp(0x0084,Switch_Page,2); //切换到第1页
while(1)
{
Delayms(100);
//*******************密码登录***********************//
read_dgus_vp(0x1100,Variable_Addr,2); //判断确认输入键是否被按下
if((Variable_Addr[0]==0)&&(Variable_Addr[1]==0x5a)) //如果被按下
{
read_dgus_vp(0x1008,Variable_Addr,2); //读输入密码
write_dgus_vp(0x0008,Read_Flash,4); //读保存密码
read_dgus_vp(0x1200,RW_Flash_Value,2);
do
{
read_dgus_vp(0x0008,RW_Flash_Flag,1);
}
while(RW_Flash_Flag[0]==0x5A);
if(tests(Variable_Addr,Vp_Clear,4)==0)
{
}
else if(tests(Variable_Addr,Supervisor_Password,4)==0) //判断是否为超级密码
{
Switch_Page[3]=3;
write_dgus_vp(0x0084,Switch_Page,2); //切到参数界面
}
else if(tests(Variable_Addr,RW_Flash_Value,4)==0) //判断是否为保存密码
{
Switch_Page[3]=3;
write_dgus_vp(0x0084,Switch_Page,2); //切到参数界面
}
else
{
Switch_Page[3]=8;
write_dgus_vp(0x0084,Switch_Page,2); //切到错误界面
}
write_dgus_vp(0x1008,Vp_Clear,2); //清输入框
write_dgus_vp(0x1100,Vp_Clear,2); //清按键
}
//*******************密码改写***********************//
read_dgus_vp(0x1102,Variable_Addr,2); //判断确认改写键是否被按下
if((Variable_Addr[0]==0)&&(Variable_Addr[1]==0x5a)) //如果被按下
{
read_dgus_vp(0x1002,Variable_Addr,2); //读原始密码
if(tests(Variable_Addr,Vp_Clear,4)==0)
{
}
else if(tests(Variable_Addr,Supervisor_Password,4)==0) //判断是否为超级密码
{
read_dgus_vp(0x1004,Variable_Addr,2); //读输入密码
read_dgus_vp(0x1006,Variable_Addr2,2); //读再次输入密码
if(tests(Variable_Addr,Variable_Addr2,4)==0) //判断两次密码一致
{
//---------保存密码
write_dgus_vp(0x0008,Read_Flash,4); //读5a a5 0b 82 0008 5a00 1008 1008 0002 读数据库参考应用文档系统变量接口表格。
write_dgus_vp(0x1200,Variable_Addr,2);
do
{
read_dgus_vp(0x0008,RW_Flash_Flag,1);
}
while(RW_Flash_Flag[0]==0x5A);
Switch_Page[3]=10;
write_dgus_vp(0x0084,Switch_Page,2); //切到设置成功界面
}
}
else
{
Switch_Page[3]=8;
write_dgus_vp(0x0084,Switch_Page,2); //切到错误界面
}
write_dgus_vp(0x1002,Vp_Clear,2); //清输入框
write_dgus_vp(0x1004,Vp_Clear,2); //清输入框
write_dgus_vp(0x1006,Vp_Clear,2); //清输入框
write_dgus_vp(0x1102,Vp_Clear,2); //清按键
}
}
return 0 ;
}
void Time0_IRQHandler(void) //定时器0 函数体
{
}
void Time1_IRQHandler(void) //定时器1 函数体
{
}
void Time2_IRQHandler(void) //定时器2 函数体
{
}
|
|