GY-63_MS5611/libraries/AsyncAnalog/README.md

56 lines
2.0 KiB
Markdown
Raw Normal View History

2021-01-29 06:31:58 -05:00
[![Arduino CI](https://github.com/RobTillaart/AsyncAnalog/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
2021-10-19 05:14:50 -04:00
[![Arduino-lint](https://github.com/RobTillaart/AsyncAnalog/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/AsyncAnalog/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/AsyncAnalog/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/AsyncAnalog/actions/workflows/jsoncheck.yml)
2021-01-29 06:31:58 -05:00
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/AsyncAnalog/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/AsyncAnalog.svg?maxAge=3600)](https://github.com/RobTillaart/AsyncAnalog/releases)
2021-10-19 05:14:50 -04:00
2021-01-29 06:31:58 -05:00
# AsyncAnalog
2021-12-13 13:46:42 -05:00
Arduino Library for async reading of an analogue pin. **\[AVR ONLY\]**.
2021-01-29 06:31:58 -05:00
## Description
2021-10-19 05:14:50 -04:00
AsyncAnalog is a library to read the analogue port of an AVR in an asynchronous way.
2021-01-29 06:31:58 -05:00
This means that the user must explicitly **start** the ADC, check if it is **ready**
and read out its **value**.
By using this class, the user prevents the (~112 uSec) blocking of the
**analogRead()** call, and gives the user the ability to do some processing.
The library works only for AVR boards now, other platforms might be supported in the future.
2021-10-19 05:14:50 -04:00
As the UNO has only one ADC that is multiplexed, one can only read one analogue pin
2021-01-29 06:31:58 -05:00
in async way simultaneously.
2021-12-13 13:46:42 -05:00
**Use with care**
2021-01-29 06:31:58 -05:00
2021-10-19 05:14:50 -04:00
## Interface
2021-01-29 06:31:58 -05:00
2021-10-19 05:14:50 -04:00
- **AsyncAnalog(uint8_t pin)** constructor, defines the analogue pin to use.
2021-01-29 06:31:58 -05:00
- **void start()** triggers a new ADC reading.
2021-12-13 13:46:42 -05:00
- **bool ready()** returns true if sample is complete.
- **int value()** returns the value.
2021-01-29 06:31:58 -05:00
2021-10-19 05:14:50 -04:00
2021-01-29 06:31:58 -05:00
## Operation
The example **asyncAnalogTest2.ino** shows a loop of 1000 analogReads and prints
2021-12-13 13:46:42 -05:00
over Serial at 115200 baud.
2021-01-29 06:31:58 -05:00
2021-10-19 05:14:50 -04:00
## Future
2021-12-13 13:46:42 -05:00
- improve documentation.
- investigate the performance gain.
- asyncAnalogTest2.ino is no good test.
- create examples
- real world examples preferred.
2021-10-19 05:14:50 -04:00
- investigate other platforms
- fall back to normal analogRead for non AVR platforms ?
-