美文网首页
运动控制器9:脱机输出和限位输入

运动控制器9:脱机输出和限位输入

作者: 吴松乾 | 来源:发表于2017-12-28 11:46 被阅读0次

    脱机输出

    脱机输出的函数如下:

    void MotorsEnable(char motors){

    if(motors & (1 << 0))  MOTOR1_ENABLE;

    else     MOTOR1_DISABLE;

    …… _delay_us(5);}

    在下面两个地方有调用此函数:GC_EXECUTE_LINE

    if (gc.program_flow == PROGRAM_FLOW_COMPLETED_STOP)

    { mc_reset(); MotorsEnable(0);}

    和st_wake_up函数中,此函数中直接调用 MotorsEnable(0x07);

    需要脱机的时候,主要是遇到M2指令时,M30是复位并回到开头,详见G指令的详细介绍。

    http://note.youdao.com/noteshare?id=b9b8f85094fa22f3eeb6f2a15bc6cc23

        if (gc.program_flow == PROGRAM_FLOW_COMPLETED) { mc_reset(); }

        if (gc.program_flow == PROGRAM_FLOW_COMPLETED_STOP) { mc_reset(); MotorsEnable(0);}

    关于限位

    输入一共32位,分为4组

    #define LIMIT_PIN      InputRead(3); //第4组输入,一共4组32位输入

    #define X_LIMIT_BIT    6 

    #define Y_LIMIT_BIT    7 

    #define Z_LIMIT_BIT    4

    现在输入主要在homing_cycle,在调用时,判断

    if (limit_state & (1<<Z_LIMIT_BIT)) { out_bits ^= (1<<Z_STEP_BIT); }

    输出OutputControl((STEPPING_PORT & ~STEP_MASK) | (out_bits & STEP_MASK));

    从这里可以看出,限位开关仅仅在回零点的时候才会使用。

    相关文章

      网友评论

          本文标题:运动控制器9:脱机输出和限位输入

          本文链接:https://www.haomeiwen.com/subject/teimgxtx.html