* Add eeprom reset with key
* small improvements
* increased robustness against accidental erase of EEPROM.
Co-authored-by: Tjeerd <tjeerdie@users.noreply.github.com>
* Boost by Gear
* Minor changes to PR
- Changed *2 into bitwise operator
- Reserved 1 extra bit for boostByGearEnabled for 2 additional boost by gear modes in the future
* Added mode to set percentage of boost target table
* Boost by Gear (Open loop)
Added Boost by Gear to open loop boost control
* Bi-linear interpolation - round towards nearest integer
Add the equivalent of 0.5 to the final calculation pre-rounding.
This will have the effect of rounding to the nearest integer, rather
than truncating. I.e. rounding down
* Unit tests: isolate table tests and check interpolation x/y bins
* Unit tests: add native table3d tests
* Unit tests: derive min/max from axis test values
* Unit tests: more detailed messages
* Unit tests: fix rounding & unit tests
* Performance
* Performance: use uint16_t instead of unsigned long
for the fixed point math: we only need the fractional
part. I.e. 1.16 not 16.16
* Use narrowest possible type
* Optimise bin position logic for performance
* Only promote to uint32_t when really required.
* Simplify bin checks - no zero width bins
* Save memory: use a single byte for the last bin caches
* Performance: increment pointers instead of
repeatedly dereferncing array by index.
* Comments
* Incorrect array underrun logic
* Rename type, comments
* Fix unit tests
* Added PWM Fan functionality
PWM Fan output for Teensy and STM32
* Teensy3.5 timer fix for PWM Fan.
* Fix the conflicts with incorporate AFR
* Possibility to use PWM fan on mega too
Not tested at this stage!! Do not merge yet.
* Fix log entry size
* Remove duplicate stuff and use same way off toggling fan
* Fix typo errors
* Move fan pin definitions to globals.h
* Fix problems related to PWM fan.
* Revert previous change.
* Fix problems with idle things
* fix idle duty getting stuck at 100%
* Revert "fix idle duty getting stuck at 100%"
This reverts commit 7e9779483b.
* Revert "Fix problems with idle things"
This reverts commit 8bccb56d9a.
* Revert "Revert previous change."
This reverts commit fcb962864a.
* Remove mega support
* fixes
* more fixes
* moar fixes
* Should be working now
* Update speeduino.ini
* Lots of tweaking
* Update to work better with current FW
* Fix compiler warnings and include update things.
* Minor fixes
* Update logger.ino
* Fan duty working on mega too and fan output will be on/off
Co-authored-by: Pasi Kemppainen <pazi88@users.noreply.github.com>
* Use table_row_iterator_t to adjust ignitionTable
* Separate 2d & 3d table code, abstract page to table iterator conversion.
This is just moving code around in preparation for future changes.
* Reduce table RAM (.bss) usage
Generate a separate type for each possible
3d axis & size combination.
This turns what was runtime information into
compile time data.
* Save 1 byte per table.
Use a flag value (INT16_MAX) instead of a separate boolean
flag
* File renaming
table_iterator -> table3d_iterator.h
table3d.h -> table3d_interpolate.h
table3d.cpp -> table3d_interpolate.cpp
table3d_types.h -> table3d.h
* Optimize page.cpp: reduce code clutter, maintain performance
* Reduce flash usage
* Encapsulate table metadata
* Performance - hoist if statement
* Replace function with macro
* Use a packed enum as a type identifier
Use a packed enum as a type identifier
Slimmer data types
* Use table iterators for random access to table
values and axis.
* Centralize write buffer check
* Encapsulate 16-bit reference concept
* Performance: make table iterators proper classes
This allows us to chain calls on temporaries - not possible
with regular function calls.
* Performance: encapsulate EEPROM update
& address increment
* Save flash - don't duplicate function
* Performance: directly invalidate table cache
* Separate out iterator reversal
* Separate out entity mapping & per-byte access
Much faster, smaller code footprint & easier to understand
* Code quality fixes
* Separate out axis metadata
* Doxygen comments
* Separate int16_ref into separate file
* Separate out table axies & values into separate types
No need for metadata types & more localised code.
E.g. creating iterators is now alongside the data over
which they iterate.
* Doxygen