- removed ROW1 and COL1 dependencies that are defined in the bbc-microbit
family of mbed targets, so that microbit-dal can be compiled for other mbed
- removed legacy reference to the default microbitMatrixMap in
MicroBitDisplay, in favour of the map configured through the constructor.
- Introduced an overload to MicroBitIOPin::getDigitalValue() to permit the
setting of a specific pull mode at the time of reading.
- Bugfix of MicroBitIOPin::setPull() to persist preferred pull settings
- Added configuration options to allow the default PullMode to be set via
compile time option through MicroBitConfig.h or YOTTA_CONFIG
Added a blocking send to the UART service for the case when the bytes
to transmit is greater than the size of the transmission buffer.
The characteristics have now diverged from the BLE_API’s
implementation, and are now more semantic.
Send now returns an error code if there is no device connected, or
indications have not been enabled.
Debug statements have also been removed.
By replacing the addition operator with a friend operator, order of
operations doesn’t matter, provided that at least one argument is a
ManagedString a = "A"; // OK
ManagedString b = a + ", " + 2; // OK
ManagedString c = "a" + a + 2; // OK
ManagedString d = 1 + "," + 2; // FAILS
Increased granularity of system timer.
Added events for Rise, Fall, Pulse HI and Pulse LO.
Pulse HI/LO events give the time that the pin was HI or LO for using the timestamp field of the MicroBitEvent.
Added setPull() to configure the pull of the pin when in a digital input mode.
Issue #140 highlighted the fact there would be multiple writes of the
same data when storing calibration information.
This patch introduces a memcmp before initiating the storage of
KeyValuePairs in the “put” member function.
Issue #129 illustrated that panic is capable of accepting numbers in
the range 0-999 and should therefore not have an arbitrary range of
Additionally, this commit introduces gaps between consecutive numbers
of the same value e.g. 999. As a result, the speed of panic has also
In SYNC_SLEEP and SYNC_SPINWAIT modes the maximum length that could be
sent was always dictated by the buffer size.
This was incorrect as these two modes should wait until all characters
have been transmitted from the given buffer before returning control to
ASYNC mode will still return immediately after copying the number of
bytes available in the TX buffer.
#90 illustrated out that even though 3 pins have the required pull ups
to perform resistive “touch” sensing, developers may want to attach
their own pull ups and use MicroBitPins as resistive inputs more
This patch removes PIN_CAPABILITY_TOUCH, as all pins with
PIN_CAPABILITY_DIGITAL can become a resistive input.
N.b. In order to utilise pins used by the display, the display MUST be
Ammended basic gesture recogniser to correclty generate threshold events for
high G forces (3G, 6G and 8G threshold events).
Also refined semantics such that events for any given impulse will be
generated for ALL thresholds below that below. e.g a 7G impulse will now raise
both the 3G and 6G threshold events.
This new member function allows the configuration of the pull currently
applied to the MicroBitPin instance. This member function only has
affect when the MicroBitPin instance is in a digital input mode.
Added rise, fall, pulse HI and LO events.
The pulse Hi and LO event timestamp given in the MicroBitEvent is the
duration for which the input was HI or LO for.
eventOn(int eventType) is used to configure the events generated
from the pin instance.
Added an mbed Timer instance to maintain a microsecond level timestamp.
Added a function system_timer_current_time_us() which now returns the
time since power on in microseconds.
MicroBitEvents now call system_timer_current_time_us() giving
microsecond level timestamps.