Commit Graph

176 Commits

Author SHA1 Message Date
Markus Hitter e0ffa134bf Move mm -> inch conversion macros from config.h(.dist) to gcode.c,
as this isn't meant to be user configurable.
2010-10-07 21:34:36 +02:00
Markus Hitter da5194a54e Tidy up config.h.dist a bit. 2010-10-07 21:34:34 +02:00
Markus Hitter 4bddf3452f Move stepper macros from config.h(.dist) to dda.c, as they're not
meant to be configured by the user.
2010-10-07 21:34:29 +02:00
Markus Hitter f799228a8e Remove old XON/XOFF implementation, as it's redundant now. 2010-10-05 21:04:06 +02:00
Markus Hitter a438a3fa2f Implement XON/XOFF handling for the serial read queue. The former
solution was less computing intensive, but failed when the GCode
interpreter couldn't keep up with the incoming stream, e.g. when
handling a lot of tiny moves.

The old implementation is still in place but somewhat redundant
now, so stay tuned ...

Oh, and G4 Dwell works now as well.
2010-10-05 21:04:03 +02:00
Markus Hitter 5e1ce4ec96 Refined the check wether the timer interrupt is enabled,
as per triffid's request.
2010-10-05 13:20:28 +02:00
Markus Hitter af53d2350e Makefile: different solution for commit f5a26de775, as suggested
by triffid.
2010-10-05 12:19:34 +02:00
Markus Hitter 95939ecc22 Don't disable the stepper timer interrupt while stepping.
After lots of try and error the conclusion was, disabling this
interrupt makes the timer vulnerable to be messed up by
characters incoming over the serial line. So, now the
interrupt is enabled as a move starts and not disabled before
the move, and all subsequent moves are done.
2010-10-04 16:05:01 +02:00
Markus Hitter fb53c2c0a8 serial.c: make sure to read incoming characters even if we don't
have space to store them.
2010-10-04 16:04:54 +02:00
Markus Hitter f56e121473 dda_queue.c: clean out an unused comment. 2010-10-04 16:04:49 +02:00
Markus Hitter bdfc4c5507 clock.c: Add a comment about interrupt priorities. 2010-10-04 16:04:47 +02:00
Markus Hitter 2fac65d172 dda_queue.c: restart XON/XOFF only if the queue is at least half drained. 2010-10-04 16:04:43 +02:00
Markus Hitter f98772ff25 timer.c: remove a few obsolete #includes. 2010-10-04 16:04:12 +02:00
John Gilmore cfff4ca5d3 added "config.h" to dependancies for everything.
I noticed that changing config.h didn't recompile dda.c.
So I changed that.
2010-10-03 23:27:38 +02:00
Markus Hitter f5a26de775 Makefile: fix the build failure introduced with the recent Makefile
change. Sorry for letting this slip through.
2010-10-02 16:37:05 +02:00
Markus Hitter f29c675fcc Wrap the watchdog in #ifdefs and disable it for now. My poor imagination
can't think of a situation where resetting the controller in the middle
of a build would be useful. Even hanging ist better :-/

The difference in program size is just 238 bytes.
2010-10-02 16:15:29 +02:00
Markus Hitter 5cb2982e57 Makefile: disallow building if config.h obviously isn't up to date. 2010-10-02 16:14:20 +02:00
Markus Hitter 69ab8cbd9d gcode.c: as we have a working maximum feedrate limitation now,
we can move even faster on rapid movements with more than one axis.
2010-09-30 23:37:57 +02:00
Markus Hitter 9e02c9c1e4 gcode.c: on G0, remember original feedrate. 2010-09-30 23:33:19 +02:00
Markus Hitter 2871411f0c gcode.c: clarify relative coordinates handling. Saves another 82 bytes. 2010-09-30 23:19:32 +02:00
Markus Hitter 90fca50535 dda_queue.c/.h: merge enqueue() and enqueue_temp_wait(). This
saves almost 200 bytes.
2010-09-30 21:55:39 +02:00
Markus Hitter 94e0cce89b Don't set the timer on nullmoves, as dda->c isn't initialized, then. 2010-09-30 21:20:22 +02:00
Michael Moon 4617b5e87d ignore local config.h 2010-09-27 14:13:58 +10:00
Michael Moon 5b36826f50 updated instructions in README 2010-09-27 09:25:48 +10:00
Michael Moon e78381c56d Move configuration to config.h.dist 2010-09-27 09:20:07 +10:00
Michael Moon b76f59193f Expanded README some more 2010-09-27 09:06:50 +10:00
Michael Moon bbf74cc660 Merge branch 'master' of github.com:triffid/FiveD_on_Arduino 2010-09-26 11:30:55 +10:00
Michael Moon bd76a6ce1c Expanded README, updated Makefile header 2010-09-26 11:12:34 +10:00
Markus Hitter ba84d1de60 Fix a typo. 2010-09-26 01:39:13 +02:00
Markus Hitter f6f2b7f44f Enhance ACCELERATION_RAMPING on short moves.
Problem was: For short moves, you have to ramp down before
reaching target speed. The point of return was set to half
of the number of total steps.

Now, what happens is there's an uneven number of steps? In
integer math, 3 / 2 = 1, so the move would ramp one step up,
one step down and ... well, one step even further down, resulting
in a really sloooow step. Slow, like a full second or so.

Adding one to the first half, the movement ramps two steps up,
one down and would do another step at minimum speed, if it wasn't
already at target position. This is about as accurate as we
can get it without introducing more code at interrupt time.
2010-09-25 18:11:45 +02:00
Markus Hitter 903baad3d1 As we assume a G1 by default now, there's no longer a point in
writing "huh?". Included question marks for debugging instead.
2010-09-25 18:11:45 +02:00
Markus Hitter f5258ef9fc Assume a G1 by default. This is expected by some GCode generators. 2010-09-25 18:11:44 +02:00
Markus Hitter 64683e6b6a Remove timer reset, as this doesn't play well. See
http://github.com/triffid/FiveD_on_Arduino/issues#issue/2/comment/428863 .
2010-09-25 12:08:23 +02:00
Markus Hitter 4679b45ac8 Send lowercase ok on init as well. 2010-09-24 20:09:19 +02:00
Markus Hitter 696baea16a Implement better machine speed limits checking. Do it for
each axis individually, as the combined speed of two or more
axes can be higher than the limit of a single one.

While this is tested to work well for all three acceleration
types, I'm not enthusiastic about the code, as it adds almost
500 bytes. Perhaps an efficient-coding-geek can help :-)
2010-09-24 16:08:11 +02:00
Markus Hitter d8e844bb67 Allow compilation without any acceleration again. 2010-09-23 13:34:02 +02:00
Michael Moon c1dbd869f5 minor fixes: comments, indenting, etc 2010-09-18 08:08:31 +10:00
Michael Moon f037bb5320 removed unused ABS_DELTA 2010-09-17 10:29:27 +10:00
Michael Moon 0f895b44b1 use sersendf_P for M114 2010-09-16 22:08:56 +10:00
Michael Moon 256ecdca39 compile-time format checking for sersendf_P 2010-09-16 22:08:24 +10:00
Michael Moon 82446ab787 remove %x/%c/%p since we're not using it yet 2010-09-16 22:08:00 +10:00
Michael Moon 54cb815b12 remove redundant code, fix queue logic in G28:home 2010-09-16 21:44:26 +10:00
Michael Moon 1a2753ebfb turn off SPI if not needed, also start analog system 2010-09-16 21:43:13 +10:00
Michael Moon 92eb4c97ca reset timer properly for more accurate timing 2010-09-16 21:42:24 +10:00
Michael Moon d56ff39cb3 atomic 16-bit operation in analog.c 2010-09-16 21:42:00 +10:00
Michael Moon 3606952096 ignore temporal mapping script temporary files 2010-09-16 19:27:00 +10:00
Michael Moon 6ce5895819 Merge branch 'master' of github.com:triffid/FiveD_on_Arduino 2010-09-16 17:15:30 +10:00
Markus Hitter bd1e357c35 dda.c: remove ABSDELTA() and delta32() implementations as they're unused. 2010-09-14 19:45:23 +02:00
Markus Hitter ae774ed0ec mendel.c: remove unused references to standard C lib. 2010-09-14 19:44:35 +02:00
Michael Moon 004bc1b789 code cleaning
(cherry picked from commit c3333278beaca0d81023b7ee752530466b37f316)
2010-09-13 20:40:23 +10:00