Commit Graph

1705 Commits

Author SHA1 Message Date
Markus Hitter d3867f112c git-step-rebase: enable the rerere-mechanism.
Git provides a mechanism to record conflict solutions done with
one rebase and replaying that when rebasing another branch. That's
what's Rerere is about. Unfortunately, a rebase still stops after
resolving all conflicts with recordings, so convenience is a bit
limited.

If Rerere is disabled in a repo or there are no recorded solutions,
this option has no effect.
2017-06-04 17:09:35 +02:00
Markus Hitter 606611a070 git-step-rebase: count distance to branch head correctly.
Without --first-parent, 'git rev-list' counts commits on merged
branches, too. Not noticed on Teacup, because we have no merges
here, but in another repo this came up.
2017-06-04 17:05:37 +02:00
Markus Hitter 7a36302cd7 git-step-rebase: try the faster standard rebase mode.
Standard mode, like without ignoring whitespace changes. Only if
that fails, try again with whitespace ignorance.

Reason for this attempt is, rebases not ignoring whitespace are
significantly faster and much less verbose. As 99% of all rebases
work fine without ignoring whitespace, it's a good idea to try
that first.
2017-04-25 20:26:23 +02:00
Markus Hitter 92926aadf5 git-step-rebase: slightly nicer progress report. 2017-04-25 20:00:13 +02:00
Markus Hitter b1ba8b4003 git-step-rebase: --whitespace=fix was apparently fixed. 2017-04-25 19:49:48 +02:00
Nico Tonnhofer 1bb4d7f7dd dda: recalculate only dedicated axes 2017-04-20 19:06:58 +02:00
Nico Tonnhofer 5cf1b34924 dda.c: correct current position for CoreXY 2017-04-20 19:01:22 +02:00
Nico Tonnhofer eacb5bbbed dda.c: split move_step and move_step_no
12 bytes less
2017-04-20 19:01:10 +02:00
Nico Tonnhofer 3592622414 dda.h/.c: remove move_state.step_no
We don't need to save the step_no. We can easily calculate it when needed.
Also some whitespace-work. In dda.h is only a delete of 'uint32_t step_no;'.

Saves up to 16 clock cycles in dda_step():

short-moves.gcode statistics:
LED on occurences: 888.
LED on time minimum: 209 clock cycles.
LED on time maximum: 504 clock cycles.
LED on time average: 241.441 clock cycles.

smooth-curves.gcode statistics:
LED on occurences: 22589.
LED on time minimum: 209 clock cycles.
LED on time maximum: 521 clock cycles.
LED on time average: 276.729 clock cycles.

triangle-odd.gcode statistics:
LED on occurences: 1636.
LED on time minimum: 209 clock cycles.
LED on time maximum: 504 clock cycles.
LED on time average: 262.923 clock cycles.
2017-04-03 23:10:02 +02:00
Nico Tonnhofer 89bb0ae3bb dda.c: resort calculation for high frequencies 2017-04-03 23:07:18 +02:00
Nico Tonnhofer f9c8652715 dda.c: correct md_candidate calculation 2017-04-03 23:07:17 +02:00
Nico Tonnhofer 104cc0b757 dda.c: c_limit calculation is only for non-temporal configs
no functional change, but saves 24 bytes when using acceleration temporal
2017-04-03 23:07:17 +02:00
Nico Tonnhofer a1cca9bdad arduino_stm32: correct channel for pwm 2017-04-03 23:07:17 +02:00
Nico Tonnhofer 635d40a42a heater-stm32.c: rework init 2017-04-03 23:07:17 +02:00
Nico Tonnhofer 772d507a45 clock.c: delete really old comment code
and reformate some lines with spaces
2017-03-29 06:21:05 +02:00
Wurstnase e7dce1817b MAX6675: change evaluation of spi result
https://cdn-shop.adafruit.com/datasheets/MAX6675.pdf
When thermocouple is open (bit2), we send a "not ready", reset active and hopefully we get a result next time.
2017-03-21 17:45:13 +01:00
Nico Tonnhofer bcb6964ceb heater: add max_pwm and software pwm also for stm32 2017-03-21 17:36:14 +01:00
Nico Tonnhofer fbe1af4013 configtool: add FORCE_SOFTWARE_PWM to configtool 2017-03-21 15:04:26 +01:00
Nico Tonnhofer 4882d19215 heater: if pwm is set to 1, hardware pwm is forced, if available. 2017-03-21 15:04:26 +01:00
Nico Tonnhofer 6e78757385 heater-arm/avr: add some descriptions and prettify files 2017-03-21 15:04:25 +01:00
Nico Tonnhofer 60a7542dc9 heater-avr.c: precompiled masked pin
Saves 28 bytes.
2017-03-21 14:51:27 +01:00
Nico Tonnhofer 0f83223bc8 arduino: Extend arduino-files with pin ##_TCCR and _COM for heater-avr.
Add also NO_PWM_PIN and NO_TCCR_PIN to arduino-files.

		config			|Program|Data
	--------------------		|---	|---
