编程心得

1、每次使用完标志变量,记得要将其还原:-------即清0--------

			if(uiCountSP >= uiSwingCount && ucStateSP == SET_WISE)		//防止正转时达到计数最大值	(手动模式)
			{
				mes_SP = 0x4C;					//+++++设置标志位,水平电机停止,等待轮询
				//Prog_ChangeSP(SET_STOP);
				ucStateSP = SET_STOP;			//+++++记得要设置电机转动方向标志位为停止状态!!!
			}	

2、记得74HC573的CS1选通位,记得每次要修改输出时要先置位再清零!

/*******************************************************
					竖直电机处理程序
*******************************************************/
void Prog_ChangeSZ(unsigned int SZMsg)
{
	CS1 = 0;
	if(SZMsg == SET_STOP)			//判断是否要求竖直电机采取停止措施
	{
		YRA = 1;
		YRB = 1;
		ucStateSZ = SET_STOP;
	}
	else if(SZMsg == SET_WISE)		//判断是否要求竖直电机采取顺时针旋转措施,同时竖直电机是否不在终点位置
	{
		if(ucStateSZ == SET_ANTI)
		{
			YRA = 1;
			YRB = 1;
		        CS1 = 1;                //**********&&&&&&&&&&&……………………在这里
		        NOP2();
		        CS1 = 0;
			MSDelay(100);
		}
		YRA = 0;
		YRB = 1;
		ucStateSZ = SET_WISE;
	}
	else if(SZMsg == SET_ANTI)		//判断是否要求竖直电机采取逆时针旋转措施,同时竖直电机是否不在零点位置
	{
		if(ucStateSZ == SET_WISE)
		{
			YRA = 1;
			YRB = 1;
			CS1 = 1;
			NOP2();
			CS1 = 0;
			MSDelay(100);
		}
		YRA = 1;
		YRB = 0;
		ucStateSZ = SET_ANTI;
	}
	CS1 = 1;
	NOP2();
	CS1 = 0;
}





你可能感兴趣的:(编程)