digitalPinFast

More speed for digitalPin operations. This library provide basic digital commands (pinMode, digitalRead, digitalWrite) without CLI and Timer controls, for more executing speed.


Keywords
signal, input, output, arduino, arduino-library, fast-io
License
GPL-3.0
Install
platformio lib install 12018

Documentation

GitHub release (latest by date) GitHub Release Date GitHub commits since latest release (by date) Hits GitHub issues Fork Stars License Total Downloads

Indice


Fast Digital Pin

Questa libreria e' pensata per quelle applicazione dove un numero limitato di pin vengono usati con molta frequenza, pertanto velocizzare il loro utilizzo diventa molto importante.

La libreria permette di velocizzare il comando dei pin digitali (pinMode, digitalWrite, digitalRead) andando a calcolare, una sola volta al momento della creazione dell'Oggetto i parametri richiesti (porta, bit, registri) per i pin su cui si vogliono utilizzare le funzioni fast.

ATTENZIONE: Questa velocizzazione viene ottenuta ospitando in SRAM l'oggetto contenente i dati del pin; ogni Oggetto pesa 6 Byte!

I meotdi forniti dalla libreria non disattivano gli interrupt e non eseguono i controlli sui Timer/PWM, pertanto il suo utilizzo e' pensato per utenti piu' esperti.

Video Presentazione del Progetto:

Video Presentazione


Inizializzazione

L'inizializzazione dell'oggetto avviene al momento della sua Creazione


digitalPinFast(uint8_t pinNumber);

Dichiarazione dell'Oggetto digitalPinFast, l'argomento da passare e' il numero del pin sul quale creare l'oggetto. Deve essere un pin Digital.


Metodi Disponibili

I seguenti metodi sono forniti dalla libreria per sostituire i comandi di default.


void pinModeFast(uint8_t mode)

Analogo a pinMode, evita controlli su pin PWM e NON disabilita gli interrupt.

  • Input
    • la nuova configurazione del pin
  • Restituisce:
    • nulla

uint8_t digitalReadFast(void);

Analogo a digitalRead, evita controlli su pin PWM e NON disabilita gli interrupt.

  • Input:
    • nulla
  • Restituisce:
    • il valore logico letto sul pin

void digitalWriteFast(uint8_t val);

Analogo a digitalWrite, evita controlli su pin PWM e NON disabilita gli interrupt.

  • Input:
    • il nuovo stato del pin
  • Restituisce:
    • nulla

void setNewFastPin(uint8_t pinNumber);

Serve a modificare il pin a cui e' collegato l'oggetto.

  • Input:
    • il numero del nuovo pin su cui si vogliono utilizzare i metodi Fast
  • Restituisce:
    • nulla

Distruzione

L'oggetto puo' essere distrutto.

~digitalPinFast(void);

Al momento della distruzione il pin viene messo nello stato di INPUT per evitare danneggiamenti accidentali.