config.regtest-gen7-avr.h		| -94	| 0
config.regtest-ramps.h			| -226	| 0
config.regtest-nanoheart.h		| -80	| 0
config.regtest-teensy2.h		| -150	| 0
config.regtest-gen3.h			| 0	| 0
config.h.Profiling			| -92	| 0
config.regtest-display.h		| -94	| 0
config.regtest-acceleration-reprap.h	| -226	| 0
config.regtest-acceleration-temporal.h	| -226	| 0
config.regtest-gen7-arm.h		| 0	| 0
config.regtest-no-endstops.h		| -102	| 0
config.regtest-no-lookahead.h		| -94	| 0
2017-03-21 14:51:27 +01:00
Nico Tonnhofer dd50675ac0 heater: add pwm_types and a union for AVR pin/pwm. 2017-03-21 14:51:25 +01:00
Nico Tonnhofer d9f18f0780 heater: precalculate max_value for software PWM
PWM_TYPE macro for finding the correct pwm type.
2017-03-21 14:51:24 +01:00
Nico Tonnhofer 8e273c2789 heater: heater_runtime needs not to be extern 2017-03-21 14:51:24 +01:00
Nico Tonnhofer 4abc3aa2f0 heater: software pwm with delta sigma algorithm
@triffid points me to the delta sigma algorithm. This is pretty nice
for slow updating routines. Others than normal PWM, this scale better
for slow frequencies.

This algorithm is a mix of
https://www.mikrocontroller.net/topic/293454#3128867
and
https://github.com/Smoothieware/Smoothieware/blob/29e80/src/libs/Pwm.cpp#L55
2017-03-21 14:51:08 +01:00
Nico Tonnhofer fb83d2de57 heaters: rework max heater value
remove the define USE_MAX_HEATER
this will cost only neglabile space when not enabled on AVR.
2017-03-21 14:51:01 +01:00
Phil Hord 4b3c6fee7b Overload DEFINE_HEATER to take variable arguments
DEFINE_HEATER used to take 3 arguments.  Today it takes 4.  Soon it might
take 5.  The transition from 3 to 4 was painful while old config files
had not caught up to the new parameters.  Let's avoid the pain again in
the future by making this macro overloadable to accept any correct number
of arguments while doing the right thing.  Also let's accept 5 or 6
parameters so new configs will work with today's "older" code.
2017-03-21 14:50:28 +01:00
Phil Hord ab2c355821 Factor out some boilerplate code from configs
Configs are always included via a config_wrapper.h now, and configs always
must include this safety-definition for a missing DEFINE_HEATER.  Let's
simplify the configs by moving it to a common location.
2017-03-21 14:48:19 +01:00
Nico Tonnhofer f8c78e6384 heaters: add max heater value
You can reduce the max. power of each heater.
With the max_pwm value between 1 and 100% you reduce the active pwm.
For example you could reduce the power of your hotend.

My hotend for example is 12V 30W but connected to 24V. So it has
normally 120W. This is very huge. Setting the max_pwm to 25, it has
again ~30W.
2017-03-21 14:48:15 +01:00
Nico Tonnhofer 9033d86877 fast integer: uint_fast8_t and uint_fast16_t for some vars.
This will decrease the flash size and should increase performance.
In some cases this will increase the used ram slightly.

In total this path costs 28 bytes RAM and saves 88 bytes of Flash on a STM32.
AVRs are not affected by this commit.
2017-03-05 15:00:13 +01:00
Nico Tonnhofer dcd67e402a STM32F411: rework serial-stuff.
Simplify changing the USART for debug or serial output.
Implement all 3 USARTs for the stm32f411re.
2017-03-05 15:00:13 +01:00
Nico Tonnhofer 230572b1d0 STM32F411: simplify cmsis files for stm32f411
Delete some macros from cmsis-file we will never use again.
Also replace magic numbers.
Add missing flag to allow -O0 (using R7 as register)
2017-03-05 15:00:12 +01:00
Nico Tonnhofer dea9cec217 STM32F411: uff... ADC works. Really? Really!
Was a little bit tricky. When using ADC with DMA and infitiy readings, everthing is ok. But we don't need so much readings.
To read only one shot after starting the ADC, we need something more.
Disabling continuous conversion and unset the DMA bit. So conversion is stopped. Else the next conversion could start at any ADC.
For a restart just enable again the DMA bit, the continuous conversion and start the ADC.
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 767c4a6911 STM32F411: simplify analog readings
We don't need an interrupt for the DMA.
Simply clear and set the DMA-bit for the ADC is sufficient.
2017-03-03 18:54:57 +01:00
Nico Tonnhofer aeb98b557b STM32F411: cleanup code with using pinio.h macros. 2017-03-03 18:54:57 +01:00
Nico Tonnhofer 56c2238fef dda.c/dda_maths: add int_f_sqrt for controller with FPU
very fast sqrt in hardware
also accurate dda->c for high steps/mm without overflowing
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 7fcb8fd20c pinio.h: rename _PULLUP_OFF also on STM32 to _PULL_OFF
added also some information about possible modes
removed deprecated comment
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 0cfc503c4a STM32F411: easy change system clocks
- 96MHz
- 100MHz
- 108MHz

100MHz is standard now. 108MHz was possible on a first test, but is not recommended for real systems!
2017-03-03 18:54:57 +01:00
Nico Tonnhofer dc9e016e2c STM32F411: implement SPI
add some helpers in pinio.h also
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 7223c9dea8 ARM: split out spi-avr.c from spi.c 2017-03-03 18:54:57 +01:00
Nico Tonnhofer d9a350749d STM32F411: save cpu cycles are 160
Also, first interrupt should not occur at 0.
2017-03-03 18:54:57 +01:00
Nico Tonnhofer ab03852750 STM32F411: add cpu-stm32.c 2017-03-03 18:54:57 +01:00
Nico Tonnhofer a4083dc360 ARM: rename cpu-arm.c to cpu-lpc.c 2017-03-03 18:54:57 +01:00
Nico Tonnhofer dee35e2c02 STM32F411: enable temperature control. 2017-03-03 18:54:57 +01:00
Nico Tonnhofer 6f334be231 STM32F411: support inverted heater pin signals. 2017-03-03 18:54:57 +01:00
Nico Tonnhofer afc4c3e8e4 STM32F411: Allow non-PWM pins as heater output. 2017-03-03 18:54:57 +01:00
Nico Tonnhofer 423c5694d0 STM32F411: Respect configured PWM frequencies in heater-stm32.c
Test: the PWM frequency on the scope should be similar to the
one configures in the board file with DEFINE_HEATER().
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 06c6aed23d STM32F411: Turn on only timers needed in heater-stm32.c
Test: PWM pins work as before.
2017-03-03 18:54:57 +01:00
Nico Tonnhofer 12691b4488 STM32F411: Implement heater_set() in heater-stm32.c.
Works very nicely from full off (M106 S0) to full on (M106 S255).

Test: M106 should work now as expected. M106 S0 should turn full
off, M106 S255 should turn full on, both without any spike on the
scope.
2017-03-03 18:54:57 +01:00