Go to file
Markus Hitter fc70e00ca2 DDA: don't queue up heater waits.
Not queuing up waits for the heaters in the movement queue removes
some code in performance critical paths. What a luck we just
implemented an alternative M116 functionality with the previous
commit :-)

Performance of the slowest step is decreased a nice 29 clock
cycles and binary size decreased by a whoppy 472 bytes. That's
still 210 bytes less than before implementing the alternative
heater wait.

Best of all, average step time is down some 21 clock cycles, too,
so we increased general stepping performance by no less than 5%.

  ATmega sizes               '168   '328(P)   '644(P)     '1280
  Program:  19436 bytes      136%       64%       31%       16%
     Data:   2177 bytes      213%      107%       54%       27%
   EEPROM:     32 bytes        4%        2%        2%        1%

  short-moves.gcode statistics:
  LED on occurences: 888.
  LED on time minimum: 259 clock cycles.
  LED on time maximum: 429 clock cycles.
  LED on time average: 263.491 clock cycles.

  smooth-curves.gcode statistics:
  LED on occurences: 23648.
  LED on time minimum: 251 clock cycles.
  LED on time maximum: 472 clock cycles.
  LED on time average: 286.259 clock cycles.

  triangle-odd.gcode statistics:
  LED on occurences: 1636.
  LED on time minimum: 251 clock cycles.
  LED on time maximum: 429 clock cycles.
  LED on time average: 276.616 clock cycles.
2016-12-05 21:36:03 +01:00
attic Move branch 'issue-196' to the attic. 2016-11-19 10:15:01 +01:00
config PCBScriber config files. 2016-11-20 14:45:45 +01:00
configtool Configtool: speed up startup with wx-tricks. 2016-10-26 22:00:21 +02:00
extruder pinio.h: remove TOGGLE(), GET_INPUT(), GET_OUTPUT() macros. 2015-08-12 14:26:35 +02:00
research Add gnuplot script to explore simulator output 2013-12-06 19:24:58 +01:00
simulator simulator: suppress position display unless something changed 2016-05-31 15:21:49 -04:00
testcases Testcases: add straight-speeds-Fsep.gcode. 2016-11-27 16:05:30 +01:00
tools git-regtest: abort on regression test failure. 2016-04-20 21:46:37 +02:00
.gitattributes Enforce Unix line endings (LF). 2015-02-04 00:10:37 +01:00
.gitignore .gitignore: add entries for Atmel Studio project files. 2016-04-14 23:04:05 +02: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-ARM board.gen7-arm.h: adjust for the released Gen7-ARM. 2016-03-27 20:36:03 +02:00
Makefile-AVR Makefile-AVR: add a target for our standard performance test. 2016-11-21 19:54:59 +01:00
Makefile-SIM Makefiles: add a hint on how to list these predefined macros. 2015-08-12 14:26:34 +02:00
Makefile-common Regressiontests: define $MCU and $F_CPU explicitely on all tests. 2016-07-09 14:15:40 +02:00
Makefile-example Makefile-example: add shortcut targets. 2015-07-17 13:29:22 +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.ino Teacup_Firmware.ino: add a hint to Configtool. 2016-11-19 10:24:51 +01:00
analog-arm.c analog-arm.c: read not by ADC channel number, but by Teacup number. 2015-08-12 14:26:37 +02:00
analog-avr.c analog-avr.c: no need to re-initialise adc_counter. 2016-06-23 22:34:31 +02:00
analog.c analog-arm.c: read not by ADC channel number, but by Teacup number. 2015-08-12 14:26:37 +02:00
analog.h Temp: request ADC reads only when necessary. 2016-06-23 22:32:51 +02:00
arduino.h Simulator: fix pin numbering consistency 2016-05-26 11:04:30 +02:00
arduino_32U4.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
arduino_168_328p.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
arduino_644.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
arduino_1280.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
arduino_lpc1114.h ARM: allow non-PWM pins as heater output. 2015-08-13 16:41:33 +02:00
arduino_usb1286.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
arduino_usb1287.h SD card: establish spi.c/.h and sd.c/.h and get SPI running. 2015-07-05 23:32:46 +02:00
calc.pl setting up new branch 2 2010-08-10 14:26:24 +10:00
clock.c Make temperature waiting independent from the movement queue. 2016-12-05 13:56:09 +01:00
clock.h clock.c: make stuff used only in clock.c static to this file. 2015-08-01 16:22:10 +02:00
cmsis-core_cm0.h ARM: prettify cmsis-core_cm0.h. 2015-08-12 14:26:36 +02:00
cmsis-lpc11xx.h ARM: rename mbed-system_LPC11xx.c/.h to cmsis-system_lpc11xx.c/.h. 2015-08-12 14:26:36 +02:00
cmsis-lpc1114.ld ARM: prettify current cmsis- files. 2015-08-12 14:26:35 +02:00
cmsis-startup_lpc11xx.s ARM: prettify current cmsis- files. 2015-08-12 14:26:35 +02:00
cmsis-system_lpc11xx.c ARM: prettify cmsis-system_lpc11xx.c/.h. 2015-08-12 14:26:36 +02:00
cmsis-system_lpc11xx.h ARM: prettify cmsis-system_lpc11xx.c/.h. 2015-08-12 14:26:36 +02:00
config.default.h Configtool: convert template for Teensy++ 2.0. 2015-04-21 02:51:31 +02:00
config_wrapper.h Lookahead: disable in config_wrapper.h, not in dda_lookahead.h. 2016-07-09 13:36:22 +02:00
configtool.default.ini Configtool: move thermistor presets into distribution file. 2015-05-20 23:31:38 +02:00
configtool.py Configtool: add --quit and --save commandline switches. 2016-06-06 12:36:17 +02:00
cpu-arm.c ARM: take care of system startup status. 2015-08-13 17:12:13 +02:00
cpu-avr.c I2C: initial support. 2016-04-20 21:15:11 +02:00
cpu.c ARM: get a minimum amount of Teacup compiled for ARM. 2015-08-12 14:26:33 +02:00
cpu.h ARM: introduce sei() and cli(). 2015-08-12 14:26:36 +02:00
crc.c Replace SIMULATOR with __AVR__ in several places. 2015-07-29 21:05:38 +02:00
crc.h use CRC16 to verify heater PID settings in eeprom 2011-02-20 17:13:09 +11:00
createTemperatureLookup.py createTemperatureLookup.py: deal with precision limitation on R0. 2015-04-21 02:51:32 +02:00
dda.c DDA: don't queue up heater waits. 2016-12-05 21:36:03 +01:00
dda.h DDA: don't queue up heater waits. 2016-12-05 21:36:03 +01:00
dda_kinematics.c dda_create(): treat 'target' as const and input only. 2016-07-09 14:17:51 +02:00
dda_kinematics.h dda_create(): treat 'target' as const and input only. 2016-07-09 14:17:51 +02:00
dda_lookahead.c DDA: don't queue up nullmoves. 2016-11-27 22:16:56 +01:00
dda_lookahead.h dda_lookahead.c/.h: more debugging code removal/wrapping. 2016-09-06 21:50:33 +02:00
dda_maths.c DDA: get rid of fast_spm. 2016-11-14 21:36:00 +01:00
dda_maths.h DDA: make lookahead independent of X. 2016-11-14 21:43:54 +01:00
dda_queue.c DDA: don't queue up heater waits. 2016-12-05 21:36:03 +01:00
dda_queue.h DDA: don't queue up heater waits. 2016-12-05 21:36:03 +01:00
debug.c setting up new branch 2 2010-08-10 14:26:24 +10:00
debug.h Configtool: don't make DEBUG configuration user-visible. 2015-05-08 20:38:23 +02:00
delay-arm.c ARM: rename mbed-LPC11xx.h to cmsis-lpc11xx.h. 2015-08-12 14:26:36 +02:00
delay-avr.c ARM: split out architecture specific parts for delay.c 2015-08-12 14:26:35 +02:00
delay.c ARM: get delay.c in. 2015-08-12 14:26:35 +02:00
delay.h delay.h: re-add falsely removed #include. 2013-03-24 16:19:25 +01:00
display.c Display: queue up display_set_cursor(), too. 2016-05-30 10:59:12 +02:00
display.h Configtool: learn about DISPLAY_TYPE_HD44780. 2016-05-30 11:05:50 +02:00
display_hd44780.c display_hd44780.c: replace silly demo with temperatures. 2016-05-30 11:03:41 +02:00
display_ssd1306.c Display: queue up display_set_cursor(), too. 2016-05-30 10:59:12 +02:00
displaybus.h Display: add support for the HD44780 display. 2016-05-30 10:31:39 +02:00
extract.py Added gcode documentation and extraction tool 2011-06-03 02:02:46 +10:00
font.c Display: introduce font.h, paraphrase handling distinct fonts. 2016-04-26 14:13:20 +02:00
font.h Display: introduce font.h, paraphrase handling distinct fonts. 2016-04-26 14:13:20 +02:00
font_8x4.c Display: introduce font.h, paraphrase handling distinct fonts. 2016-04-26 14:13:20 +02:00
func.sh func.sh: Fix a potential infinite loop in mendel_readsym_target 2011-05-08 00:36:55 +10:00
gcode_parse.c Drop redundant "simulator.h" includes. 2016-06-11 15:12:40 +02:00
gcode_parse.h gcode_parse.h: order variables reasonably in groups of 4 bytes. 2015-08-12 14:26:36 +02:00
gcode_process.c Make temperature waiting independent from the movement queue. 2016-12-05 13:56:09 +01:00
gcode_process.h G-code parser: move gcode_source stuff ... 2015-07-17 13:31:10 +02:00
graycode.c disable greycode by default in arduino IDE 2011-02-17 21:52:15 +11:00
heater-arm.c ARM: enable temperature control. 2015-08-13 17:12:12 +02:00
heater-avr.c ARM: enable temperature control. 2015-08-13 17:12:12 +02:00
heater.c ARM: enable temperature control. 2015-08-13 17:12:12 +02:00
heater.h Drop redundant "simulator.h" includes. 2016-06-11 15:12:40 +02:00
home.c PCBScriber config files. 2016-11-20 14:45:45 +01:00
home.h Fixed single inclusion of file. Added missing define. 2011-08-16 14:09:49 +02:00
i2c.c i2c.c: review error handling yet again. 2016-04-27 23:54:15 +02:00
i2c.h Display: introduce display queue. 2016-04-27 23:54:14 +02:00
intercom.c ARM: introduce sei() and cli(). 2015-08-12 14:26:36 +02:00
intercom.h Add config.h wrapper to simplify test automation 2014-03-04 19:56:23 +01:00
memory_barrier.h ARM: port memory_barrier.h. 2015-08-12 14:26:36 +02:00
mendel.c Drop redundant "simulator.h" includes. 2016-06-11 15:12:40 +02:00
mendel_cmd Merge release-candidate-triffid branch 2011-01-07 23:09:13 +11:00
msg.c Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
msg.h Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
parallel-4bit.c Display: add support for the HD44780 display. 2016-05-30 10:31:39 +02:00
parallel-4bit.h Display: add support for the HD44780 display. 2016-05-30 10:31:39 +02:00
pff.c SD card: move parsing closer to the metal. 2015-07-17 13:31:03 +02:00
pff.h Add simulator SD card (and SPI, PFF) support. 2015-07-17 16:02:59 +02:00
pff_conf.h SD card: measures sizes and additionally enable FAT32 support. 2015-07-07 19:07:37 +02:00
pff_diskio.c Fix typos: "whether" and whitespace. 2015-07-17 16:16:42 +02:00
pff_diskio.h SD card: move parsing closer to the metal. 2015-07-17 13:31:03 +02:00
pinio.c pinio.c/.h: rename PULLUP_OFF() to PULL_OFF(). 2016-09-30 12:42:47 +02:00
pinio.h pinio.h: support USE_INTERNAL_PULLDOWNS. 2016-09-30 13:16:01 +02:00
preprocessor_math.h preprocessor_math.h: fix errorneous comment. 2014-08-31 19:32:09 +02:00
ringbuffer.h Serial: move ringbuffer logic into a separate header file. 2016-04-20 21:15:11 +02:00
sd.c heater.c, sd.c: apply the changed order of SET_OUTPUT() here, too. 2015-08-12 14:26:36 +02:00
sd.h ARM: get spi.c, pff.c and pff_diskio.c (SD card handling) in. 2015-08-13 17:12:13 +02: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
sendf.c Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
sendf.h Simulator: fix pin numbering consistency 2016-05-26 11:04:30 +02:00
serial-arm.c Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
serial-avr.c Serial: move ringbuffer logic into a separate header file. 2016-04-20 21:15:11 +02:00
serial.c ARM: get a minimum amount of Teacup compiled for ARM. 2015-08-12 14:26:33 +02:00
serial.h Drop redundant "simulator.h" includes. 2016-06-11 15:12:40 +02:00
sermsg.h Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
sersendf.h Make message/text sending aware of the sending destination. 2016-04-26 15:23:15 +02:00
simulator.h Define missing DEBUG_LED_PIN in simulator 2016-08-08 13:34:39 -04:00
spi.c ARM: get spi.c, pff.c and pff_diskio.c (SD card handling) in. 2015-08-13 17:12:13 +02:00
spi.h Added support for MCP3008 and MCP3004 ADC for temperature read 2016-04-12 22:37:50 +02:00
temp.c Make temperature waiting independent from the movement queue. 2016-12-05 13:56:09 +01:00
temp.h Make temperature waiting independent from the movement queue. 2016-12-05 13:56:09 +01:00
timer-arm.c Step timer: reset timer after pauses instead of doing a guess. 2015-08-12 14:26:37 +02:00
timer-avr.c Step timer: reset timer after pauses instead of doing a guess. 2015-08-12 14:26:37 +02:00
timer.c ARM: split timer.c into platform specific files. 2015-08-12 14:26:36 +02:00
timer.h Step timer: reset timer after pauses instead of doing a guess. 2015-08-12 14:26:37 +02:00
usb_serial.c Drop redundant "simulator.h" includes. 2016-06-11 15:12:40 +02:00
usb_serial.h usb_serial.h: refine the note. 2016-04-27 23:53:42 +02:00
watchdog.c watchdog.c: fix compilation with module enabled. 2016-04-14 22:51:22 +02:00
watchdog.h ARM: get watchdog.c in. 2015-08-13 17:12:13 +02: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 #
#                                                                            #
##############################################################################