Skip to content

Commit

Permalink
Add support for inverted heater control pins
Browse files Browse the repository at this point in the history
  • Loading branch information
bobc committed Dec 8, 2013
1 parent 7febe31 commit bd13118
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 26 deletions.
6 changes: 3 additions & 3 deletions src/ArduinoDUE/Repetier/Commands.cpp
Expand Up @@ -1328,13 +1328,13 @@ void Commands::emergencyStop()
for(uint8_t i=0; i<NUM_EXTRUDER+3; i++)
pwm_pos[i] = 0;
#if EXT0_HEATER_PIN>-1
WRITE(EXT0_HEATER_PIN,0);
HEATER_OFF(EXT0_HEATER_PIN);
#endif
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN>-1 && NUM_EXTRUDER>1
WRITE(EXT1_HEATER_PIN,0);
HEATER_OFF(EXT1_HEATER_PIN);
#endif
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN>-1 && NUM_EXTRUDER>2
WRITE(EXT2_HEATER_PIN,0);
HEATER_OFF(EXT2_HEATER_PIN);
#endif
#if FAN_PIN>-1
WRITE(FAN_PIN,0);
Expand Down
28 changes: 14 additions & 14 deletions src/ArduinoDUE/Repetier/HAL.cpp
Expand Up @@ -623,37 +623,37 @@ void PWM_TIMER_VECTOR ()
if(pwm_count==0)
{
#if EXT0_HEATER_PIN>-1
if((pwm_pos_set[0] = pwm_pos[0])>0) WRITE(EXT0_HEATER_PIN,1);
if((pwm_pos_set[0] = pwm_pos[0])>0) HEATER_ON(EXT0_HEATER_PIN);
#if EXT0_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[0] = extruder[0].coolerPWM)>0) WRITE(EXT0_EXTRUDER_COOLER_PIN,1);
#endif
#endif
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN>-1 && NUM_EXTRUDER>1
if((pwm_pos_set[1] = pwm_pos[1])>0) WRITE(EXT1_HEATER_PIN,1);
if((pwm_pos_set[1] = pwm_pos[1])>0) HEATER_ON(EXT1_HEATER_PIN);
#if EXT1_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[1] = extruder[1].coolerPWM)>0) WRITE(EXT1_EXTRUDER_COOLER_PIN,1);
#endif
#endif
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN>-1 && NUM_EXTRUDER>2
if((pwm_pos_set[2] = pwm_pos[2])>0) WRITE(EXT2_HEATER_PIN,1);
if((pwm_pos_set[2] = pwm_pos[2])>0) HEATER_ON(EXT2_HEATER_PIN);
#if EXT2_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[2] = extruder[2].coolerPWM)>0) WRITE(EXT2_EXTRUDER_COOLER_PIN,1);
#endif
#endif
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN>-1 && NUM_EXTRUDER>3
if((pwm_pos_set[3] = pwm_pos[3])>0) WRITE(EXT3_HEATER_PIN,1);
if((pwm_pos_set[3] = pwm_pos[3])>0) HEATER_ON(EXT3_HEATER_PIN);
#if EXT3_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[3] = extruder[3].coolerPWM)>0) WRITE(EXT3_EXTRUDER_COOLER_PIN,1);
#endif
#endif
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN>-1 && NUM_EXTRUDER>4
if((pwm_pos_set[4] = pwm_pos[4])>0) WRITE(EXT4_HEATER_PIN,1);
if((pwm_pos_set[4] = pwm_pos[4])>0) HEATER_ON(EXT4_HEATER_PIN);
#if EXT4_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[4] = pwm_pos[4].coolerPWM)>0) WRITE(EXT4_EXTRUDER_COOLER_PIN,1);
#endif
#endif
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN>-1 && NUM_EXTRUDER>5
if((pwm_pos_set[5] = pwm_pos[5])>0) WRITE(EXT5_HEATER_PIN,1);
if((pwm_pos_set[5] = pwm_pos[5])>0) HEATER_ON(EXT5_HEATER_PIN);
#if EXT5_EXTRUDER_COOLER_PIN>-1
if((pwm_cooler_pos_set[5] = extruder[5].coolerPWM)>0) WRITE(EXT5_EXTRUDER_COOLER_PIN,1);
#endif
Expand All @@ -665,41 +665,41 @@ void PWM_TIMER_VECTOR ()
if((pwm_pos_set[NUM_EXTRUDER+2] = pwm_pos[NUM_EXTRUDER+2])>0) WRITE(FAN_PIN,1);
#endif
#if HEATED_BED_HEATER_PIN>-1 && HAVE_HEATED_BED
if((pwm_pos_set[NUM_EXTRUDER] = pwm_pos[NUM_EXTRUDER])>0) WRITE(HEATED_BED_HEATER_PIN,1);
if((pwm_pos_set[NUM_EXTRUDER] = pwm_pos[NUM_EXTRUDER])>0) HEATER_ON(HEATED_BED_HEATER_PIN);
#endif
}
#if EXT0_HEATER_PIN>-1
if(pwm_pos_set[0] == pwm_count && pwm_pos_set[0]!=255) WRITE(EXT0_HEATER_PIN,0);
if(pwm_pos_set[0] == pwm_count && pwm_pos_set[0]!=255) HEATER_OFF(EXT0_HEATER_PIN);
#if EXT0_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[0] == pwm_count && pwm_cooler_pos_set[0]!=255) WRITE(EXT0_EXTRUDER_COOLER_PIN,0);
#endif
#endif
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN>-1 && NUM_EXTRUDER>1
if(pwm_pos_set[1] == pwm_count && pwm_pos_set[1]!=255) WRITE(EXT1_HEATER_PIN,0);
if(pwm_pos_set[1] == pwm_count && pwm_pos_set[1]!=255) HEATER_OFF(EXT1_HEATER_PIN);
#if EXT1_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[1] == pwm_count && pwm_cooler_pos_set[1]!=255) WRITE(EXT1_EXTRUDER_COOLER_PIN,0);
#endif
#endif
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN>-1 && NUM_EXTRUDER>2
if(pwm_pos_set[2] == pwm_count && pwm_pos_set[2]!=255) WRITE(EXT2_HEATER_PIN,0);
if(pwm_pos_set[2] == pwm_count && pwm_pos_set[2]!=255) HEATER_OFF(EXT2_HEATER_PIN);
#if EXT2_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[2] == pwm_count && pwm_cooler_pos_set[2]!=255) WRITE(EXT2_EXTRUDER_COOLER_PIN,0);
#endif
#endif
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN>-1 && NUM_EXTRUDER>3
if(pwm_pos_set[3] == pwm_count && pwm_pos_set[3]!=255) WRITE(EXT3_HEATER_PIN,0);
if(pwm_pos_set[3] == pwm_count && pwm_pos_set[3]!=255) HEATER_OFF(EXT3_HEATER_PIN);
#if EXT3_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[3] == pwm_count && pwm_cooler_pos_set[3]!=255) WRITE(EXT3_EXTRUDER_COOLER_PIN,0);
#endif
#endif
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN>-1 && NUM_EXTRUDER>4
if(pwm_pos_set[4] == pwm_count && pwm_pos_set[4]!=255) WRITE(EXT4_HEATER_PIN,0);
if(pwm_pos_set[4] == pwm_count && pwm_pos_set[4]!=255) HEATER_OFF(EXT4_HEATER_PIN);
#if EXT4_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[4] == pwm_count && pwm_cooler_pos_set[4]!=255) WRITE(EXT4_EXTRUDER_COOLER_PIN,0);
#endif
#endif
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN>-1 && NUM_EXTRUDER>5
if(pwm_pos_set[5] == pwm_count && pwm_pos_set[5]!=255) WRITE(EXT5_HEATER_PIN,0);
if(pwm_pos_set[5] == pwm_count && pwm_pos_set[5]!=255) HEATER_OFF(EXT5_HEATER_PIN);
#if EXT5_EXTRUDER_COOLER_PIN>-1
if(pwm_cooler_pos_set[5] == pwm_count && pwm_cooler_pos_set[5]!=255) WRITE(EXT5_EXTRUDER_COOLER_PIN,0);
#endif
Expand All @@ -711,7 +711,7 @@ void PWM_TIMER_VECTOR ()
if(pwm_pos_set[NUM_EXTRUDER+2] == pwm_count && pwm_pos_set[NUM_EXTRUDER+2]!=255) WRITE(FAN_PIN,0);
#endif
#if HEATED_BED_HEATER_PIN>-1 && HAVE_HEATED_BED
if(pwm_pos_set[NUM_EXTRUDER] == pwm_count && pwm_pos_set[NUM_EXTRUDER]!=255) WRITE(HEATED_BED_HEATER_PIN,0);
if(pwm_pos_set[NUM_EXTRUDER] == pwm_count && pwm_pos_set[NUM_EXTRUDER]!=255) HEATER_OFF(HEATED_BED_HEATER_PIN);
#endif
HAL::allowInterrupts();
counter_periodical++; // Appxoimate a 100ms timer
Expand Down
8 changes: 8 additions & 0 deletions src/ArduinoDUE/Repetier/HAL.h
Expand Up @@ -148,6 +148,14 @@ typedef char prog_char;
#define LOW 0
#define HIGH 1

