Merge pull request #176 from blddk/experimental

Error with DELAY_ENABLE
Thanks to blddk
This commit is contained in:
midopple 2012-05-28 05:30:43 -07:00
commit aab62de29c
3 changed files with 34 additions and 2 deletions

View file

@ -362,6 +362,9 @@ const int dropsegments=5; //everything with less than this number of steps will
//#define CONTROLLERFAN_PIN 23 //Pin used for the fan to cool controller, comment out to disable this function
#define CONTROLLERFAN_SEC 60 //How many seconds, after all motors were disabled, the fan should run
//This is for controlling a fan that will keep the extruder cool.
//#define EXTRUDERFAN_PIN 66 //Pin used to control the fan, comment out to disable this function
#define EXTRUDERFAN_DEC 50 //Hotend temperature from where the fan will be turned on
//-----------------------------------------------------------------------
// DEBUGING

View file

@ -2502,12 +2502,12 @@ void plan_buffer_line(float x, float y, float z, float e, float feed_rate)
enable_y();
delayMicroseconds(DELAY_ENABLE);
}
if(if(block->steps_z != 0))
if(block->steps_z != 0)
{
enable_z();
delayMicroseconds(DELAY_ENABLE);
}
if(if(block->steps_e != 0))
if(block->steps_e != 0)
{
enable_e();
delayMicroseconds(DELAY_ENABLE);

View file

@ -32,6 +32,10 @@
void controllerFan(void);
#endif
#ifdef EXTRUDERFAN_PIN
void extruderFan(void);
#endif
// Manage heater variables. For a thermistor or AD595 thermocouple, raw values refer to the
// reading from the analog pin. For a MAX6675 thermocouple, the raw value is the temperature in 0.25
// degree increments (i.e. 100=25 deg).
@ -734,6 +738,10 @@ void PID_autotune(int PIDAT_test_temp)
controllerFan(); //Check if fan should be turned on to cool stepper drivers down
#endif
#ifdef EXTRUDERFAN_PIN
extruderFan(); //Check if fan should be turned on to cool extruder down
#endif
}
#if defined (HEATER_USES_THERMISTOR) || defined (BED_USES_THERMISTOR)
@ -844,3 +852,24 @@ void controllerFan()
}
#endif
#ifdef EXTRUDERFAN_PIN
unsigned long lastExtruderCheck = 0;
void extruderFan()
{
if ((millis() - lastExtruderCheck) >= 2500) //Not a time critical function, so we only check every 2500ms
{
lastExtruderCheck = millis();
if (analog2temp(current_raw) < EXTRUDERFAN_DEC)
{
WRITE(EXTRUDERFAN_PIN, LOW); //... turn the fan off
}
else
{
WRITE(EXTRUDERFAN_PIN, HIGH); //... turn the fan on
}
}
}
#endif