added suicide pin for a power supply to the arduino that is only active if the arduino is holding high for an output.

This commit is contained in:
Bernhard 2012-01-15 17:06:10 +01:00
parent 3814bbb529
commit cee5f9020a
2 changed files with 35 additions and 4 deletions

View file

@ -161,7 +161,7 @@ static bool fromsd[BUFSIZE];
static int bufindr = 0; static int bufindr = 0;
static int bufindw = 0; static int bufindw = 0;
static int buflen = 0; static int buflen = 0;
static int i = 0; //static int i = 0;
static char serial_char; static char serial_char;
static int serial_count = 0; static int serial_count = 0;
static boolean comment_mode = false; static boolean comment_mode = false;
@ -233,8 +233,30 @@ void setup_photpin()
#endif #endif
#endif #endif
} }
void setup_powerhold()
{
#ifdef SUICIDE_PIN
#if (SUICIDE_PIN> -1)
SET_OUTPUT(SUICIDE_PIN);
WRITE(SUICIDE_PIN, HIGH);
#endif
#endif
}
void suicide()
{
#ifdef SUICIDE_PIN
#if (SUICIDE_PIN> -1)
SET_OUTPUT(SUICIDE_PIN);
WRITE(SUICIDE_PIN, LOW);
#endif
#endif
}
void setup() void setup()
{ {
setup_powerhold();
MSerial.begin(BAUDRATE); MSerial.begin(BAUDRATE);
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(VERSION_STRING); SERIAL_ECHOLNPGM(VERSION_STRING);
@ -912,10 +934,17 @@ FORCE_INLINE void process_commands()
case 80: // M80 - ATX Power On case 80: // M80 - ATX Power On
SET_OUTPUT(PS_ON_PIN); //GND SET_OUTPUT(PS_ON_PIN); //GND
break; break;
#endif
case 81: // M81 - ATX Power Off case 81: // M81 - ATX Power Off
SET_INPUT(PS_ON_PIN); //Floating #if (SUICIDE_PIN >-1)
break; suicide();
#endif #else
#if (PS_ON_PIN > -1)
SET_INPUT(PS_ON_PIN); //Floating
#endif
#endif
case 82: case 82:
axis_relative_modes[3] = false; axis_relative_modes[3] = false;
break; break;
@ -1314,6 +1343,7 @@ void kill()
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("Printer halted. kill() called !!"); SERIAL_ERRORLNPGM("Printer halted. kill() called !!");
LCD_MESSAGEPGM("KILLED. "); LCD_MESSAGEPGM("KILLED. ");
suicide();
while(1); // Wait for reset while(1); // Wait for reset
} }

View file

@ -582,6 +582,7 @@
#define FAN_PIN 7 #define FAN_PIN 7
#define PS_ON_PIN 12 #define PS_ON_PIN 12
#define KILL_PIN -1 #define KILL_PIN -1
#define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing.
#ifdef ULTRA_LCD #ifdef ULTRA_LCD