Пример #1
0
void stepper_next_half_step_cw(STEPPER* INPUT_STEPPER_STRUCT)
{
    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) += 1;

    if(STEPPER_VALUE_OF_NEXT_STEP(INPUT_STEPPER_STRUCT) == 8)
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = (STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) & (1<<7));
}
Пример #2
0
void stepper_next_full_step_high_torque_cw(STEPPER* INPUT_STEPPER_STRUCT)
{
    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) += 2;

    if(STEPPER_VALUE_OF_NEXT_STEP(INPUT_STEPPER_STRUCT) == 8)
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) &= (1<<7);
}
Пример #3
0
void stepper_next_half_step_ccw(STEPPER* INPUT_STEPPER_STRUCT)
{
    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) -=1;

    if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0xFF)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<2)|(1<<1)|(1<<0));
    }
    else if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0x7F) //unipolar
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<7)|(1<<2)|(1<<1)|(1<<0));
    }
}
Пример #4
0
void stepper_next_full_step_high_torque_ccw(STEPPER* INPUT_STEPPER_STRUCT)
{
    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) -= 2;

    if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0xFE)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<2)|(1<<1));
    }
    else if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0x7E)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<7)|(1<<2)|(1<<1));
    }
}
Пример #5
0
void stepper_next_full_step_low_torque_cw(STEPPER* INPUT_STEPPER_STRUCT)
{
    if(STEPPER_VALUE_OF_NEXT_STEP(INPUT_STEPPER_STRUCT) == 0)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = (STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) & (1<<7))|(1<<0);
        //stepper_step(INPUT_STEPPER_STRUCT);
        //delay
    }

    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) += 2;

    if(STEPPER_VALUE_OF_NEXT_STEP(INPUT_STEPPER_STRUCT) == 9)
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = (STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) & (1<<7))|(1<<0);
}
Пример #6
0
void stepper_next_full_step_low_torque_ccw(STEPPER* INPUT_STEPPER_STRUCT)
{
    if(STEPPER_VALUE_OF_NEXT_STEP(INPUT_STEPPER_STRUCT) == 0)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = (STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) & ((1<<2)|(1<<1)|(1<<0)));
        //stepper_step(INPUT_STEPPER_STRUCT);
        //delay
    }

    stepper_step(INPUT_STEPPER_STRUCT);
    STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) -= 2;

    if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0xFF)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<2)|(1<<1)|(1<<0));
    }
    else if(STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) == 0x7F)
    {
        STEPPER_VALUE_OF_FLAG(INPUT_STEPPER_STRUCT) = ((1<<7)|(1<<2)|(1<<1)|(1<<0));
    }
}
Пример #7
0
int main(void) {

    pin_config_out(g_led);
    pin_config_out(r_led);
    pin_config_out(e_heat);
    pin_config_out(b_heat);
    pin_config_out(buzzer);
    pin_low(buzzer);


    Stepper *stepper_x = stepper_init(x_step,x_dir,motor_enb);
    Stepper *stepper_y = stepper_init(y_step,y_dir,motor_enb);
    Stepper *stepper_z = stepper_init(z_step,z_dir,motor_enb);
//	stepper_start_frame();

    Uart *uart = uart_init();
    console_init();
    thermistor_init();
//	console_prompt();

    pin_config_in(x_stop);

    pin_high(r_led);

    char dir = 1;
    int count = 0;
    unsigned int hit = 0;

    while(1) {

//		dir = pin_get(EXP2);
        stepper_dir(stepper_x,dir);
        stepper_dir(stepper_y,dir);
        stepper_dir(stepper_z,dir);

        if(dir == 1) {
            if(pin_get(x_stop)==0 ) {
                if(hit < 2) {
                    stepper_step(stepper_x);
                    stepper_step(stepper_y);
                    stepper_step(stepper_z);
                    count++;
                }
            } else {
                hit++;
                if(hit < 2) {
                    printf("%i\n",count);
                    printf("HIT!\n");
                    dir = 0;
                    hit = 0;
                }
            }

        }


        if(dir == 0) {
            stepper_step(stepper_x);
            stepper_step(stepper_y);
            stepper_step(stepper_z);
            count--;
            if(count == 0) {
                dir = 1;
            }
        }








        _delay_us(50);

        /*
        			count++;
        			if(count == 1000){
        				pin_toggle(g_led);
        				count = 0;
        			//	pin_toggle(stepper_x->direction);
        			//	pin_toggle(stepper_y->direction);
        			//	pin_toggle(stepper_z->direction);
        			}
        */

    }


}