GY-63_MS5611/libraries/NibbleArray
2024-04-13 10:35:57 +02:00
..
.github bulk update GitHub actions 2024-04-13 10:35:57 +02:00
examples 0.2.5 nibbleArray 2023-02-09 11:31:57 +01:00
test 0.2.5 nibbleArray 2023-02-09 11:31:57 +01:00
.arduino-ci.yml 0.2.4 NibbleArray 2022-11-18 15:35:51 +01:00
CHANGELOG.md 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00
keywords.txt 0.2.5 nibbleArray 2023-02-09 11:31:57 +01:00
library.json 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00
library.properties 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00
LICENSE bulk update GitHub actions 2024-04-13 10:35:57 +02:00
nibbleArray.cpp 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00
nibbleArray.h 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00
README.md 0.2.6 NibbleArray 2023-11-14 16:58:10 +01:00

Arduino CI Arduino-lint JSON check GitHub issues

License: MIT GitHub release PlatformIO Registry

nibbleArray

Arduino library for a compact array of nibbles (4 bit units).

Description

A nibble is a 4 bit element, which can hold a value 0..15 (0..F in HEX). It can be seen as an uint4_t type.

The nibbleArray is an array that stores 2 nibbles in a byte therefore it is twice as small as a normal array.

The current implementation can hold 510 elements. This is due a limitation of the UNO which can allocate max 255 bytes in one malloc() call.

This NIBBLEARRAY_MAXSIZE can be defined compile time "-D NIBBLEARRAY_MAXSIZE" or one can adjust it in the library if other platforms can allocate more memory.

The BitArray library is one from a set of three:

Interface

#include "nibbleArray.h"

Constructor

  • nibbleArray(uint16_t size) constructor
  • uint16_t size() returns the size of the array.
  • uint16_t memory() returns the memory used in bytes.

Base

  • uint8_t set(uint16_t index, uint8_t value) set a value in the nibbleArray. Index must be in range otherwise 0xFF = NIBBLEARRAY_ERROR_INDEX will be returned. If value > 15 it will be truncated.
  • uint8_t get(uint16_t index) get value from the nibbleArray. Index must be in range otherwise 0xFF = NIBBLEARRAY_ERROR_INDEX will be returned.
  • void clear() set all elements to 0.
  • void SetAll(uint8_t value) set all elements to value (0..15). If value > 15 it will be truncated.

Future

Must

  • add a begin() function that does the work now done in constructor (0.3.0)
    • similar to bitArray and BoolArray classes.

Should

  • align interface with BoolArray and bitArray.
    • is there some base class?
    • align error codes.
  • allow larger allocations for non AVR, how?
    • don't test for size, user responsibility?

Could

  • implement NIBBLEARRAY_ERROR_VALUE for set and setAll ??
    • for now user responsibility.

Wont

  • setAll( f() ) - fill the array by calling a function n times?

Support

If you appreciate my libraries, you can support the development and maintenance. Improve the quality of the libraries by providing issues and Pull Requests, or donate through PayPal or GitHub sponsors.

Thank you,