// ------------------------------------------------------- // This is the one function called by the timer interrupt. // It calls a few other functions, though. // ------------------------------------------------------- /// Take a step or go to the next move. void queue_step() { // do our next step DDA* current_movebuffer = &movebuffer[mb_tail]; if (current_movebuffer->live) { if (current_movebuffer->waitfor_temp) { setTimer(HEATER_WAIT_TIMEOUT); if (temp_achieved()) { current_movebuffer->live = current_movebuffer->waitfor_temp = 0; serial_writestr_P(PSTR("Temp achieved\n")); } #if STEP_INTERRUPT_INTERRUPTIBLE sei(); #endif } else { // NOTE: dda_step makes this interrupt interruptible after steps have been sent but before new speed is calculated. dda_step(current_movebuffer); } } // fall directly into dda_start instead of waiting for another step // the dda dies not directly after its last step, but when the timer fires and there's no steps to do if (current_movebuffer->live == 0) next_move(); }
// ------------------------------------------------------- // This is the one function called by the timer interrupt. // It calls a few other functions, though. // ------------------------------------------------------- void queue_step() { // do our next step if (movebuffer[mb_tail].live) { if (movebuffer[mb_tail].waitfor_temp) { if (temp_achieved(EXTRUDER_0)) { movebuffer[mb_tail].live = movebuffer[mb_tail].waitfor_temp = 0; serial_writestr("Temp achieved\r\n"); } } else { // NOTE: dda_step makes this interrupt interruptible after steps have been sent but before new speed is calculated. dda_step(&(movebuffer[mb_tail])); } } // fall directly into dda_start instead of waiting for another step // the dda dies not directly after its last step, but when the timer fires and there's no steps to do if (movebuffer[mb_tail].live == 0) next_move(); }
// ------------------------------------------------------- // This is the one function called by the timer interrupt. // It calls a few other functions, though. // ------------------------------------------------------- /// Take a step or go to the next move. void queue_step() { // do our next step DDA* current_movebuffer = &movebuffer[mb_tail]; if (current_movebuffer->live) { // NOTE: dda_step makes this interrupt interruptible after steps have been sent but before new speed is calculated. dda_step(current_movebuffer); } // fall directly into dda_start instead of waiting for another step // the dda dies not directly after its last step, but when the timer fires and there's no steps to do if (current_movebuffer->live == 0) next_move(); }
void queue_step(){ DDA *current_movebuffer = &movebuffer[mb_tail]; if(current_movebuffer->live){ if(current_movebuffer->waitfor_temp){ setTimer(HEATER_WAIT_TIMEOUT); if(temp_achieved()){ current_movebuffer->live = current_movebuffer->waitfor_temp = 0; serial_writestr_P(PSTR("Temp achieved\n")); }//end if temp achieved }//endif waitfortemp else{ dda_step(current_movebuffer); } }//end if current_movebuffer->live if(current_movebuffer->live == 0) next_move(); }//queue_step()
// ------------------------------------------------------- // This is the one function called by the timer interrupt. // It calls a few other functions, though. // ------------------------------------------------------- /// Take a step or go to the next move. void queue_step() { // do our next step DDA* current_movebuffer = &movebuffer[mb_tail]; if (current_movebuffer->live) { if (current_movebuffer->waitfor_temp) { setTimer(HEATER_WAIT_TIMEOUT); if (temp_achieved()) { current_movebuffer->live = current_movebuffer->waitfor_temp = 0; serial_writestr_P(PSTR("Temp achieved\n")); } } else { // NOTE: dda_step makes this interrupt interruptible for some time, // see STEP_INTERRUPT_INTERRUPTIBLE. dda_step(current_movebuffer); } } // Start the next move if this one is done. if (current_movebuffer->live == 0) next_move(); }
// ------------------------------------------------------- // This is the one function called by the timer interrupt. // It calls a few other functions, though. // ------------------------------------------------------- /// Take a step or go to the next move. void queue_step() { // do our next step DDA* current_movebuffer = &movebuffer[mb_tail]; if (current_movebuffer->live) { if (current_movebuffer->waitfor_temp) { setTimer(HEATER_WAIT_TIMEOUT); if (temp_achieved()) { current_movebuffer->live = current_movebuffer->waitfor_temp = 0; printf("Temp achieved\n"); } } else { // NOTE: dda_step makes this interrupt interruptible for some time, // see STEP_INTERRUPT_INTERRUPTIBLE. dda_step(current_movebuffer); } } // fall directly into dda_start instead of waiting for another step // the dda dies not directly after its last step, but when the timer fires and there's no steps to do if (current_movebuffer->live == 0) next_move(); }