Go to file
Markus Hitter 9dd7426f9d DDA: on short schedules, repeat step routine immediately ...
... instead of trying to fire an interrupt as quickly as possible.
This affects ACCELERATION_TEMPORAL only. It almost doubles the
achievable step rate. Measured maximum step rate (X axis only,
100 mm moves) is 40'000 steps/s on a 16 MHz electronics, so
approx. 50'000 steps/s on a 20 MHz controller, which is even
a bit faster than the ACCELERATION_RAMPING algorithm.

Tests with temporary test code were run and judging by these
tests, clock interrupts are now very reliable up to the point
where processing speed is simply exhaused.

Performance with ACCELERATION_RAMPING: this costs 10 bytes
binary size and exactly 2 clock cycles per step interrupt or
0.6% performance even. We could avoid this with a lot
of #ifdefs, but considering ACCELERATION_TEMPORAL will one
day be the default acceleration, skip these #ifdefs, also
for better code readability.

$ cd testcases
$ ./run-in-simulavr.sh short-moves.gcode smooth-curves.gcode triangle-odd.gcode
    SIZES             ATmega...  '168    '328(P)    '644(P)    '1280
    FLASH  : 20528 bytes         144%        67%        33%      16%
    RAM    :  2188 bytes         214%       107%        54%      27%
    EEPROM :    32 bytes           4%         2%         2%       1%

short-moves.gcode statistics:
LED on occurences: 838.
LED on time minimum: 304 clock cycles.
LED on time maximum: 715 clock cycles.
LED on time average: 310.717 clock cycles.

smooth-curves.gcode statistics:
LED on occurences: 8585.
LED on time minimum: 309 clock cycles.
LED on time maximum: 712 clock cycles.
LED on time average: 360.051 clock cycles.

