添加错误代码
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "prot_uc.h"
|
||||
#include "key.h"
|
||||
#include "mystdlib.h"
|
||||
#include "transmit.h"
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +17,9 @@
|
||||
typedef struct{
|
||||
int inited;
|
||||
int run;
|
||||
int input;
|
||||
int input_lock;
|
||||
void *tran;
|
||||
}self_def;
|
||||
|
||||
|
||||
@@ -26,36 +30,37 @@ static void request_check(void *p);
|
||||
static void key_thread(void *arg)
|
||||
{
|
||||
self_def *s=arg;
|
||||
gpioin_def *in1,*in2,*in3,*in4;
|
||||
int input=0,input_lock=1;
|
||||
gpioin_def *in1;
|
||||
in1=dev_get("gpioin1");
|
||||
in2=dev_get("gpioin2");
|
||||
in3=dev_get("gpioin3");
|
||||
in4=dev_get("gpioin4");
|
||||
in1->init(in1);
|
||||
in2->init(in2);
|
||||
in3->init(in3);
|
||||
in4->init(in4);
|
||||
|
||||
s->input=0;
|
||||
s->input_lock=1;
|
||||
|
||||
while (s->run)
|
||||
{
|
||||
rt_thread_mdelay(20);
|
||||
//input=(in1->state(in1))|(in2->state(in2)<<1)|(in3->state(in3)<<2)|(in4->state(in4)<<3);
|
||||
input=(in1->state(in1));
|
||||
if(input!=input_lock)
|
||||
s->input=(in1->state(in1));
|
||||
if(s->input!=s->input_lock)
|
||||
{
|
||||
DBG_LOG("key=%08X",input);
|
||||
input_lock=input;
|
||||
if((input&1)==0)
|
||||
DBG_LOG("key=%08X",s->input);
|
||||
s->input_lock=s->input;
|
||||
if((s->input&1)==0)
|
||||
{
|
||||
request_check(s);
|
||||
// 主机交互存在且非忙的时候才发送请求
|
||||
if(s->tran&&(tran_get_busy(s->tran)==0))
|
||||
request_check(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 获取实时按键状态,1按下
|
||||
int key_pressed(void)
|
||||
{
|
||||
self_def *s=&g_self;
|
||||
return !s->input;
|
||||
}
|
||||
|
||||
|
||||
// cmd=0x37
|
||||
@@ -81,7 +86,11 @@ static void init_later(void *t)
|
||||
DBG_WARN("can not fond variable \"protu\"");
|
||||
}
|
||||
}
|
||||
|
||||
static void init_tran(void *t)
|
||||
{
|
||||
self_def *s=t;
|
||||
s->tran=app_variable("tran",0,0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -95,6 +104,7 @@ static int init_thread(void)
|
||||
rt_thread_t rt_t=rt_thread_create("key_t",key_thread,s,1024,15,20);
|
||||
rt_thread_startup(rt_t);
|
||||
app_valid_call("protu",init_later,s);
|
||||
app_valid_call("tran",init_tran,s);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user