Commit Graph

418 Commits

Author SHA1 Message Date
Markus Hitter 7e8c50fa58 pinio.h: make inverting pins actually work.
To INVERT an endstop, #define X_INVERT_MIN etc.
To leave it uninverted, define nothing, i.e. comment the #define out.

Probably, this change should be extended to INVERT_DIR and
INVERT_ENABLE, too.

The problem was, preprocessor flags are usually set with a simple
"#define X_INVERT_MIN", so X_INVERT_MIN is defined, but of
arbitrary value. Applies to other axes and INVERT_MAX also,
of course.

Initially, it was planned to allow "#define X_INVERT_MIN" as well
as "#define X_INVERT_MIN 0" but that turned out to be _really_
complex. See http://www.velocityreviews.com/forums/t720190-test-of-a-preprocessor-symbol-defined-as-nothing-vs-zero.html .

For curiosity, I've ported this to our purposes, debug messages
left in place:

	#ifdef X_INVERT_MAX
		#if CAT(1,X_INVERT_MAX) == 1
			#warning "X enabled, inverted"
			#define x_max()						(READ(X_MAX_PIN)?0:1)
		#elif X_INVERT_MAX
			#warning "X enabled, inverted"
			#define x_max()						(READ(X_MAX_PIN)?0:1)
		#else
			#warning "X enabled, uninverted"
			#define x_max()						(READ(X_MAX_PIN)?1:0)
		#endif
	#else
		#warning "X enabled, uninverted"
		#define x_max()						(READ(X_MAX_PIN)?1:0)
	#endif
	#warning "X disabled"
	#define	x_max()							(0)
2011-02-27 16:16:30 +01:00
Markus Hitter 0d37270af1 Config templates: publish INVERT flags.
The corresponding code is in pinio.h already, so let's hope
it actually works.
2011-02-27 12:01:47 +01:00
Markus Hitter 340aea89c8 Config templates: publish ENABLE_PINs in _all_ templates.
No functional change, as the new ones are commented out.
2011-02-27 12:00:45 +01:00
Markus Hitter 7087587f19 Config templates: add MAX_PINS consistently.
No functional changes, since all the new ones are commented out.
2011-02-27 11:55:27 +01:00
Markus Hitter 5c31bc01c1 gcode_process.c: make special moves non-public.
This adds some 30 bytes program size for whatever reason.
2011-02-27 11:55:01 +01:00
Markus Hitter 1a33cfddf6 gcode_parse.h: grant mantissa full 32 bits.
This saves 280 bytes of binary size and probably quite a bit of
processing time. Cost: 1 byte of RAM.
2011-02-27 11:53:08 +01:00
Markus Hitter bdeb4827fc gcode_parse.c: replace some ints by uints to double the range.
This is without accuracy or other losses and should finally make
decfloat_to_int() free of variable overflow within the decribed
ranges. Surprisingly, this costs 14 bytes program size.
2011-02-27 11:51:19 +01:00
Markus Hitter 694e3c4298 Revert "Config templates: protect config.h against multiple inclusion."
Teacup uses preprocessor magic which actually requires including
config.h twice.

