AVR common types and functions.
More...
#include <stdint.h>
Go to the source code of this file.
|
| #define | pin_2_ddr(_ref) |
| | Calculates the direct register from the pin register.
|
| |
| #define | pin_2_port(_ref) |
| | Calculates the port register from the pin register.
|
| |
| #define | ddr_2_pin(_ref) |
| | Calculates the pin register from the direct register.
|
| |
| #define | ddr_2_port(_ref) |
| | Calculates the port register from the direct register.
|
| |
| #define | port_2_ddr(_ref) |
| | Calculates the direct register from the port register.
|
| |
| #define | port_2_pin(_ref) |
| | Calculates the pin register from the port register.
|
| |
| #define | NIBBLE_SWAP(_b) |
| | Swaps the high and low nibbles (half bytes) of a byte.
|
| |
| #define | flag_is_set(_val, _b) |
| | Test whether bit _b in flags _val is set.
|
| |
| #define | flag_is_clear(_val, _b) |
| | Test whether bit _b in flags _val is set.
|
| |
| #define | make_port_mask1(_p0) |
| | Makes port mask.
|
| |
| #define | make_port_mask2(_p0, _p1) |
| | Makes port mask.
|
| |
| #define | make_port_mask3(_p0, _p1, _p2) |
| | Makes port mask.
|
| |
| #define | make_port_mask4(_p0, _p1, _p2, _p3) |
| | Makes port mask.
|
| |
| #define | make_port_mask5(_p0, _p1, _p2, _p3, _p4) |
| | Makes port mask.
|
| |
| #define | make_port_mask6(_p0, _p1, _p2, _p3, _p4, _p5) |
| | Makes port mask.
|
| |
| #define | make_port_mask7(_p0, _p1, _p2, _p3, _p4, _p5, _p6) |
| | Makes port mask.
|
| |
| #define | make_port_mask8(_p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7) |
| | Makes port mask.
|
| |
|
| typedef uint8_t | byte_t |
| | 8-bit type
|
| |
| typedef byte_t | pin_bit_t |
| | The type for specifying the pin bit.
|
| |
| typedef byte_t | port_mask_t |
| | The type for specifying the port mask.
|
| |
| typedef volatile byte_t *const | ddr_t |
| | Type for passing a reference to a direct register.
|
| |
| typedef volatile byte_t *const | port_t |
| | Type for passing a reference to a port register.
|
| |
| typedef volatile byte_t *const | pin_t |
| | Type for passing a reference to a pin register.
|
| |
AVR common types and functions.
- Author
- Simon Litt simon.nosp@m.@1it.nosp@m.t.net https://coding.1itt.net, https://github.com/SimonLitt
- Copyright
- GNU General Public License v3.0
void init_ddr(
ddr_t ddr, ddr_state state) {
*ddr = state;
}
int main(void) {
...
init_ddr(&DDRA, 0xFF);
...
}
volatile byte_t *const ddr_t
Type for passing a reference to a direct register.
Definition defs.h:93
*port = 0x0F;
}
int main(void) {
...
init_ddr(&DDRA, 0xFF);
...
}
uint8_t byte_t
8-bit type
Definition defs.h:64
#define port_2_pin(_ref)
Calculates the pin register from the port register.
Definition defs.h:108
volatile byte_t *const port_t
Type for passing a reference to a port register.
Definition defs.h:94
#define port_2_ddr(_ref)
Calculates the direct register from the port register.
Definition defs.h:107
◆ ddr_2_pin
| #define ddr_2_pin |
( |
| _ref | ) |
|
Value:
Calculates the pin register from the direct register.
◆ ddr_2_port
| #define ddr_2_port |
( |
| _ref | ) |
|
Value:
Calculates the port register from the direct register.
◆ flag_is_clear
| #define flag_is_clear |
( |
| _val, |
|
|
| _b ) |
Value:
Test whether bit _b in flags _val is set.
- Parameters
-
| _val | The flags value. |
| _b | The flag bit. |
◆ flag_is_set
| #define flag_is_set |
( |
| _val, |
|
|
| _b ) |
Value:
Test whether bit _b in flags _val is set.
- Parameters
-
| _val | The flags value. |
| _b | The flag bit. |
◆ make_port_mask1
| #define make_port_mask1 |
( |
| _p0 | ) |
|
Value:
Makes port mask.
- Returns
- Port mask
◆ make_port_mask2
| #define make_port_mask2 |
( |
| _p0, |
|
|
| _p1 ) |
Value:(_BV((_p0)) & _BV((_p1)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask3
| #define make_port_mask3 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask4
| #define make_port_mask4 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2, |
|
|
| _p3 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)) & _BV((_p3)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask5
| #define make_port_mask5 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2, |
|
|
| _p3, |
|
|
| _p4 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)) & _BV((_p3)) & _BV((_p4)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask6
| #define make_port_mask6 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2, |
|
|
| _p3, |
|
|
| _p4, |
|
|
| _p5 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)) & _BV((_p3)) & _BV((_p4)) & _BV((_p5)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask7
| #define make_port_mask7 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2, |
|
|
| _p3, |
|
|
| _p4, |
|
|
| _p5, |
|
|
| _p6 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)) & _BV((_p3)) & _BV((_p4)) & _BV((_p5)) & _BV((_p6)))
Makes port mask.
- Returns
- Port mask
◆ make_port_mask8
| #define make_port_mask8 |
( |
| _p0, |
|
|
| _p1, |
|
|
| _p2, |
|
|
| _p3, |
|
|
| _p4, |
|
|
| _p5, |
|
|
| _p6, |
|
|
| _p7 ) |
Value:(_BV((_p0)) & _BV((_p1)) & _BV((_p2)) & _BV((_p3)) & _BV((_p4)) & _BV((_p5)) & _BV((_p6)) & _BV((_p7)))
Makes port mask.
- Returns
- Port mask
◆ NIBBLE_SWAP
| #define NIBBLE_SWAP |
( |
| _b | ) |
|
Value:(((_b) << 4) | ((_b) >> 4))
Swaps the high and low nibbles (half bytes) of a byte.
- Parameters
-
- Returns
- Modified byte
◆ pin_2_ddr
| #define pin_2_ddr |
( |
| _ref | ) |
|
Value:
Calculates the direct register from the pin register.
◆ pin_2_port
| #define pin_2_port |
( |
| _ref | ) |
|
Value:
Calculates the port register from the pin register.
◆ port_2_ddr
| #define port_2_ddr |
( |
| _ref | ) |
|
Value:
Calculates the direct register from the port register.
◆ port_2_pin
| #define port_2_pin |
( |
| _ref | ) |
|
Value:
Calculates the pin register from the port register.
◆ byte_t
◆ ddr_t
Type for passing a reference to a direct register.
◆ pin_bit_t
The type for specifying the pin bit.
This is defined to transmit the port bit.
◆ pin_t
Type for passing a reference to a pin register.
◆ port_mask_t
The type for specifying the port mask.
It is defined to transmit the port mask.
◆ port_t
Type for passing a reference to a port register.
◆ nibble_swap()
Swaps the high and low nibbles (half bytes) of a byte.
If available, uses the SWAP instruction.
- Parameters
-
- Returns
- Modified byte