#include <WProgram.h>
#include <pins_arduino.h>
#include <inttypes.h>
Go to the source code of this file.
| 
Defines | 
| #define | ATOMIC_BLOCK(dummy)   if(true) | 
| #define | ATOMIC_RESTORESTATE | 
| #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 ATOMIC_BLOCK | ( |  | dummy | ) | if(true) | 
      
 
 
      
        
          | #define ATOMIC_RESTORESTATE | 
      
 
 
      
        
          | #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 143 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); | 
      
 
 
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 95 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 76 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 65 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 52 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 35 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 159 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 108 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 190 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 264 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 181 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 176 of file FastIO.cpp.