This reverts commit c61191d86d.
2011-02-27 11:11:37 +01:00
Stephan Walter 8acb072e0b Actually set extruder enable pin if defined 2011-02-27 00:55:14 +11:00
Markus Hitter f985de8a54 gcode_parse.c: make decfloat_to_int handle all uints.
This saves 10 bytes of binary size and possible headaches (negative factors).
2011-02-25 11:54:22 +01:00
Markus Hitter c61191d86d Config templates: protect config.h against multiple inclusion.
This is a small compile time saver and also mandatory for
patches later in the queue.
2011-02-25 11:53:21 +01:00
Markus Hitter 758893c275 gcode_parse.c: ditch ASTERISK_IN_CHECKSUM_INCLUDED. 2011-02-25 11:49:51 +01:00
Michael Moon d705f46899 more cleanup after name change 2011-02-24 23:48:15 +11:00
Michael Moon 4aefda6f17 added integer square root algorithm for future use 2011-02-24 18:49:28 +11:00
Markus Hitter 4ca9e470a5 Move timer macros from config.h.dist and derivates to timer.c.
This sould confuse users less and neither value is subject to change
per configuration. Reviewed also by Markus Amsler.
2011-02-23 12:37:15 +01:00
Markus Hitter 2c53dbe2a8 gcode_parse: limit decimal ranges by decfloat_to_int()'s demands.
Formerly, it was limited by variable bit ranges, which allowed
more than decfloat_to_int() can swallow.
2011-02-23 02:52:51 +01:00
Markus Hitter 0dc623d4eb gcode_parse.c: added comments, which show possible variable overflows.
Stay tuned, the fix is just around the corner.
2011-02-23 02:52:27 +01:00
Markus Hitter dfc4674012 dda.h: re-add a check against multiple acceleration types.
This was previously in config.h(.dist), but better belongs
to dda.h.
2011-02-23 02:51:43 +01:00
Michael Moon 780dea1186 avr-libc's math is smaller than gcc's, use it 2011-02-21 19:09:08 +11:00
Michael Moon b8e6400a2d more README updates 2011-02-21 16:47:00 +11:00
Michael Moon af36737e3b update README 2011-02-21 16:24:21 +11:00
Michael Moon 8188ff3593 merge intercom-protocol into master 2011-02-21 16:01:27 +11:00
Markus Amsler bfae6ff97f intercom: Reduce sections with disabled interrupts. 2011-02-21 15:52:17 +11:00
Markus Amsler 52c2788997 intercom: updating the extruder in 250ms intervals should be fast enough. 2011-02-21 15:52:17 +11:00
Markus Amsler fa2a4389fc intercom: Transmit/receive from/to temporary packets.
Fixes that the packet could be changed during transmit. And only values from packets with correct checksum are used.
2011-02-21 15:52:16 +11:00
Markus Amsler 5e56784ac1 extruder: Set/get bed temperature. 2011-02-21 15:52:16 +11:00
Markus Amsler 6d83bdb067 extruder: add fan definitions 2011-02-21 15:52:15 +11:00
Markus Amsler e032cf5dab extruder: Use pull up resistors for step/dir pin to avoid noise. 2011-02-21 15:52:15 +11:00
Markus Amsler d0cbe86a2d extruder: Half-step on every step signal.
No idea why only every 4th step signal would actually step, but this generates a lot of noise for nothing.
2011-02-21 15:52:15 +11:00
Markus Amsler e3672da1cf extruder: Check the step pin directly.
Flag could get out of sync, with undefined results.
2011-02-21 15:52:15 +11:00
Markus Amsler 5cf550733d arduino_168: define AIO6/7 2011-02-21 15:52:14 +11:00
Markus Amsler 7aff5623ef home: delay is in micro seconds 2011-02-21 15:52:14 +11:00
Stephan Walter eecf3af9f1 analog mask calculated automagically 2011-02-21 13:57:51 +11:00
Michael Moon 31634c6a8f Add M136 (DEBUG) to read back PID values, add heater_print function 2011-02-20 17:30:07 +11:00
Michael Moon 8540be950a use CRC16 to verify heater PID settings in eeprom 2011-02-20 17:13:09 +11:00
Michael Moon 9dc4d54133 fix compile error around new homing logic 2011-02-20 16:35:22 +11:00
Michael Moon c6122eda74 add G161/G162 commands, upgrade home.c to provide negative/positive homing calls for G161/G162 2011-02-20 14:10:53 +11:00
Michael Moon 4426c69274 individual functions to home each axis 2011-02-20 13:39:07 +11:00
Michael Moon 18d47056f5 print queue with every G command if debug is enabled 2011-02-20 11:37:13 +11:00
Michael Moon da9bfc9f6f print_queue no longer adds a newline 2011-02-20 11:37:12 +11:00
Architect 65a1846955 bang-bang heater toggle is wrong way around
Signed-off-by: Michael Moon <triffid.hunter@gmail.com>
2011-02-20 11:02:18 +11:00
Michael Moon 72adba5a58 apparently repg expects N preceding line numbers in resend requests 2011-02-19 13:09:21 +11:00
Michael Moon 83fa3f7d09 disable greycode by default in arduino IDE 2011-02-17 21:52:15 +11:00
Michael Moon d06a365f54 G4 uses millisecond units now apparently, instead of seconds 2011-02-17 14:05:13 +11:00
Michael Moon f78a0483d7 make URLs in README easier to find 2011-02-17 11:22:57 +11:00
Markus Amsler afe58621a2 M140: S value is a temperature 2011-02-15 13:24:54 +11:00
Markus Amsler b0d1ba0e60 Fix analog reading of channel 0 if another channel is active. 2011-02-15 13:24:53 +11:00
Markus Amsler bcd47e90b0 Fix analog reading of channel 0 if another channel is active. 2011-02-15 13:21:45 +11:00
Markus Amsler 3aa7fc83e4 M140: S value is a temperature 2011-02-15 13:21:45 +11:00
Michael Moon 664337fa25 use proper feedrate for Y 2011-02-15 13:21:45 +11:00