triangle-odd.gcode statistics:
LED on occurences: 1636.
LED on time minimum: 304 clock cycles.
LED on time maximum: 710 clock cycles.
LED on time average: 332.32 clock cycles.
2015-04-21 02:51:32 +02:00
attic dda.c: file attempt to use sign of dda->delta_um[] to set direction. 2014-10-18 21:04:07 +02:00
config Configtool: also prettify writing heater definitions. 2015-04-21 02:51:31 +02:00
configtool Configtool: DEFINE_TEMP_SENSOR always wants four paramters. 2015-04-21 02:51:31 +02:00
extruder Rename setTimer() to timer_set() for more consistency. 2015-04-21 02:51:32 +02:00
research Add gnuplot script to explore simulator output 2013-12-06 19:24:58 +01:00
simulator Rename setTimer() to timer_set() for more consistency. 2015-04-21 02:51:32 +02:00
testcases run-in-simulavr.sh: make stopping on "stop" working again. 2015-04-21 02:51:31 +02:00
tools deriv.awk: Calculate derivative of every column 2014-03-04 19:57:28 +01:00
.gitattributes Enforce Unix line endings (LF). 2015-02-04 00:10:37 +01:00
.gitignore Configtool: first steps for a user friendly configuration tool. 2015-02-05 21:03:30 +01:00
Doxyfile Remove LUFA. 2012-12-03 19:48:54 +01:00
LICENSE licensing- GPL-2 at the moment 2010-10-20 18:15:09 +11:00
Makefile-AVR SIMINFO: fetch device name from Makefile / compile parameters. 2015-04-21 02:51:31 +02:00
Makefile-SIM Makefiles: adjust comments. 2015-04-21 02:51:31 +02:00
Makefile-common Makefiles: adjust comments. 2015-04-21 02:51:31 +02:00
Makefile-example Makefiles: rename "MCU_TARGET" to "MCU". 2015-04-21 02:51:31 +02:00
README Makefiles: adjust comments. 2015-04-21 02:51:31 +02:00
README.sim Teach simulator to process gcode files directly 2013-12-06 19:24:58 +01:00
Teacup_Firmware.pde arduino ide: .pde must have the same name as the folder. 2011-02-27 22:08:41 +01:00
ThermistorTable.double.h Align section attributes usage: always before the variable name. 2014-03-04 19:57:56 +01:00
ThermistorTable.single.h Align section attributes usage: always before the variable name. 2014-03-04 19:57:56 +01:00
analog.c Zungmann's fixes to compile simulator on Mac OS X, part 2. 2014-03-04 19:57:48 +01:00
analog.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
arduino.h Zungmann's fixes to compile simulator on Mac OS X, part 2. 2014-03-04 19:57:48 +01:00
arduino_32U4.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
arduino_168_328p.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
arduino_644.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
arduino_1280.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
arduino_usb1286.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
arduino_usb1287.h Move MAX6675 initialisation from mendel.c to temp.c. 2014-12-26 19:41:38 +01:00
calc.pl setting up new branch 2 2010-08-10 14:26:24 +10:00
clock.c temp.h: remove indirection temp_tick(). 2015-04-21 02:51:31 +02:00
clock.h Move clock stuff from timer.c/.h to clock.c/.h. 2014-10-18 20:57:32 +02:00
config.default.h Configtool: convert template for Teensy++ 2.0. 2015-04-21 02:51:31 +02:00
config_wrapper.h ACCELERATION_TEMPORAL: always disable lookahead. 2015-04-21 02:51:31 +02:00
configtool.default.ini Configtool: use --save-temps=obj again. 2015-04-21 02:51:30 +02:00
configtool.py Configtool: on configuration mismatch, save instead of load. 2015-04-21 02:51:31 +02:00
crc.c Restore simulation build target. 2013-12-06 19:24:58 +01:00
crc.h use CRC16 to verify heater PID settings in eeprom 2011-02-20 17:13:09 +11:00
createTemperatureLookup.py Update URLs for new github location 2014-03-04 19:57:08 +01:00
dda.c DDA: on short schedules, repeat step routine immediately ... 2015-04-21 02:51:32 +02:00
dda.h dda.c/.h: reduce debounce counting variable. 2015-01-09 13:11:06 +01:00
dda_kinematics.c CoreXY, dda_kinematics.c/.h: introduce KINEMATICS_COREXY. 2014-12-26 19:41:37 +01:00
dda_kinematics.h CoreXY, dda_kinematics.c/.h: introduce KINEMATICS_COREXY. 2014-12-26 19:41:37 +01:00
dda_lookahead.c dda.c: add some TODOs about duplicate and redundant code. 2014-12-26 19:41:38 +01:00
dda_lookahead.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
dda_maths.c Rename all these new PROGMEM variables to end in _P. 2014-08-31 19:05:25 +02:00
dda_maths.h DDA: have an acceleration constant for each axis individually. 2014-08-31 19:10:14 +02:00
dda_queue.c DDA: on short schedules, repeat step routine immediately ... 2015-04-21 02:51:32 +02:00
dda_queue.h Remove __attribute__((hot)). 2014-03-04 19:56:13 +01:00
debug.c setting up new branch 2 2010-08-10 14:26:24 +10:00
debug.h debug.h: Align M111 debug bit codes with Repetier-Host. 2014-08-31 19:08:26 +02:00
delay.c Eliminate _delay(), delay() and _delay_us(). 2013-03-24 16:19:24 +01:00
delay.h delay.h: re-add falsely removed #include. 2013-03-24 16:19:25 +01:00
extract.py Added gcode documentation and extraction tool 2011-06-03 02:02:46 +10:00
func.sh func.sh: Fix a potential infinite loop in mendel_readsym_target 2011-05-08 00:36:55 +10:00
fuses.h make it even harder to unintentionally include fuse definitions 2011-02-04 11:04:15 +11:00
gcode_parse.c gcode_parse.c: don't assume G1 on pure M- or T-codes. 2015-01-06 16:28:51 +01:00
gcode_parse.h gcode_parse.h: raise S word size. 2014-05-29 21:49:29 +02:00
gcode_process.c gcode_process.c: same homing order for all axes. 2014-12-26 19:41:38 +01:00
gcode_process.h gcode_process.c: make special moves non-public. 2011-02-27 11:55:01 +01:00
graycode.c disable greycode by default in arduino IDE 2011-02-17 21:52:15 +11:00
heater.c heater.c: add a hysteresis when using BANG_BANG. 2014-10-18 20:58:35 +02:00
heater.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
home.c home.c, dda.c: consider endstops on both axis ends when homing. 2015-01-09 13:11:01 +01:00
home.h Fixed single inclusion of file. Added missing define. 2011-08-16 14:09:49 +02:00
intercom.c Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
intercom.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
memory_barrier.h Simulator cleanup 2013-12-06 19:24:58 +01:00
mendel.c SIMINFO: fetch device name from Makefile / compile parameters. 2015-04-21 02:51:31 +02:00
mendel_cmd Merge release-candidate-triffid branch 2011-01-07 23:09:13 +11:00
pinio.c DDA: Move axis calculations into loops, part 6b. 2014-08-31 19:07:59 +02:00
pinio.h DDA: Move axis calculations into loops, part 6b. 2014-08-31 19:07:59 +02:00
preprocessor_math.h preprocessor_math.h: fix errorneous comment. 2014-08-31 19:32:09 +02:00
sd.c Eliminate _delay(), delay() and _delay_us(). 2013-03-24 16:19:24 +01:00
sender-mac.sh sender-mac.sh: another minor fix. 2011-09-30 21:02:25 +02:00
sender.sh sender.sh: Allow for "ok" to be surrounded by DEBUG output. 2011-03-04 19:42:00 +11:00
serial.c Rename all these new PROGMEM variables to end in _P. 2014-08-31 19:05:25 +02:00
serial.h Rename all these new PROGMEM variables to end in _P. 2014-08-31 19:05:25 +02:00
sermsg.c sermesg.c: Add documentation tag for variable floating point. 2014-08-31 19:07:21 +02:00
sermsg.h M114 returns millimeters instead of steps 2011-04-26 14:44:17 +10:00
sersendf.c Rename all these new PROGMEM variables to end in _P. 2014-08-31 19:05:25 +02:00
sersendf.h Rename all these new PROGMEM variables to end in _P. 2014-08-31 19:05:25 +02:00
simulator.h Rename setTimer() to timer_set() for more consistency. 2015-04-21 02:51:32 +02:00
temp.c temp.c: also report target temperatures. 2015-04-21 02:11:01 +02:00
temp.h temp.h: remove indirection temp_tick(). 2015-04-21 02:51:31 +02:00
timer.c DDA: on short schedules, repeat step routine immediately ... 2015-04-21 02:51:32 +02:00
timer.h DDA: on short schedules, repeat step routine immediately ... 2015-04-21 02:51:32 +02:00
usb_serial.c Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
usb_serial.h Import USB Serial from http://www.pjrc.com/teensy/usb_serial.html 2012-11-08 16:36:48 +01:00
watchdog.c According to avr-libc documentation, ISR() handles SREG its self. 2013-10-27 20:01:51 +01:00
watchdog.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00