#ifdef HEATER_PINS_INVERTED
#define HEATER_ON(pin) WRITE(pin,0)
#define HEATER_OFF(pin) WRITE(pin,1)
#else
#define HEATER_ON(pin) WRITE(pin,1)
#define HEATER_OFF(pin) WRITE(pin,0)
#endif

#define BEGIN_INTERRUPT_PROTECTED noInterrupts();
#define END_INTERRUPT_PROTECTED interrupts();
#define ESCAPE_INTERRUPT_PROTECTED interrupts();
Expand Down
12 changes: 6 additions & 6 deletions src/ArduinoDUE/Repetier/Printer.cpp
Expand Up @@ -622,27 +622,27 @@ void Printer::setup()
#endif
#if EXT0_HEATER_PIN>-1
SET_OUTPUT(EXT0_HEATER_PIN);
WRITE(EXT0_HEATER_PIN,LOW);
HEATER_OFF(EXT0_HEATER_PIN);
#endif
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN>-1 && NUM_EXTRUDER>1
SET_OUTPUT(EXT1_HEATER_PIN);
WRITE(EXT1_HEATER_PIN,LOW);
HEATER_OFF(EXT1_HEATER_PIN);
#endif
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN>-1 && NUM_EXTRUDER>2
SET_OUTPUT(EXT2_HEATER_PIN);
WRITE(EXT2_HEATER_PIN,LOW);
HEATER_OFF(EXT2_HEATER_PIN);
#endif
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN>-1 && NUM_EXTRUDER>3
SET_OUTPUT(EXT3_HEATER_PIN);
WRITE(EXT3_HEATER_PIN,LOW);
HEATER_OFF(EXT3_HEATER_PIN);
#endif
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN>-1 && NUM_EXTRUDER>4
SET_OUTPUT(EXT4_HEATER_PIN);
WRITE(EXT4_HEATER_PIN,LOW);
HEATER_OFF(EXT4_HEATER_PIN);
#endif
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN>-1 && NUM_EXTRUDER>5
SET_OUTPUT(EXT5_HEATER_PIN);
WRITE(EXT5_HEATER_PIN,LOW);
HEATER_OFF(EXT5_HEATER_PIN);
#endif
#if EXT0_EXTRUDER_COOLER_PIN>-1
SET_OUTPUT(EXT0_EXTRUDER_COOLER_PIN);
Expand Down
3 changes: 3 additions & 0 deletions src/ArduinoDUE/Repetier/pins.h
Expand Up @@ -194,6 +194,9 @@ STEPPER_CURRENT_CONTROL

#define KNOWN_BOARD
#define CPU_ARCH ARCH_ARM

#define HEATER_PINS_INVERTED

/*****************************************************************
* Arduino Due Pin Assignments
******************************************************************/
Expand Down
6 changes: 3 additions & 3 deletions src/ArduinoDUE/Repetier/ui.cpp
Expand Up @@ -2388,13 +2388,13 @@ void UIDisplay::executeAction(int action)
Extruder::manageTemperatures();
pwm_pos[0] = pwm_pos[1] = pwm_pos[2] = pwm_pos[3]=0;
#if EXT0_HEATER_PIN>-1
WRITE(EXT0_HEATER_PIN,0);
HEATER_OFF(EXT0_HEATER_PIN);
#endif
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN>-1 && NUM_EXTRUDER>1
WRITE(EXT1_HEATER_PIN,0);
HEATER_OFF(EXT1_HEATER_PIN);
#endif
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN>-1 && NUM_EXTRUDER>2
WRITE(EXT2_HEATER_PIN,0);
HEATER_OFF(EXT2_HEATER_PIN);
#endif
#if FAN_PIN>-1
WRITE(FAN_PIN,0);
Expand Down

0 comments on commit bd13118

Please sign in to comment.