按键功能完成 上机测试成功
This commit is contained in:
+3
-3
@@ -33,8 +33,8 @@ void GEI_BUTTON_CODE(struct button *bt,uint8_t in)
|
||||
{
|
||||
if(HAL_GetTick()>bt->time+t)
|
||||
{
|
||||
bt->code=255;
|
||||
bt->times=255;
|
||||
bt->code=-1;
|
||||
bt->times=-1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ void GEI_BUTTON_CODE(struct button *bt,uint8_t in)
|
||||
{
|
||||
if(bt->lock==1)
|
||||
{
|
||||
if(bt->code==255)
|
||||
if(bt->code==-1)
|
||||
{
|
||||
|
||||
}else
|
||||
|
||||
+2
-2
@@ -12,10 +12,10 @@
|
||||
|
||||
struct button
|
||||
{
|
||||
uint16_t code;
|
||||
int code;
|
||||
uint8_t lock;
|
||||
uint32_t time;
|
||||
uint16_t times;
|
||||
int times;
|
||||
};
|
||||
|
||||
void GEI_BUTTON_CODE(struct button *bt,uint8_t in);
|
||||
|
||||
+181
-9
@@ -14,10 +14,10 @@
|
||||
#define MOTA(x) HAL_GPIO_WritePin(MOTA_GPIO_Port, MOTA_Pin, x);
|
||||
#define MOTB(x) HAL_GPIO_WritePin(MOTB_GPIO_Port, MOTB_Pin, x);
|
||||
|
||||
#define KEY1 HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)
|
||||
#define KEY2 HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin)
|
||||
#define KEY3 HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin)
|
||||
#define KEY4 HAL_GPIO_ReadPin(KEY4_GPIO_Port, KEY4_Pin)
|
||||
#define KEY4 HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)
|
||||
#define KEY1 HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin)
|
||||
#define KEY2 HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin)
|
||||
#define KEY3 HAL_GPIO_ReadPin(KEY4_GPIO_Port, KEY4_Pin)
|
||||
|
||||
struct button key1,key2,key3,key4;
|
||||
|
||||
@@ -76,9 +76,10 @@ void Send_to_595(char h,char l)
|
||||
void display()
|
||||
{
|
||||
char h_buff=0,l_buff=0;
|
||||
Send_to_595(h_buff,l_buff);
|
||||
|
||||
|
||||
h_buff=0,l_buff=0;
|
||||
Send_to_595(h_buff,l_buff);
|
||||
h_buff=~0x01;
|
||||
l_buff=dis_buff.d_num[0]>=10?0:d_num_data[0][dis_buff.d_num[0]];
|
||||
if(dis_buff.dot1==1)
|
||||
@@ -88,8 +89,9 @@ void display()
|
||||
Send_to_595(h_buff,l_buff);
|
||||
|
||||
h_buff=0,l_buff=0;
|
||||
Send_to_595(h_buff,l_buff);
|
||||
h_buff=~0x80;
|
||||
l_buff=dis_buff.d_num[0]>=10?0:d_num_data[1][dis_buff.d_num[1]];
|
||||
l_buff=dis_buff.d_num[1]>=10?0:d_num_data[1][dis_buff.d_num[1]];
|
||||
if(dis_buff.dot2==1)
|
||||
{
|
||||
l_buff|=0x10;
|
||||
@@ -97,8 +99,9 @@ void display()
|
||||
Send_to_595(h_buff,l_buff);
|
||||
|
||||
h_buff=0,l_buff=0;
|
||||
Send_to_595(h_buff,l_buff);
|
||||
h_buff=~0x40;
|
||||
l_buff=dis_buff.d_num[0]>=10?0:d_num_data[0][dis_buff.d_num[2]];
|
||||
l_buff=dis_buff.d_num[2]>=10?0:d_num_data[0][dis_buff.d_num[2]];
|
||||
if(dis_buff.dot3==1)
|
||||
{
|
||||
l_buff|=0x80;
|
||||
@@ -106,8 +109,9 @@ void display()
|
||||
Send_to_595(h_buff,l_buff);
|
||||
|
||||
h_buff=0,l_buff=0;
|
||||
Send_to_595(h_buff,l_buff);
|
||||
h_buff=0xC1;
|
||||
l_buff=dis_buff.d_num[0]>=10?0:d_num_data[1][dis_buff.d_num[3]];
|
||||
l_buff=dis_buff.d_num[3]>=10?0:d_num_data[1][dis_buff.d_num[3]];
|
||||
if(dis_buff.dot4==1)
|
||||
{
|
||||
l_buff|=0x10;
|
||||
@@ -131,10 +135,14 @@ void display()
|
||||
Send_to_595(h_buff,l_buff);
|
||||
}
|
||||
|
||||
long countdown=0;
|
||||
long countdown_set=15000;
|
||||
|
||||
void mymain()
|
||||
{
|
||||
uint32_t runtime=0;
|
||||
uint32_t runtime=0,move=0;
|
||||
uint8_t mode=0;
|
||||
uint16_t adc;
|
||||
|
||||
MOTA(0);
|
||||
MOTB(0);
|
||||
@@ -147,11 +155,175 @@ void mymain()
|
||||
dis_buff.d_num[2]=0xff;
|
||||
dis_buff.d_num[3]=0xff;
|
||||
|
||||
countdown=1000;
|
||||
|
||||
while(1)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
case 0:
|
||||
//Startup
|
||||
if(HAL_GetTick()>move)
|
||||
{
|
||||
move=HAL_GetTick()+100;
|
||||
countdown-=100;
|
||||
if(countdown<0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
|
||||
dis_buff.d_num[0]=((countdown/100)%10);
|
||||
dis_buff.d_num[1]=((countdown/100)%10);
|
||||
dis_buff.d_num[2]=((countdown/100)%10);
|
||||
dis_buff.d_num[3]=((countdown/100)%10);
|
||||
|
||||
dis_buff.led_err=countdown>>0;
|
||||
dis_buff.led_p=countdown>>1;
|
||||
dis_buff.led_n=countdown>>2;
|
||||
dis_buff.dot1=countdown>>3;
|
||||
dis_buff.dot2=countdown>>4;
|
||||
dis_buff.dot3=countdown>>5;
|
||||
dis_buff.dot4=countdown>>6;
|
||||
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
//standby
|
||||
MOTA(0);
|
||||
MOTB(0);
|
||||
dis_buff.d_num[0]=0xff;
|
||||
dis_buff.d_num[1]=0xff;
|
||||
dis_buff.d_num[2]=0xff;
|
||||
dis_buff.d_num[3]=0xff;
|
||||
dis_buff.led_err=0;
|
||||
dis_buff.led_p=0;
|
||||
dis_buff.led_n=0;
|
||||
dis_buff.dot1=0;
|
||||
dis_buff.dot2=0;
|
||||
dis_buff.dot3=0;
|
||||
dis_buff.dot4=0;
|
||||
|
||||
if(key2.code!=0)
|
||||
{
|
||||
mode=2;
|
||||
countdown=countdown_set;
|
||||
}
|
||||
if(key3.code!=0)
|
||||
{
|
||||
mode=3;
|
||||
countdown=countdown_set;
|
||||
}
|
||||
if(key1.code!=0)
|
||||
{
|
||||
mode=4;
|
||||
countdown=10000;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
MOTA(0);
|
||||
MOTB(1);
|
||||
if(HAL_GetTick()>move)
|
||||
{
|
||||
move=HAL_GetTick()+100;
|
||||
if(dis_buff.led_p==1)
|
||||
{
|
||||
dis_buff.led_p=0;
|
||||
}else
|
||||
{
|
||||
dis_buff.led_p=1;
|
||||
}
|
||||
countdown-=100;
|
||||
if(countdown<0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
}
|
||||
dis_buff.d_num[3]=(countdown/100)%10;
|
||||
dis_buff.d_num[2]=(countdown/1000)%10;
|
||||
dis_buff.d_num[1]=((countdown/10000)%10);
|
||||
dis_buff.d_num[1]=dis_buff.d_num[1]==0?255:dis_buff.d_num[1];
|
||||
dis_buff.dot3=1;
|
||||
dis_buff.led_n=0;
|
||||
if(key3.code!=0)
|
||||
{
|
||||
mode=3;
|
||||
countdown=countdown_set-countdown;
|
||||
}
|
||||
if(key4.code!=0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
MOTB(0);
|
||||
MOTA(1);
|
||||
if(HAL_GetTick()>move)
|
||||
{
|
||||
move=HAL_GetTick()+100;
|
||||
if(dis_buff.led_n==1)
|
||||
{
|
||||
dis_buff.led_n=0;
|
||||
}else
|
||||
{
|
||||
dis_buff.led_n=1;
|
||||
}
|
||||
countdown-=100;
|
||||
if(countdown<0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
}
|
||||
dis_buff.d_num[3]=(countdown/100)%10;
|
||||
dis_buff.d_num[2]=(countdown/1000)%10;
|
||||
dis_buff.d_num[1]=((countdown/10000)%10);
|
||||
dis_buff.d_num[1]=dis_buff.d_num[1]==0?255:dis_buff.d_num[1];
|
||||
dis_buff.dot3=1;
|
||||
dis_buff.led_p=0;
|
||||
if(key2.code!=0)
|
||||
{
|
||||
mode=2;
|
||||
countdown=countdown_set-countdown;
|
||||
}
|
||||
if(key4.code!=0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
//setting mode
|
||||
if(HAL_GetTick()>move)
|
||||
{
|
||||
move=HAL_GetTick()+100;
|
||||
if(dis_buff.dot1==1)
|
||||
{
|
||||
dis_buff.dot1=0;
|
||||
}else
|
||||
{
|
||||
dis_buff.dot1=1;
|
||||
}
|
||||
countdown-=100;
|
||||
if(countdown<0)
|
||||
{
|
||||
mode=1;
|
||||
}
|
||||
|
||||
if(key2.code<0){countdown_set+=1000;countdown=10000;}
|
||||
if(key3.code<0){countdown_set-=1000;countdown=10000;}
|
||||
|
||||
}
|
||||
|
||||
if(key2.code>0){countdown_set+=100;countdown=10000;}
|
||||
if(key3.code>0){countdown_set-=100;countdown=10000;}
|
||||
if(countdown_set<100){countdown_set=100;}
|
||||
if(countdown_set>60000){countdown_set=60000;}
|
||||
|
||||
if(key1.code!=0){mode=1;}
|
||||
dis_buff.d_num[3]=(countdown_set/100)%10;
|
||||
dis_buff.d_num[2]=(countdown_set/1000)%10;
|
||||
dis_buff.d_num[1]=((countdown_set/10000)%10);
|
||||
dis_buff.d_num[1]=dis_buff.d_num[1]==0?255:dis_buff.d_num[1];
|
||||
dis_buff.dot3=1;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user