README

##############################################################################
#                                                                            #
# Teacup - lean and efficient firmware for RepRap printers                   #
#                                                                            #
# by Triffid Hunter, Traumflug, jakepoz, many others.                        #
#                                                                            #
##############################################################################

For installation instructions, see
http://reprap.org/wiki/Teacup_Firmware#Simple_Installation and/or
http://reprap.org/wiki/Teacup_Firmware#Developer_Installation

For documentation, see
http://reprap.org/wiki/Teacup_Firmware


##############################################################################
#                                                                            #
# This firmware is Copyright (c) ...                                         #
#   2009 - 2010 Michael Moon aka Triffid_Hunter                              #
#   2010 - 2013 Markus "Traumflug" Hitter <mah@jump-ing.de>                  #
#                                                                            #
# This program is free software; you can redistribute it and/or modify       #
# it under the terms of the GNU General Public License as published by       #
# the Free Software Foundation; either version 2 of the License, or          #
# (at your option) any later version.                                        #
#                                                                            #
# This program is distributed in the hope that it will be useful,            #
# but WITHOUT ANY WARRANTY; without even the implied warranty of             #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
# GNU General Public License for more details.                               #
#                                                                            #
# You should have received a copy of the GNU General Public License          #
# along with this program; if not, write to the Free Software                #
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA #
#                                                                            #
##############################################################################