|
MHVLib
20111227
An efficiency oriented runtime library for AVR microcontrollers
|
#include <avr/io.h>#include <inttypes.h>#include <stddef.h>#include <util/atomic.h>Go to the source code of this file.
Classes | |
| struct | mhv_pin |
Defines | |
| #define | MHV_IO_H_ |
| #define | NORETURN __attribute__ ((noreturn)) |
| #define | UNREACHABLE __builtin_unreachable(); |
| #define | PURE __attribute__ ((pure)) |
| #define | GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) |
| #define | MHV_MAKE_PIN(_mhv_port, _mhv_bit) _MHV_MAKE_PIN(_mhv_port, _mhv_bit) |
| #define | _MHV_MAKE_PIN(_mhv_port, _mhv_bit) MHV_PIN_ ## _mhv_port ## _mhv_bit |
| #define | MHV_DECLARE_PIN(_mhvPrefix) |
| #define | MHV_PIN_PARMS(_mhvPrefix) _mhvPrefix ## Dir, _mhvPrefix ## Out, _mhvPrefix ## In, _mhvPrefix ## Pin, _mhvPrefix ## PinchangeInterrupt |
| #define | mhv_pin(mhvParms) _mhv_pin(mhvParms) |
| #define | _mhv_pin(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) {mhvDir, mhvOutput, mhvInput, _BV(mhvBit), mhvPCInt} |
| #define | MHV_BYTESIZEOF(_mhvItem) (uint8_t)(sizeof(_mhvItem)) |
| #define | mhv_out(mhvParms) _mhv_out(mhvParms) |
| #define | _mhv_out(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) mhvOutput |
| #define | mhv_in(mhvParms) _mhv_in(mhvParms) |
| #define | _mhv_in(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) mhvInput |
| #define | mhv_bit(mhvParms) _mhv_bit(mhvParms) |
| #define | _mhv_bit(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) mhvBit |
| #define | mhv_dir(mhvParms) _mhv_dir(mhvParms) |
| #define | _mhv_dir(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) mhvDir |
| #define | mhv_pcint(mhvParms) _mhv_pcint(mhvParms) |
| #define | _mhv_PCInt(mhvDir, mhvOutput, mhvInput, mhvBit, mhvPCInt) mhvPCInt |
| #define | mhv_declareExternalInterrupt(mhvInterruptParms, mhvFunction) _mhv_declareExternalInterrupt(mhvInterruptParms, mhvFunction) |
| #define | _mhv_declareExternalInterrupt(mhvInterruptHandler, mhvModeRegister, mhvModeBitshift, mhvFunction) ISR(mhvInterruptHandler) mhvFunction |
| #define | mhv_enableExternalInterrupt(mhvInterruptParms, mhvInterruptMode) |
| #define | _mhv_enableExternalInterrupt(mhvInterruptHandler, mhvModeRegister, mhvModeBitshift, mhvInterruptMode) *mhvModeRegister = (*mhvModeRegister & ~(0x03 << mhvModeBitshift)) | (mhvInterruptMode << mhvModeBitshift) |
Typedefs | |
| typedef struct mhv_pin | MHV_PIN |
| typedef enum mhv_interruptMode | MHV_INTERRUPTMODE |
Enumerations | |
| enum | mhv_interruptMode { MHV_INTERRUPT_LOW, MHV_INTERRUPT_CHANGE, MHV_INTERRUPT_FALLING, MHV_INTERRUPT_RISING } |
Functions | |
| void | mhv_pinOn (MHV_PIN *pin) |
| void | mhv_pinOnAtomic (MHV_PIN *pin) |
| void | mhv_pinOn (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinOnAtomic (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinOff (MHV_PIN *pin) |
| void | mhv_pinOffAtomic (MHV_PIN *pin) |
| void | mhv_pinOff (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinOffAtomic (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinSet (MHV_DECLARE_PIN(pin), bool state) |
| void | mhv_pinSetAtomic (MHV_DECLARE_PIN(pin), bool state) |
| void | mhv_setOutput (MHV_PIN *pin) |
| void | mhv_setOutputAtomic (MHV_PIN *pin) |
| void | mhv_setOutput (MHV_DECLARE_PIN(pin)) |
| void | mhv_setOutputAtomic (MHV_DECLARE_PIN(pin)) |
| void | mhv_setInput (MHV_PIN *pin) |
| void | mhv_setInputAtomic (MHV_PIN *pin) |
| void | mhv_setInput (MHV_DECLARE_PIN(pin)) |
| void | mhv_setInputAtomic (MHV_DECLARE_PIN(pin)) |
| void | mhv_setInputPullup (MHV_PIN *pin) |
| void | mhv_setInputPullupAtomic (MHV_PIN *pin) |
| void | mhv_setInputPullup (MHV_DECLARE_PIN(pin)) |
| void | mhv_setInputPullupAtomic (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinToggle (MHV_PIN *pin) |
| void | mhv_pinToggleAtomic (MHV_PIN *pin) |
| void | mhv_pinToggle (MHV_DECLARE_PIN(pin)) |
| void | mhv_pinToggleAtomic (MHV_DECLARE_PIN(pin)) |
| bool | mhv_pinRead (MHV_PIN *pin) |
| bool | mhv_pinRead (MHV_DECLARE_PIN(pin)) |
| void | mhv_memClear (void *bufIn, uint8_t len, uint8_t count) |
| void | mhv_memClear (void *bufIn, uint8_t len) |
| void | mhv_memClear (void *bufIn, uint8_t len, uint16_t count) |
| void | mhv_memClear (void *bufIn, uint16_t len) |
| void | mhv_memcpy (void *bufOut, void *bufIn, uint8_t len, uint8_t count) |
| void | mhv_memcpy (void *bufOut, void *bufIn, uint8_t len) |
| void | mhv_memcpy (void *bufOut, void *bufIn, uint8_t len, uint16_t count) |
| void | mhv_memcpy (void *bufOut, void *bufIn, uint16_t len) |
| void | mhv_memcpyTailFirst (void *bufOut, void *bufIn, uint8_t len, uint8_t count) |
| void | mhv_memcpyTailFirst (void *bufOut, void *bufIn, uint8_t len) |
| void | mhv_memcpyTailFirst (void *bufOut, void *bufIn, uint8_t len, uint16_t count) |
| void | mhv_memcpyTailFirst (void *bufOut, void *bufIn, uint16_t len) |
| #define _mhv_bit | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | mhvBit |
| #define _mhv_declareExternalInterrupt | ( | mhvInterruptHandler, | |
| mhvModeRegister, | |||
| mhvModeBitshift, | |||
| mhvFunction | |||
| ) | ISR(mhvInterruptHandler) mhvFunction |
| #define _mhv_dir | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | mhvDir |
| #define _mhv_enableExternalInterrupt | ( | mhvInterruptHandler, | |
| mhvModeRegister, | |||
| mhvModeBitshift, | |||
| mhvInterruptMode | |||
| ) | *mhvModeRegister = (*mhvModeRegister & ~(0x03 << mhvModeBitshift)) | (mhvInterruptMode << mhvModeBitshift) |
| #define _mhv_in | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | mhvInput |
| #define _MHV_MAKE_PIN | ( | _mhv_port, | |
| _mhv_bit | |||
| ) | MHV_PIN_ ## _mhv_port ## _mhv_bit |
| #define _mhv_out | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | mhvOutput |
| #define _mhv_PCInt | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | mhvPCInt |
| #define _mhv_pin | ( | mhvDir, | |
| mhvOutput, | |||
| mhvInput, | |||
| mhvBit, | |||
| mhvPCInt | |||
| ) | {mhvDir, mhvOutput, mhvInput, _BV(mhvBit), mhvPCInt} |
| #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) |
| #define mhv_bit | ( | mhvParms | ) | _mhv_bit(mhvParms) |
| #define MHV_BYTESIZEOF | ( | _mhvItem | ) | (uint8_t)(sizeof(_mhvItem)) |
| #define MHV_DECLARE_PIN | ( | _mhvPrefix | ) |
volatile uint8_t *_mhvPrefix ## Dir, volatile uint8_t *_mhvPrefix ## Out, \ volatile uint8_t *_mhvPrefix ## In, uint8_t _mhvPrefix ## Pin, \ int8_t _mhvPrefix ## PinchangeInterrupt
Get the list of parms for a pin declaration
| _mhvPrefix | the prefix to use for the variable names |
| #define mhv_declareExternalInterrupt | ( | mhvInterruptParms, | |
| mhvFunction | |||
| ) | _mhv_declareExternalInterrupt(mhvInterruptParms, mhvFunction) |
| #define mhv_dir | ( | mhvParms | ) | _mhv_dir(mhvParms) |
| #define mhv_enableExternalInterrupt | ( | mhvInterruptParms, | |
| mhvInterruptMode | |||
| ) |
| #define mhv_in | ( | mhvParms | ) | _mhv_in(mhvParms) |
| #define MHV_MAKE_PIN | ( | _mhv_port, | |
| _mhv_bit | |||
| ) | _MHV_MAKE_PIN(_mhv_port, _mhv_bit) |
| #define mhv_out | ( | mhvParms | ) | _mhv_out(mhvParms) |
| #define mhv_pcint | ( | mhvParms | ) | _mhv_pcint(mhvParms) |
| #define mhv_pin | ( | mhvParms | ) | _mhv_pin(mhvParms) |
| #define MHV_PIN_PARMS | ( | _mhvPrefix | ) | _mhvPrefix ## Dir, _mhvPrefix ## Out, _mhvPrefix ## In, _mhvPrefix ## Pin, _mhvPrefix ## PinchangeInterrupt |
| typedef enum mhv_interruptMode MHV_INTERRUPTMODE |
| enum mhv_interruptMode |
Situations that interrupts can be triggered on
| void mhv_memClear | ( | void * | bufIn, |
| uint8_t | len, | ||
| uint8_t | count | ||
| ) | [inline] |
| void mhv_memClear | ( | void * | bufIn, |
| uint8_t | len | ||
| ) | [inline] |
| void mhv_memClear | ( | void * | bufIn, |
| uint8_t | len, | ||
| uint16_t | count | ||
| ) | [inline] |
| void mhv_memClear | ( | void * | bufIn, |
| uint16_t | len | ||
| ) | [inline] |
| void mhv_memcpy | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len, | ||
| uint8_t | count | ||
| ) | [inline] |
| void mhv_memcpy | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len | ||
| ) | [inline] |
| void mhv_memcpy | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len, | ||
| uint16_t | count | ||
| ) | [inline] |
| void mhv_memcpy | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint16_t | len | ||
| ) | [inline] |
| void mhv_memcpyTailFirst | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len, | ||
| uint8_t | count | ||
| ) | [inline] |
| void mhv_memcpyTailFirst | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len | ||
| ) | [inline] |
| void mhv_memcpyTailFirst | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint8_t | len, | ||
| uint16_t | count | ||
| ) | [inline] |
| void mhv_memcpyTailFirst | ( | void * | bufOut, |
| void * | bufIn, | ||
| uint16_t | len | ||
| ) | [inline] |
| void mhv_pinOff | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinOff | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_pinOffAtomic | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinOffAtomic | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_pinOn | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinOn | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_pinOnAtomic | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinOnAtomic | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| bool mhv_pinRead | ( | MHV_PIN * | pin | ) | [inline] |
| bool mhv_pinRead | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_pinSet | ( | MHV_DECLARE_PIN(pin) | , |
| bool | state | ||
| ) | [inline] |
| void mhv_pinSetAtomic | ( | MHV_DECLARE_PIN(pin) | , |
| bool | state | ||
| ) | [inline] |
| void mhv_pinToggle | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinToggle | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_pinToggleAtomic | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_pinToggleAtomic | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setInput | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_setInput | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setInputAtomic | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_setInputAtomic | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setInputPullup | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_setInputPullup | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setInputPullupAtomic | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_setInputPullupAtomic | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setOutput | ( | MHV_PIN * | pin | ) | [inline] |
| void mhv_setOutput | ( | MHV_DECLARE_PIN(pin) | ) | [inline] |
| void mhv_setOutputAtomic | ( | MHV_PIN * | pin | ) | [inline] |