//User specified version info of THIS file to display in [Pronterface, etc] terminal window during startup.
//Implementation of an idea by Prof Braino to inform user that any changes made
//to THIS file by the user have been successfully uploaded into firmware.
-#define STRING_VERSION_CONFIG_H "2012-02-25" //Personal revision number for changes to THIS file.
+#define STRING_VERSION_CONFIG_H "2012-05-02" //Personal revision number for changes to THIS file.
#define STRING_CONFIG_H_AUTHOR "erik" //Who made the changes.
// This determines the communication speed of the printer
#endif
#endif
+// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
+#define FAST_PWM_FAN
+
// M240 Triggers a camera by emulating a Canon RC-1 Remote
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
// #define PHOTOGRAPH_PIN 23
void enquecommand(const char *cmd); //put an ascii command at the end of the current buffer.
void prepare_arc_move(char isclockwise);
+#ifdef FAST_PWM_FAN
+void setPwmFrequency(uint8_t pin, int val);
+#endif
+
#ifndef CRITICAL_SECTION_START
#define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli();
#define CRITICAL_SECTION_END SREG = _sreg;
#include "watchdog.h"
#include "EEPROMwrite.h"
#include "language.h"
+#include "pins_arduino.h"
#define VERSION_STRING "1.0.0 RC2"
bool IsStopped() { return Stopped; };
+#ifdef FAST_PWM_FAN
+void setPwmFrequency(uint8_t pin, int val)
+{
+ val &= 0x07;
+ switch(digitalPinToTimer(pin))
+ {
+
+ #if defined(TCCR0A)
+ case TIMER0A:
+ case TIMER0B:
+ TCCR0B &= ~(CS00 | CS01 | CS02);
+ TCCR0B |= val;
+ break;
+ #endif
+
+ #if defined(TCCR1A)
+ case TIMER1A:
+ case TIMER1B:
+ TCCR1B &= ~(CS10 | CS11 | CS12);
+ TCCR1B |= val;
+ break;
+ #endif
+
+ #if defined(TCCR2)
+ case TIMER2:
+ case TIMER2:
+ TCCR2 &= ~(CS10 | CS11 | CS12);
+ TCCR2 |= val;
+ break;
+ #endif
+
+ #if defined(TCCR2A)
+ case TIMER2A:
+ case TIMER2B:
+ TCCR2B &= ~(CS20 | CS21 | CS22);
+ TCCR2B |= val;
+ break;
+ #endif
+
+ #if defined(TCCR3A)
+ case TIMER3A:
+ case TIMER3B:
+ case TIMER3C:
+ TCCR3B &= ~(CS30 | CS31 | CS32);
+ TCCR3B |= val;
+ break;
+ #endif
+
+ #if defined(TCCR4A)
+ case TIMER4A:
+ case TIMER4B:
+ case TIMER4C:
+ TCCR4B &= ~(CS40 | CS41 | CS42);
+ TCCR4B |= val;
+ break;
+ #endif
+
+ #if defined(TCCR5A)
+ case TIMER5A:
+ case TIMER5B:
+ case TIMER5C:
+ TCCR5B &= ~(CS50 | CS51 | CS52);
+ TCCR5B |= val;
+ break;
+ #endif
+
+ }
+}
+#endif
+
#endif
#if (FAN_PIN > -1)
SET_OUTPUT(FAN_PIN);
+ #ifdef FAST_PWM_FAN
+ setPwmFrequency(FAN_PIN, 1); // No prescaling. Pwm frequency = F_CPU/256/8
+ #endif
#endif
#ifdef HEATER_0_USES_MAX6675