AberLED shield library
Library for the bicolor LED (and TFT screen) shield used in CS12020
Public Types | Static Public Member Functions | List of all members
_ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR > Class Template Reference

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>

Public Types

typedef volatile uint32_t * port_ptr_t
 
typedef uint32_t port_t
 

Static Public Member Functions

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))
 

Detailed Description

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.

Member Typedef Documentation

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

Definition at line 204 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 uint32_t _ARMPIN< PIN, _MASK, _PDOR, _PSOR, _PCOR, _PTOR, _PDIR, _PDDR >::port_t

Definition at line 205 of file TFT_FastPin.h.

Member Function Documentation

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

Definition at line 220 of file TFT_FastPin.h.

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

Definition at line 210 of file TFT_FastPin.h.

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

Definition at line 218 of file TFT_FastPin.h.

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

Definition at line 222 of file TFT_FastPin.h.

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

Definition at line 211 of file TFT_FastPin.h.

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

Definition at line 219 of file TFT_FastPin.h.

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

Definition at line 223 of file TFT_FastPin.h.

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

Definition at line 225 of file TFT_FastPin.h.

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

Definition at line 224 of file TFT_FastPin.h.

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

Definition at line 212 of file TFT_FastPin.h.

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

Definition at line 208 of file TFT_FastPin.h.

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

Definition at line 207 of file TFT_FastPin.h.

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

Definition at line 214 of file TFT_FastPin.h.

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

Definition at line 216 of file TFT_FastPin.h.


The documentation for this class was generated from the following file: