#include <WProgram.h>
#include <pins_arduino.h>
#include <inttypes.h>
#include <util/delay.h>
Go to the source code of this file.
Defines |
#define | fio_digitalWrite_HIGH(reg, bit) digitalWrite(bit,HIGH) |
#define | fio_digitalWrite_LOW(reg, bit) digitalWrite(bit,LOW) |
#define | fio_digitalWrite_SWITCH(reg, bit) digitalWrite(bit, !digitalRead(bit)) |
#define | fio_digitalWrite_SWITCHTO(reg, bit, val) digitalWrite(bit,val); |
#define | FIO_FALLBACK |
#define | SKIP 0x23 |
Typedefs |
typedef uint8_t | fio_bit |
typedef uint8_t | fio_register |
Functions |
int | fio_digitalRead (fio_register pinRegister, fio_bit pinBit) |
void | fio_digitalWrite (fio_register pinRegister, fio_bit pinBit, uint8_t value) |
fio_bit | fio_pinToBit (uint8_t pin) |
fio_register | fio_pinToInputRegister (uint8_t pin) |
fio_register | fio_pinToOutputRegister (uint8_t pin, uint8_t initial_state=LOW) |
void | fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit) |
void | fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit, uint8_t value, uint8_t bitOrder) |
void | fio_shiftOut1 (fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch=false) |
void | fio_shiftOut1 (uint8_t pin, uint8_t value, boolean noLatch=false) |
void | fio_shiftOut1_init (fio_register shift1Register, fio_bit shift1Bit) |
void | fio_shiftOut1_init (uint8_t pin) |
Define Documentation
#define fio_digitalWrite_HIGH |
( |
|
reg, |
|
|
|
bit |
|
) |
| digitalWrite(bit,HIGH) |
This is where the magic happens that makes things fast. Implemented as preprocessor directives to force inlining SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known.
Definition at line 126 of file FastIO.h.
#define fio_digitalWrite_LOW |
( |
|
reg, |
|
|
|
bit |
|
) |
| digitalWrite(bit,LOW) |
#define fio_digitalWrite_SWITCH |
( |
|
reg, |
|
|
|
bit |
|
) |
| digitalWrite(bit, !digitalRead(bit)) |
#define fio_digitalWrite_SWITCHTO |
( |
|
reg, |
|
|
|
bit, |
|
|
|
val |
|
) |
| digitalWrite(bit,val); |
Enables IO digitalRead/digitalWrite fall back for non-AVR architectures.
Definition at line 49 of file FastIO.h.
Skip setting IO outputs during IO configuration or when getting the output register associated to an IO pin.k
Definition at line 59 of file FastIO.h.
Typedef Documentation
Function Documentation
direct digital read without any checks falls back to normal digitalRead if fast io is disabled
- Parameters:
-
pinRegister[in] | Register - ignored if fast io is disabled |
pinBit[in] | Bit - Pin if fast io is disabled |
- Returns:
- Value read from pin
Definition at line 87 of file FastIO.cpp.
direct digital write without any checks falls back to normal digitalWrite if fast io is disabled
- Parameters:
-
pinRegister[in] | Register - ignored if fast digital write is disabled |
pinBit[in] | Bit - Pin if fast digital write is disabled |
value[in] | desired output |
Definition at line 71 of file FastIO.cpp.
fio_bit fio_pinToBit |
( |
uint8_t |
pin | ) |
|
Find the bit which belongs to specified pin if fast digitalWrite is disabled this function returns the pin
- Parameters:
-
pin[in] | Number of a digital pin |
- Returns:
- Bit
Definition at line 61 of file FastIO.cpp.
Get the input register for specified pin. if fast digital IO is disabled this function returns NULL
- Parameters:
-
pin[in] | Number of a digital pin |
- Returns:
- Register
Definition at line 49 of file FastIO.cpp.
fio_register fio_pinToOutputRegister |
( |
uint8_t |
pin, |
|
|
uint8_t |
initial_state = LOW |
|
) |
| |
Get the output register for specified pin. if fast digital IO is disabled this function returns NULL
- Parameters:
-
pin[in] | Number of a digital pin |
- Returns:
- Register
Definition at line 33 of file FastIO.cpp.
faster shift out clear using fast digital write falls back to normal digitalWrite if fastio is disabled
- Parameters:
-
dataRegister[in] | Register of data pin - ignored if fast digital write is disabled |
dataBit[in] | Bit of data pin - Pin if fast digital write is disabled |
clockRegister[in] | Register of data pin - ignored if fast digital write is disabled |
clockBit[in] | Bit of data pin - Pin if fast digital write is disabled |
Definition at line 126 of file FastIO.cpp.
faster shift out using fast digital write falls back to normal digitalWrite if fastio is disabled
- Parameters:
-
dataRegister[in] | Register of data pin - ignored if fast digital write is disabled |
dataBit[in] | Bit of data pin - Pin if fast digital write is disabled |
clockRegister[in] | Register of data pin - ignored if fast digital write is disabled |
clockBit[in] | Bit of data pin - Pin if fast digital write is disabled |
bitOrder[in] | bit order |
Definition at line 100 of file FastIO.cpp.
void fio_shiftOut1 |
( |
fio_register |
shift1Register, |
|
|
fio_bit |
shift1Bit, |
|
|
uint8_t |
value, |
|
|
boolean |
noLatch = false |
|
) |
| |
one wire shift out protocol needs initialisation (fio_shiftOut1_init)
- Parameters:
-
shift1Register[in] | pins register |
shift1Bit[in] | pins bit |
value[in] | value to shift out, last byte is ignored and always shifted out LOW |
Definition at line 149 of file FastIO.cpp.
void fio_shiftOut1 |
( |
uint8_t |
pin, |
|
|
uint8_t |
value, |
|
|
boolean |
noLatch = false |
|
) |
| |
one wire shift out protocol needs initialisation (fio_shiftOut1_init)
- Parameters:
-
pin[in] | digital pin |
value[in] | value to shift out, last byte is ignored and always shifted out LOW |
Definition at line 214 of file FastIO.cpp.
initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.
- Parameters:
-
shift1Register[in] | pins register |
shift1Bit[in] | pins bit |
Definition at line 142 of file FastIO.cpp.
void fio_shiftOut1_init |
( |
uint8_t |
pin | ) |
|
initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.
- Parameters:
-
Definition at line 137 of file FastIO.cpp.