赞
踩
2.参数界面
3. 统计界面
4.LCD显示要求
- oid Lcd_Proc(void)
- {
-
- if((uwTick - uwTick_Lcd_Set_Point)< 50) return;//减速函数
- uwTick_Lcd_Set_Point = uwTick;
-
- if(lcd_p == 1)
- {
- sprintf((char *)lcd_buf," DATA ");
- LCD_DisplayStringLine(Line1, (u8*)lcd_buf);
-
- sprintf((char *)lcd_buf," M=%c ",m);
- LCD_DisplayStringLine(Line3, (u8*)lcd_buf);
-
- sprintf((char *)lcd_buf," P=%d%% ",p);
- LCD_DisplayStringLine(Line4, (u8*)lcd_buf);
-
- sprintf((char *)lcd_buf," V=%.1f ",v);
- LCD_DisplayStringLine(Line5, (u8*)lcd_buf);
-
-
- }
- else if(lcd_p ==2 )
- {
- sprintf((char*)lcd_buf," PARA ");
- LCD_DisplayStringLine(Line1,(u8*)lcd_buf);
-
- sprintf((char*)lcd_buf," R=%d ",r_show);
- LCD_DisplayStringLine(Line3,(u8*)lcd_buf);
-
- sprintf((char*)lcd_buf," K=%d ",k_show);
- LCD_DisplayStringLine(Line4,(u8*)lcd_buf);
- }
- else if(lcd_p == 3)
- {
- sprintf((char*)lcd_buf," RECD ");
- LCD_DisplayStringLine(Line1,(u8*)lcd_buf);
- sprintf((char*)lcd_buf," N=%d ",n);
- LCD_DisplayStringLine(Line3,(u8*)lcd_buf);
- sprintf((char*)lcd_buf," MH=%.1f ",mh);
- LCD_DisplayStringLine(Line4,(u8*)lcd_buf);
- sprintf((char*)lcd_buf," ML=%.1f ",ml);
- LCD_DisplayStringLine(Line5,(u8*)lcd_buf);
- }
-
-
- }
1.实现按键B1的功能
(1)首先实现能切换界面
- if(Key_Down ==1 && Key_Val ==1)
- {
- lcd_p++;
- if(lcd_p ==2) //进入参数界面
- {
-
- }
-
- if(lcd_p ==3) // 从参数界面退出
- {
-
- }
- if(lcd_p >3) lcd_p =1;
-
- if(lcd_p ==1)
- {
-
- }
- LCD_Clear(Black);
- }
(2)实现三个界面里的内容
a.定义界面一、二、三的参数
- //界面一的参数
- uint8_t m='L';
- uint8_t p=0; //实际占空比
- uint8_t v=0; //实际速度
-
- //界面二参数
- uint8_t r=1,k=1;
- uint8_t r_show=1,k_show=1;
-
- //界面三参数
- uint16_t n=0;
- float mh=0,ml=0;
- if(Key_Down ==1 && Key_Val ==1)
- {
- lcd_p++;
- if(lcd_p ==2) //进入参数界面
- {
- r_show = r;
- k_show = k;
- }
-
- if(lcd_p ==3) // 从参数界面退出
- {
- r = r_show;
- k = k_show;
- b2_set =1;
- }
- if(lcd_p >3) lcd_p =1;
-
- if(lcd_p ==1)
- {
- b4_cnt = 0;
- }
- LCD_Clear(Black);
- }
(1)定义B2按键标志位 uint8_t b2_set = 1; //==1R,==2K
(2)按键按下后,5秒内不可再触发的实现:
- if(Key_Val == 2 && Key_Down ==2)
- {
- if(lcd_p ==1&& uwTick - b2_tick > 5000)
- {
- b2_tick = uwTick;
- if(m == 'H')
- {
- m= 'L';
- }
- else if( m == 'L')
- {
- m= 'H';
- }
- n++;
- }
- else if(lcd_p == 2)
- {
- if(b2_set == 1) b2_set =2;
- else if(b2_set ==2 ) b2_set = 1;
- }
- }
- if(Key_Val==4&&Key_Down==4)
- {
- if(b2_set==1)
- {
- r_show++;
- if(r_show>10) r_show = 1;
- }
- else if(b2_set==2)
- {
- k_show++;
- if(k_show>10) k_show = 1;
- }
- }
- if(key_val==4)
- {
- if(lcd_p==1)
- {
- if(lock==0)
- {
- b4_cnt++;
- }
- if(key_down==4&&lock==1)
- {
- lock = 0;
- b4_cnt = 0;
- }
- }
-
- if(lcd_p==2&&key_down==4)
- {
- if(b2_set==1)
- {
- r_show--;
- if(r_show<1) r_show = 10;
- }
- else if(b2_set==2)
- {
- k_show--;
- if(k_show<1) k_show = 10;
- }
- }
- }
- if(Key_Up==4)
- {
- if(b4_cnt>=20) //按道理来算,2s/20ms=100,此处值应为100才对,但实验验证20才是2s左右
- lock = 1;
- b4_cnt = 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。