mirror of
https://github.com/digistump/DigistumpArduino.git
synced 2025-04-27 23:29:01 -07:00
61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
TinyPinChange library
|
|
=====================
|
|
|
|
**TinyPinChange** is an asynchronous (interrupt-driven) library designed to detect event (rising or falling edege) on pins.
|
|
|
|
Very often in the arduino world, users complain about conflicts between libraries.
|
|
|
|
This **TinyPinChange** library allows to share the "pin change interrupt" vector for several "clients".
|
|
|
|
For example, it's possible to use the **SoftRcPulseIn** library whilst using the **SoftSerial** library: both libraries rely on the **TinyPinChange** library.
|
|
|
|
Some examples of use cases:
|
|
-------------------------
|
|
* **Event detector** (on pins)
|
|
* **Frequency meter**
|
|
* **Pulse width meter**
|
|
* **Tachometer**
|
|
* **Duty cycle measurement**
|
|
* **Software serial port** (see **SoftSerial** library which relies on TinyPinChange)
|
|
|
|
Supported Arduinos:
|
|
------------------
|
|
* **ATmega368 (UNO)**
|
|
* **ATmega2560 (MEGA)**
|
|
* **ATtiny84 (Standalone)**
|
|
* **ATtiny85 (Standalone or Digispark)**
|
|
* **ATtiny167 (Digispark pro)**
|
|
|
|
Tip and Tricks:
|
|
--------------
|
|
Develop your project on an arduino UNO or MEGA, and then shrink it by loading the sketch in an ATtiny or Digispark (pro).
|
|
|
|
API/methods:
|
|
-----------
|
|
* TinyPinChange_Init()
|
|
* TinyPinChange_RegisterIsr()
|
|
* TinyPinChange_EnablePin()
|
|
* TinyPinChange_DisablePin()
|
|
* TinyPinChange_GetPortEvent()
|
|
* TinyPinChange_GetCurPortSt()
|
|
* TinyPinChange_PinToMsk()
|
|
* TinyPinChange_Edge()
|
|
* TinyPinChange_RisingEdge
|
|
* TinyPinChange_FallingEdge
|
|
|
|
Design considerations:
|
|
---------------------
|
|
On the arduino MEGA, as all the pins do not support "pin change interrupt", only the following pins are supported:
|
|
|
|
* 10 -> 15
|
|
* 50 -> 53
|
|
* A8 -> A15
|
|
|
|
On other devices (ATmega328, ATtiny84, ATtiny85 and ATtiny167), all the pins are usable.
|
|
|
|
Contact
|
|
-------
|
|
|
|
If you have some ideas of enhancement, please contact me by clicking on: [RC Navy](http://p.loussouarn.free.fr/contact.html).
|
|
|