reprap teacup firmware config
[svn42.git] / reprap_mendel_prusa / teacup_firmware / extruder / config.h
diff --git a/reprap_mendel_prusa/teacup_firmware/extruder/config.h b/reprap_mendel_prusa/teacup_firmware/extruder/config.h
new file mode 100644 (file)
index 0000000..c842060
--- /dev/null
@@ -0,0 +1,95 @@
+/* Notice to developers: this file is intentionally included twice. */
+\r
+/*\r
+       CPU clock rate\r
+*/\r
+#ifndef        F_CPU\r
+       #define F_CPU   16000000L\r
+#endif\r
+\r
+/*\r
+       other fallbacks for the Arduino IDE\r
+*/\r
+#define EXTRUDER\r
+#define GEN3\r
+\r
+#include       "arduino.h"\r
+\r
+// controller index- bus is multidrop after all\r
+#define        THIS_CONTROLLER_NUM 0\r
+\r
+//RS485 Interface pins\r
+#define RX_ENABLE_PIN DIO4\r
+#define TX_ENABLE_PIN AIO2\r
+\r
+// Control pins for the A3949 chips\r
+#define H1D DIO7\r
+#define H1E DIO5\r
+#define H2D DIO8\r
+#define H2E DIO6\r
+\r
+// PWM versions of the enable_pins\r
+#define H1E_PWM OCR0B\r
+#define H2E_PWM OCR0A\r
+\r
+//Step/Dir Pins from motherboard to extruder\r
+//IMPORTANT: Assumes that the step pin is on PCIE0\r
+#define E_STEP_PIN DIO10\r
+#define E_DIR_PIN DIO9\r
+\r
+//Trimpot is on AIO0, pin 23\r
+#define TRIM_POT AIO0\r
+#define TRIM_POT_CHANNEL 0\r
+\r
+//Read analog voltage from thermistor\r
+#define TEMP_PIN AIO3\r
+#define TEMP_PIN_CHANNEL 3\r
+\r
+//Read analog voltage from thermistor\r
+#define TEMP_BED_PIN AIO6\r
+#define TEMP_BED_PIN_CHANNEL 6\r
+\r
+\r
+#define        REFERENCE       REFERENCE_AVCC\r
+\r
+#define        TEMP_THERMISTOR\r
+\r
+#define        HEATER_PIN      DIO11\r
+#define BED_PIN                AIO1\r
+#define FAN_PIN                DIO12\r
+\r
+// extruder settings\r
+#define        TEMP_HYSTERESIS                         5
+#define        TEMP_RESIDENCY_TIME             60\r
+\r
+#ifdef DEFINE_TEMP_SENSOR\r
+DEFINE_TEMP_SENSOR(extruder,   TT_THERMISTOR,          TEMP_PIN_CHANNEL,               THERMISTOR_EXTRUDER)\r
+DEFINE_TEMP_SENSOR(bed,                        TT_THERMISTOR,          TEMP_BED_PIN_CHANNEL,   THERMISTOR_EXTRUDER)\r
+// dummy temp sensor so analog_mask includes trim pot\r
+DEFINE_TEMP_SENSOR(noheater,   TT_THERMISTOR,          TRIM_POT_CHANNEL,               0)\r
+#endif\r
+\r
+#ifdef DEFINE_HEATER\r
+DEFINE_HEATER(extruder,        DIO11)\r
+DEFINE_HEATER(bed,                     AIO1)\r
+#endif\r
+\r
+// list of PWM-able pins and corresponding timers\r
+// timer1 is used for step timing so don't use OC1A/OC1B (DIO9/DIO10)\r
+// OC0A                                                                                                DIO6\r
+// OC0B                                                                                                DIO5\r
+// OC1A                                                                                                DIO9\r
+// OC1B                                                                                                DIO10\r
+// OC2A                                                                                                DIO11\r
+// OC2B                                                                                                DIO3\r
+\r
+#define        TH_COUNT                                        8\r
+#define        PID_SCALE                                       1024L\r
+\r
+\r
+/*\r
+       Motors\r
+*/\r
+\r
+#define enable_motors()                                do { TCCR0A |= MASK(COM0A1) | MASK(COM0B1); } while (0)\r
+#define disable_motors()                       do { TCCR0A &= ~MASK(COM0A1) & ~MASK(COM0B1); } while (0)\r