消防炮日志


九月26号

1、修改类型

int uiSwingCount = 0;				//定义自摆角度的计数,SCALE_SP*ucAngle   /////原来为unsigned int@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@



2、注释错误标志

	if(uiCountSP==0&&Hall_SPZJ == H_ON)			//判断计数为0时,不在水平中间点
	{
//先注释    Err[0] = 1;
	    HuoerSPZJ = 0;//++++++水平中间霍尔没找到,或已坏++++++++
        }


九月27号

1、记得要清除错误标志

	if(Err[1]==1)			//判断当前是在水平零点位置且逆转
	{
		Prog_ChangeSP(SET_STOP);//指令要求水平电机停止			
		Err[1] = 0;			//清标志位
		num--;				//清错误计数值!!!!!!!!!!!!!!!!!!!!!!!
	}

2、超出计数值

//有个问题:只能发送一次转反转指令,碰到这句话,就不行了,因为现在就是超计数值了
//			if(uiCountSP > uiSwingCount || uiCountSP < (0-uiSwingCount))//转动脉冲数已经到达自摆设定角度计数的极限
//			{
//				mes_SP = 0x4C;					//+++++设置标志位,水平电机停止,等待轮询
				//Prog_ChangeSP(SET_STOP);
				/*	CS1 = 0;
					XRA = 1;
					XRB = 1;
					CS1 = 1;
					NOP2();
					CS1 = 0;
				*/
//			}	


九月28号

1、测试有没有可能,第二次不能再转的可能(待解决)

		if(Hall_SPLD == H_OFF && ucStateSP == SET_ANTI)		//判断当前是在水平零点位置且逆转
		{
			Err[1]=1;		//??????????????????????????测试有没有可能,第二次不能再转的可能???????????????????????????
		}

2、超出计数值(已解决)

//有个问题:只能发送一次正反转指令,碰到这句话,就不行了,因为现在就是超计数值了
			if(uiCountSP >= uiSwingCount && ucStateSP == SET_WISE)		//防止正转时达到计数最大值	(手动模式)
			{
				mes_SP = 0x4C;					//+++++设置标志位,水平电机停止,等待轮询
				//Prog_ChangeSP(SET_STOP);
				ucStateSP = SET_STOP;			//记得要设置电机转动方向标志位为停止状态!!!
			}

九月29号

1、复位模式不进行脉冲计数

if(bPreSFZYA != SFZYA && bRestMotor == 0b0)			//判断当前SFZYA的状态值是否为上升沿。++++++同时不是复位模式。

十月9号

1、判断水平电机是否停止的脉冲计数//复位模式下使用

if(bPreSFZYA != SFZYA)			//判断当前SFZYA的状态值是否为上升沿。++++++同时不是复位模式????????????
{
bPreSFZYA = SFZYA;	
Count_num++;									//判断水平电机是否停止的脉冲计数//复位模式下使用

十月10号

1、一定不要忘了清标志位---------------------回到第一步,等待第二次复位step_one = 0;   

		else
		{
			if(Hall_SPLD == H_OFF)						//找到第一个零点,即左零点
			{
				Prog_ChangeSP(SET_STOP);
				step_one = 0;							//回到第一步,等待第二次复位
				bRestMotor = 0b0;						//清复位标志,应该再加上竖直霍尔?????????????????????
			}
		}

2、开始循环计数前先清0啊:num_while = 0;

			case 0xE7:									//指令要求复位
				{
					bAutoSwing = 0b0;					//自动模式标识,0b0为手动模式,0b1为自动模式即自摆模式
					bRestMotor = 0b1;					//设置电机复位标识为1,表示开始复位
					//Prog_ChangeSZ(SET_ANTI);			//启动竖直电机逆时针转动
					Prog_ChangeSP(SET_ANTI);			//水平电机逆时针转动
					step_one = 0;						//++++++++++++++++++++++++复位第一阶段
					num_while = 0;						//开始循环计数
					break;
				}

十二月17号任务

1、将《无感无刷直流电机之电调设计全攻略.pdf》看看


一月9号

1、修改电机复位不成功造成的影响

    else if(SPMsg == SET_WISE)                          //判断是否要求水平电机采取顺时针旋转措施
    {
        if(right_SPLD == 1 && Cannotfind_SPLD == 0)      //正在右磁铁,禁止右转,   2013.1.9增加 && Cannotfind_SPLD == 0防止电机复位不成功造成的影响
        {
            XRA = 1;
            XRB = 1;
            ucStateSP = SET_STOP;                       //当前水平电机为停止状态   2013.1.5
            SendChar(0x35);//++++++++++++++ 
        }
        else
        {
            XRA = 1;                                    //修改F/R电平时应先将邋ON1置高,即关闭电机+++++++++
            NOP2();
            XRB = 1;
            XRA = 0;
            CountSP_Copy = uiCountSP + 30;              //++++++++记录当前水平电机脉冲计数加10的值
            ucStateSP = SET_WISE;                       //当前水平电机为正转状态2013.1.5
            num_while = 0;                              //循环计数开始
            SendChar(0x36);//++++++++++++++ 
        }
    }

一月17号


1、注释复位时过流报警

    if( (OL_SZ == 1 || OL_SP == 1))  //2013.1.17注释 && bRestMotor == 0b0
    {
        IC4 = 0;//蜂鸣器报警
    }
    else
    {
        IC4 = 1;//取消报警
    }







你可能感兴趣的:(消防炮日志)