📄 main.c
字号:
sdstrm(MODE3NI,(unsigned char *)&max.rksp,0,0);
sdstrm(MODE3NI,(unsigned char *)&min.rksp,0,1);
break;
}
case MODE4:
{
summ = 0;
sdstrm(1,(unsigned char *)&mnt.arg1,0,0);
sdstrm(1,(unsigned char *)&mnt.arg4,0,0);
sdstrm(1,(unsigned char *)&mnt.arg15,0,0);
break;
}
case MODE5:
{
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&nrm.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&nrm.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&nrm.egrkp,1,1);
//
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&max.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&max.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&max.egrkp,1,1);
//
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&min.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&min.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&min.egrkp,1,1);
break;
}
case MODE7:
{
summ = 0;
sdstrm(MODE7N,(unsigned char *)&oil.lmt1,1,1);
break;
}
case MODE8:
{
summ = 0;
sdstrm(MODE8N,(unsigned char *)rotation,1,1);
break;
}
default:
break;
}
}
/****************************************************************************
* 函数名称:compcsave(uchar modenum)
* 函数功能:串口pc读取命令处理程序
* 入口参数:void
* 出口参数:无
****************************************************************************/
void compcsave(void)
{
uchar tempp;
switch(cmdstr[1])
{
case MODE3:
{
tempp = write_eeprom(&enrm.rksp,&nrm.rksp,MODE3N);
sdstrm(0,&tempp,0,0);
break;
}
case MODE7:
{
tempp = write_eeprom(&eoil.lmt1,&oil.lmt1,MODE7N);
sdstrm(0,&tempp,0,0);
break;
}
case MODE8:
{
tempp = write_eeprom(erotation,rotation,MODE8N);
sdstrm(0,&tempp,0,0);
break;
}
default:
break;
}
}
/****************************************************************************
* 函数名称:revcmd()
* 函数功能:读串口缓冲区
* 入口参数:len 读取字节个数
* 出口参数:无
****************************************************************************/
void revcmd(uchar len,uint timeout)
{
uint cnt = 0;
//保证inbuf有至少2个字节
while ( ((inlast >= getlast) && ((inlast -getlast) < len))
|| ((inlast<getlast) && ((ILEN-(getlast-inlast))<len)) )
{
cnt += 10;
if(cnt>timeout)
break;
}
if ( !( ((inlast >= getlast) && ((inlast -getlast) < len))
|| ((inlast<getlast) && ((ILEN-(getlast-inlast))<len)) ) )
{
SCI0CR2 &= ~SCI0CR2_RIE_MASK;//disable receive interrupt
for (cnt=0; cnt<len; cnt++)
{
cmdstr[cnt] = *getlast;
getlast++;
if (getlast == inbuf + ILEN)
{
getlast = inbuf;
}
if (getlast == inlast)
{
inbufsign = 0;//接收缓冲区空
}
}
SCI0CR2 |= SCI0CR2_RIE_MASK;//enable receive interrupt
if (cmdstr[0] == PCREAD)
{
compcread();
//break;
}
else if (cmdstr[0] == PCSAVE)
{
compcsave();
//break;
}
else if (cmdstr[0] == PCPLUS)
{
pinc(1,0);
}
else if (cmdstr[0] == PCMINUS)
{
pinc(0,0);
}
else if (cmdstr[0] == PCFPLUS)
{
pinc(1,1);
}
else if (cmdstr[0] == PCFMINUS)
{
pinc(0,1);
}
}
//cmdstr[cnt] = 0;
//getlast = inbuf;
//inlast = inbuf;
//inbufsign = 0;
//inbufful = 0;
}
/****************************************************************************
* 函数名称:spcomf()
* 函数功能:串口命令处理程序,读取接收缓冲区命令,做相应处理
* 入口参数:无
* 出口参数:无
****************************************************************************/
//void spcomf(uchar cmd)
//{
// uchar tempp;
// tempp = cmd;
//sptemp = SCI0SR1;
/*if(inbufsign == 1)
{
tempp = cmd;
getlast++;
if(getlast == inbuf+ILEN)
{
getlast = inbuf;
}
if(getlast == inlast)
{
inbufsign = 0;
} */
//tempp = 0x84; //for debug
/*sptemp = tempp & 0xf0;
switch (sptemp)
{
case MODE1:
sptemp = tempp & 0x0f;
if(sptemp == M1READ)
{
summ = 0;
sdstrm(MODE1N,(unsigned char *)&mnt.arg1,1,1);
break;
}
else break;
//
//
case MODE2:
sptemp = tempp & 0x0f;
if(sptemp == M2READ)
{
summ = 0;
sdstrm(MODE2N,(unsigned char *)&nrm.rksp,1,1);
break;
}
//
else if(sptemp == M2INCR)
{
ii++;
pinc(1,0);
break;
}
//
else if(sptemp == M2DECR)
{
ii++;
pinc(0,0);
break;
}
//
else if(sptemp == M2FINCR)
{
ii++;
pinc(1,1);
break;
}
//
else if(sptemp == M2FDECR)
{
ii++;
pinc(0,1);
break;
}
else break;
//
//
case MODE3:
sptemp = tempp & 0x0f;
if(sptemp == M3READ)
{
summ = 0;
sdstrm(MODE3NI,(unsigned char *)&nrm.rksp,1,0);
sdstrm(MODE3NI,(unsigned char *)&max.rksp,0,0);
sdstrm(MODE3NI,(unsigned char *)&min.rksp,0,1);
break;
} */
//
/* else if(sptemp == M3READFC)
{
init_para_frcd(1);
summ = 0;
sdstrm(MODE3NI,(unsigned char *)&nrm.rksp,1,0);
sdstrm(MODE3NI,(unsigned char *)&max.rksp,0,0);
sdstrm(MODE3NI,(unsigned char *)&min.rksp,0,1);
break;
} */
//
/* else if(sptemp == M3SPEED)
{
summ = 0;
sdstrm(2,(unsigned char *)&mnt.arg1,0,0);
break;
}
//
else if(sptemp == M3INCR)
{
ii++;
pinc(1,0);
break;
}
//
else if(sptemp == M3DECR)
{
ii++;
pinc(0,0);
break;
}
//
else if(sptemp == M3FINCR)
{
ii++;
pinc(1,1);
break;
}
//
else if(sptemp == M3FDECR)
{
ii++;
pinc(0,1);
break;
}
//
else if(sptemp == M3STORE)
{
tempp = write_eeprom(&enrm.rksp,&nrm.rksp,MODE3N);
sdstrm(0,&tempp,0,0);
break;
}
//
else break;
//
//
case MODE4: //send fb_rot,fb_exe and fb_egr to pc,which draw according line
sptemp = tempp & 0x0f;
if(sptemp == M4READ)
{
summ = 0;
sdstrm(1,(unsigned char *)&mnt.arg1,0,0);
sdstrm(1,(unsigned char *)&mnt.arg4,0,0);
sdstrm(1,(unsigned char *)&mnt.arg15,0,0);
break;
} */
/* else if(sptemp == M4SHAKE)
{
tempp++;
summ = 0;
sdstrm(0,&tempp,0,0);
break;
} */
/*else break;
//
//
case MODE5:
sptemp = tempp & 0x0f;
if(sptemp == M5READ)
{
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&nrm.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&nrm.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&nrm.egrkp,1,1);
//
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&max.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&max.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&max.egrkp,1,1);
//
summ = 0;
sdstrm(MODE5N1,(unsigned char *)&min.rksp,1,1);
summ = 0;
sdstrm(MODE5N2,(unsigned char *)&min.rksp1,1,1);
summ = 0;
sdstrm(MODE5N3,(unsigned char *)&min.egrkp,1,1);
//
break;
}
//
else if(sptemp == M5INCR)
{
ii++;
pinc(1,0);
break;
}
//
else if(sptemp == M5DECR)
{
ii++;
pinc(0,0);
break;
}
//
else break;
//
//
case MODE7:
{
sptemp = tempp & 0x0f;
if(sptemp == M7READ)
{
summ = 0;
sdstrm(MODE7N,(unsigned char *)&oil.lmt1,1,1);
break;
} */
//
/* else if(sptemp == M7READFC)
{
init_para_frcd(2);
summ = 0;
sdstrm(MODE7N,(unsigned char *)&oil.lmt1,1,1);
break;
}*/
//
/*else if(sptemp == M7SPEED)
{
summ = 0;
sdstrm(2,(unsigned char *)&mnt.arg1,0,0);
break;
}
//
else if(sptemp == M7INCR)
{
ii++;
pinc(1,0);
break;
}
//
else if(sptemp == M7DECR)
{
ii++;
pinc(0,0);
break;
}
//
else if(sptemp == M7FINCR)
{
ii++;
pinc(1,1);
break;
}
//
else if(sptemp == M7FDECR)
{
ii++;
pinc(0,1);
break;
}
//
else if(sptemp == M7STORE)
{
tempp = write_eeprom(&eoil.lmt1,&oil.lmt1,MODE7N);
sdstrm(0,&tempp,0,0);
break;
}
else break;
}
case MODE8:
{
sptemp = tempp & 0x0f;
if(sptemp == M8READ)
{
summ = 0;
sdstrm(MODE8N,(unsigned char *)rotation,1,1);
break;
} */
//
/* else if(sptemp == M7READFC)
{
init_para_frcd(2);
summ = 0;
sdstrm(MODE7N,(unsigned char *)&oil.lmt1,1,1);
break;
}*/
//
/* else if(sptemp == M8SPEED)
{
summ = 0;
sdstrm(2,(unsigned char *)&mnt.arg1,0,0);
break;
}
//
else if(sptemp == M8INCR)
{
ii++;
pinc(1,0);
break;
}
//
else if(sptemp == M8DECR)
{
ii++;
pinc(0,0);
break;
}
//
else if(sptemp == M8FINCR)
{
ii++;
pinc(1,1);
break;
}
//
else if(sptemp == M8FDECR)
{
ii++;
pinc(0,1);
break;
}
//
else if(sptemp == M8STORE)
{
//DisableInterrupts; //开中断
tempp = write_eeprom(erotation,rotation,MODE8N);
//&& write_eeprom(eegr[0],egr[0],100);
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -