Merge pull request #479 from MStohn/thermocouple

BUGFIXES for temperature.cpp / add RUMBA thermocouple support
This commit is contained in:
ErikZalm 2013-05-16 10:06:59 -07:00
commit 86405cdd11
2 changed files with 58 additions and 13 deletions

View file

@ -1053,17 +1053,56 @@
#define PS_ON_PIN 45 #define PS_ON_PIN 45
#define KILL_PIN 46 #define KILL_PIN 46
#define HEATER_0_PIN 2 // EXTRUDER 1 #if (TEMP_SENSOR_0==0)
#define HEATER_1_PIN 3 // EXTRUDER 2 #define TEMP_0_PIN -1
#define HEATER_2_PIN 6 // EXTRUDER 3 #define HEATER_0_PIN -1
//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4 #else
#define HEATER_BED_PIN 9 // BED #define HEATER_0_PIN 2 // EXTRUDER 1
#if (TEMP_SENSOR_0==-1)
#define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used
#else
#define TEMP_0_PIN 15 // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used
#endif
#endif
#define TEMP_0_PIN 15 // ANALOG NUMBERING #if (TEMP_SENSOR_1==0)
#define TEMP_1_PIN 14 // ANALOG NUMBERING #define TEMP_1_PIN -1
#define TEMP_2_PIN 13 // ANALOG NUMBERING #define HEATER_1_PIN -1
//optional for extruder 4 or chamber: #define TEMP_2_PIN 12 // ANALOG NUMBERING #else
#define TEMP_BED_PIN 11 // ANALOG NUMBERING #define HEATER_1_PIN 3 // EXTRUDER 2
#if (TEMP_SENSOR_1==-1)
#define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used
#else
#define TEMP_1_PIN 14 // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used
#endif
#endif
#if (TEMP_SENSOR_2==0)
#define TEMP_2_PIN -1
#define HEATER_2_PIN -1
#else
#define HEATER_2_PIN 6 // EXTRUDER 3
#if (TEMP_SENSOR_2==-1)
#define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple
#else
#define TEMP_2_PIN 13 // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used
#endif
#endif
//optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used
//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4
#if (TEMP_SENSOR_BED==0)
#define TEMP_BED_PIN -1
#define HEATER_BED_PIN -1
#else
#define HEATER_BED_PIN 9 // BED
#if (TEMP_SENSOR_BED==-1)
#define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple
#else
#define TEMP_BED_PIN 11 // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used
#endif
#endif
#define SDPOWER -1 #define SDPOWER -1
#define SDSS 53 #define SDSS 53

View file

@ -571,6 +571,12 @@ static void updateTemperaturesFromRawValues()
void tp_init() void tp_init()
{ {
#if (MOTHERBOARD == 80) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
//disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector
MCUCR=(1<<JTD);
MCUCR=(1<<JTD);
#endif
// Finish init of mult extruder arrays // Finish init of mult extruder arrays
for(int e = 0; e < EXTRUDERS; e++) { for(int e = 0; e < EXTRUDERS; e++) {
// populate with the first value // populate with the first value
@ -647,7 +653,7 @@ void tp_init()
#if TEMP_2_PIN < 8 #if TEMP_2_PIN < 8
DIDR0 |= 1 << TEMP_2_PIN; DIDR0 |= 1 << TEMP_2_PIN;
#else #else
DIDR2 = 1<<(TEMP_2_PIN - 8); DIDR2 |= 1<<(TEMP_2_PIN - 8);
#endif #endif
#endif #endif
#if (TEMP_BED_PIN > -1) #if (TEMP_BED_PIN > -1)
@ -689,7 +695,7 @@ void tp_init()
#if (EXTRUDERS > 1) && defined(HEATER_1_MINTEMP) #if (EXTRUDERS > 1) && defined(HEATER_1_MINTEMP)
minttemp[1] = HEATER_1_MINTEMP; minttemp[1] = HEATER_1_MINTEMP;
while(analog2temp(minttemp_raw[1], 1) > HEATER_1_MINTEMP) { while(analog2temp(minttemp_raw[1], 1) < HEATER_1_MINTEMP) {
#if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP #if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP
minttemp_raw[1] += OVERSAMPLENR; minttemp_raw[1] += OVERSAMPLENR;
#else #else
@ -710,7 +716,7 @@ void tp_init()
#if (EXTRUDERS > 2) && defined(HEATER_2_MINTEMP) #if (EXTRUDERS > 2) && defined(HEATER_2_MINTEMP)
minttemp[2] = HEATER_2_MINTEMP; minttemp[2] = HEATER_2_MINTEMP;
while(analog2temp(minttemp_raw[2], 2) > HEATER_2_MINTEMP) { while(analog2temp(minttemp_raw[2], 2) < HEATER_2_MINTEMP) {
#if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP #if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP
minttemp_raw[2] += OVERSAMPLENR; minttemp_raw[2] += OVERSAMPLENR;
#else #else