📄 main.c
字号:
if(zhuanxiang3==0)
{
IO0SET = 0x00900000;
OSTimeDlyHMSM(0,0,0,zhuanshu3);
for(i=0;i<(((zhuanshu3*1000)/1873));i++)
{
if(((a+1)%2)==1)
IO0CLR = ((tab1[a]^tab1[a+1])&0x0000000f)<<20;
else
IO0SET = ((tab1[a]^tab1[a+1])&0x0000000f)<<20;
a++;
OSTimeDlyHMSM(0,0,0,zhuansu3);
if(a==8)a=0;
}
}
else
{
IO0SET = 0x00900000;
OSTimeDlyHMSM(0,0,0,zhuanshu3);
for(i=0;i<((zhuanshu3*1000)/1873);i++)
{
if(((a+1)%2)==1)
IO0CLR = ((tab2[a]^tab2[a+1])&0x0000000f)<<20;
else
IO0SET = ((tab2[a]^tab2[a+1])&0x0000000f)<<20;
a++;
OSTimeDlyHMSM(0,0,0,zhuansu3);
if(a==8)a=0;
}
}
OSTaskDel(OS_PRIO_SELF);
}
/*********************************************************************************************************
** TaskKEY1
查询按键,向TaskPWM发送改变后的消息
********************************************************************************************************/
void TaskKEY1(void *pdata)
{
uint8 key,x1=0,x2=0,x3=0,dangqian=0,xuhao=0,arr[4],sudu1=0,sudu2=0,sudu3=0,weiyi1=0,weiyi2=0,weiyi3=0;
uint32 cond[9];
pdata = pdata;
TargetInit ();
PINSEL1= 0x00000000;
PINSEL2= PINSEL2&(~0x08);
IO1DIR = 0x00780000;
IO0DIR = 0xffffffff;
GUI_Initialize();
GUI_SetColor(1, 0);
OSTaskCreate (TaskDisp,(void *)0, &TaskDispStk[TaskStkLengh - 1], 10);
ReMsgQeue=OSQCreate(&MsgQeueTb[0],100);
while (1)
{
key=keyin();
switch(xuhao+1)
{
case 1: // 1号电机
switch((dangqian+1))
{
case 1: // 1号电机的速度设置
switch(key)
{
case 1: // 速度值位数的大小设置
arr[0]=1;
sudu1++;if(sudu1==10)sudu1=0;
arr[1]=sudu1;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 速度值位数的移动设置
arr[0]=2;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 2: // 1号电机的位移设置
switch(key)
{
case 1: // 位移值位数的大小设置
arr[0]=5;
weiyi1++;if(weiyi1==10)weiyi1=0;
arr[1]=weiyi1;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 位移值位数的移动设置
arr[0]=6;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 3: // 1号电机的转向设置
switch(key)
{
case 1: // 正转
arr[0]=7;
x1=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 反转
arr[0]=8;
x1=1;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
default:
break;
}
break;
case 2: // 2号电机
switch((dangqian+1))
{
case 1: // 2号电机的速度设置
switch(key)
{
case 1: // 速度值位数的大小设置
arr[0]=9;
sudu2++;if(sudu2==10)sudu2=0;
arr[1]=sudu2;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 速度值位数的移动设置
arr[0]=10;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 2: // 2号电机的位移设置
switch(key)
{
case 1: // 位移值位数的大小设置
arr[0]=11;
weiyi2++;if(weiyi2==10)weiyi2=0;
arr[1]=weiyi2;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 位移值位数的移动设置
arr[0]=12;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 3: // 2号电机的转向设置
switch(key)
{
case 1: // 正转
arr[0]=13;
x2=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 反转
arr[0]=14;
x2=1;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
default:
break;
}
break;
case 3: // 3号电机
switch((dangqian+1))
{
case 1: // 3号电机的速度设置
switch(key)
{
case 1: // 速度值位数的大小设置
arr[0]=15;
sudu3++;if(sudu3==10)sudu3=0;
arr[1]=sudu3;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 速度值位数的移动设置
arr[0]=16;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 2: // 3号电机的位移设置
switch(key)
{
case 1: // 位移值位数的大小设置
arr[0]=17;
weiyi3++;if(weiyi3==10)weiyi3=0;
arr[1]=weiyi3;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 位移值位数的移动设置
arr[0]=18;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 3: // 切换选项设置
arr[0]=3;
dangqian++;
if(dangqian==3)dangqian=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 4: // 切换电机的序号
arr[0]=4;
xuhao++;
if(xuhao==3)xuhao=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
default:
break;
}
break;
case 3: // 3号电机的转向设置
switch(key)
{
case 1: // 正转
arr[0]=19;
x3=0;
OSQPost(ReMsgQeue,(void*)arr);
break;
case 2: // 反转
arr[0]=20;
x3=1;
OSQPost(ReMsgQeue,(void*)arr);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -