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. |
||
|---|---|---|
| .gitignore | ||
| FiveD_on_Arduino.pde | ||
| Makefile | ||
| README | ||
| analog.c | ||
| analog.h | ||
| arduino.h | ||
| calc.pl | ||
| clock.c | ||
| clock.h | ||
| copier.c | ||
| copier.h | ||
| dda.c | ||
| dda.h | ||
| dda_queue.c | ||
| dda_queue.h | ||
| debug.c | ||
| debug.h | ||
| func.sh | ||
| gcode.c | ||
| gcode.h | ||
| heater.c | ||
| heater.h | ||
| machine.h | ||
| mendel.c | ||
| mendel_cmd | ||
| pinout.h | ||
| sender.sh | ||
| serial.c | ||
| serial.h | ||
| sermsg.c | ||
| sermsg.h | ||
| sersendf.c | ||
| sersendf.h | ||
| temp.c | ||
| temp.h | ||
| timer.c | ||
| timer.h | ||
| watchdog.c | ||
| watchdog.h | ||
README
Rewrite of Reprap Mendel firmware: * 100% integer computations * serial transmit buffer * can fit onto atmega168 * fits onto atmega328p etc * will work on larger atmegas with minor porting