Template definition for teensy 3.0 style ARM pins, providing direct access to the various GPIO registers. Note that this uses the full port GPIO registers. In theory, in some way, bit-band register access -should- be faster, however I have found that something about the way gcc does register allocation results in the bit-band code being slower. It will need more fine tuning.
More...
#include <TFT_FastPin.h>
|
static void | setOutput () |
|
static void | setInput () |
|
static void | hi () __attribute__((always_inline)) |
|
static void | lo () __attribute__((always_inline)) |
|
static void | set (register port_t val) __attribute__((always_inline)) |
|
static void | strobe () __attribute__((always_inline)) |
|
static void | toggle () __attribute__((always_inline)) |
|
static void | hi (register port_ptr_t port) __attribute__((always_inline)) |
|
static void | lo (register port_ptr_t port) __attribute__((always_inline)) |
|
static void | fastset (register port_ptr_t port, register port_t val) __attribute__((always_inline)) |
|
static port_t | hival () __attribute__((always_inline)) |
|
static port_t | loval () __attribute__((always_inline)) |
|
static port_ptr_t | port () __attribute__((always_inline)) |
|
static port_t | mask () __attribute__((always_inline)) |
|
template<uint8_t PIN, uint32_t _MASK, typename _PDOR, typename _PSOR, typename _PCOR, typename _PTOR, typename _PDIR, typename _PDDR>
class _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >
Template definition for teensy 3.0 style ARM pins, providing direct access to the various GPIO registers. Note that this uses the full port GPIO registers. In theory, in some way, bit-band register access -should- be faster, however I have found that something about the way gcc does register allocation results in the bit-band code being slower. It will need more fine tuning.
Definition at line 202 of file TFT_FastPin.h.
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
typedef volatile uint32_t* _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::port_ptr_t |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
typedef uint32_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::port_t |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::fastset |
( |
register port_ptr_t |
port, |
|
|
register port_t |
val |
|
) |
| |
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::hi |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::hi |
( |
register port_ptr_t |
port | ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static port_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::hival |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::lo |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::lo |
( |
register port_ptr_t |
port | ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static port_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::loval |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static port_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::mask |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static port_ptr_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::port |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::set |
( |
register port_t |
val | ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::setInput |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::setOutput |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::strobe |
( |
| ) |
|
|
inlinestatic |
template<uint8_t PIN, uint32_t _MASK, typename _PDOR , typename _PSOR , typename _PCOR , typename _PTOR , typename _PDIR , typename _PDDR >
static void _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::toggle |
( |
| ) |
|
|
inlinestatic |
The documentation for this class was generated from the following file: