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
Updates to LSM303 magnetometer driver to:
- Configure for a clean DATA_READY signal, disabling all other interrupt
- Correct the interrupt polarity
Updates to MicroBitCompass to:
- Define configure() as virtual, to enable applicaiton uses to correclty
configure all magnetometers for update period.
- 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
It appears using S130v2 would allow even lower memory consumption
This is for use in conjunction with the
target, which also needs a fix before it will work.
- 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.
- 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
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.