📄 user.c
字号:
#include "user.h"
#include "core_api.h"
#include "defs.h"
#include "stdio.h"
#include "api.h"
struct {
U8 forward1;
U8 backward1;
U8 backlimit;
U8 forwardlimit;
} status ;
S32 cycletsk(S32 dat)
{
U8 k;
////////Add you code here //////////////
//printf("I'm cycletsk. delay 500ms\n");
k=readstatus();
if(k==1)
status.backlimit=1;
else if(k==2)
status.forwardlimit=1;
else
status.backlimit=status.forwardlimit=0;
dly_tsk(20);
////////////////////////////////////////
return 0;
}
int flag=0;
S32 taskA(S32 dat)
{
static U8 sta0,sta1,sta2;
sta0 = sta1;
sta1 = sta2;
sta2 = key1Scan0();
if((!sta0)&&sta1&&sta2) //key1Scan()
{
if(flag++%2==0)
{
status.forward1=1;
status.backward1=0;
}
else
{
status.forward1=0;
status.backward1=1;
}
}
dly_tsk(50);
return 0;
}
//int i = 0;
S32 taskB(S32 dat)
{
if (status.forward1) //(status.backlimit==1)
forward();
else if(status.backward1) //(status.forwardlimit==1)
backward();
if(((status.backlimit==1)&&status.backward1)||((status.forwardlimit==1)&&status.forward1))
{
status.forward1=status.backward1=0;
stop();
}
dly_tsk(100);
return 0;
}
static U8 t=0;
static U8 k=0;
static U8 m=0;
static U8 n=0;
S32 ScanTsk(S32 dat)
{
if(status.forwardlimit==1)
{
k++;
HC595_SendDat(k%16);
if(k>=100) //100*50ms
{
k=0;
status.forward1=0;
status.backward1=1;
}
}
else
{
k=0;
HC595_SendDat(t++%16);
}
if(status.forward1)
{
m++;
if(m>=45)
{
m=0;
status.forward1=0;
stop();
status.backward1=1;
}
}
else
m=0; //防止正转过程中按键,则正转计数清零
if(status.backward1)
{
n++;
if(n>=45) //45*50ms
{
n=0;
status.backward1=0;
stop();
status.forward1=1;
}
}
else
n=0; //反转计数清零
dly_tsk(50); //50ms
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -