The heap printing in MicrobitHeapAllocator is really useful for
gauging how much memory is free at various points in the program.
Specifically, by calling this after the uBit object is created we
can start to measure a high-water-mark for RAM and track it over
releases, etc
Updates to LSM303 magnetometer driver to:
- Configure for a clean DATA_READY signal, disabling all other interrupt
sources
- Correct the interrupt polarity
Updates to MicroBitCompass to:
- Define configure() as virtual, to enable applicaiton uses to correclty
configure all magnetometers for update period.
This patch:
- Corrects the getPitch() and getRoll() methods to use normalized data from accelerometer sensors.
- Provides a compile time option (default: enabled) to provide full range 0..360 degree pitch data
that is consistent with the rage of the roll data.
- Updates the tilt compensated compass heading calculation to use normalized data from accelerometer sensors.
In upcoming commits I will add the ability to add/ignore listeners based also on the given listener cb_arg. With the possibility of multiple handlers being deleted at once, it's useful to application developers to be able to inspect what is being removed.
These values are determined from
http://infocenter.nordicsemi.com/pdf/S130_SDS_v1.0.pdf
pg 41
It appears using S130v2 would allow even lower memory consumption
This is for use in conjunction with the
bbc-microbot-classic-gcc-s130
target, which also needs a fix before it will work.
MicroBitCompassCalibrator
- A new form of constructor now allows for a persistent storage object to be
provided. If present, compass calibration data will be automatically
stored and retrieved from FLASH when needed.
- Matrix4 was used only for the least mean squres calculation as part of the
MicroBitCompassCalibrator. This has now been replace with an itereative
approximation algorithm.
- Add mutator to allow accelerometer to be added to a compass after construction
- Use floating point values for Sample3D:dSquared() operations to resmove possible overflow
- Change compass calibration hill climb algorithm to use 100 unit steps to converge faster.
- Update autodetect functions to register accelerometer instances with compass instances upon detection
- Clean and fix axis alignments for tilt compensation algorithm
- Autodetection logic added to MicroBitAccelerometer/MicroBitCompass
- Added single byte I2C read utility function into MicroBitI2C
- Added isDetected() method into sensor drivers
- Add pin mapping for third interrupt line as used by FXOS8700
- Move FXOS to open drain interrupt configuration
- Add pullup onto interrupt line to FXOS
* Movd MICROBIT_MODE_* defines to MicroBitConfig.h
* Search for embedded source and remove magic
* Fixed memcpy
* Change offset order
* Fixed memcpy for data
Name the quadrature QDEC_USE_xx rather than QDEC_USING_xx, because they
represent intent rather than status.
Also fixes bug where system tick wouldn't be registered at start() when
configured to do so.