author | Tero Marttila <terom@paivola.fi> |
Wed, 08 Oct 2014 23:19:03 +0300 | |
changeset 9 | 49643ef9d3d2 |
permissions | -rw-r--r-- |
9
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
#ifndef QMSK_PORT_H |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
#define QMSK_PORT_H |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
#include <avr/io.h> |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
5 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
6 |
typedef volatile uint8_t ioport_t; |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
7 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
static inline ioport_t tbi(ioport_t *port, uint8_t bit) |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
9 |
{ |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
return *port & (1 << bit); |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
} |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
static inline void sbi(ioport_t *port, uint8_t bit) |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
{ |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
*port |= (1 << bit); |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
16 |
} |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
18 |
static inline void cbi(ioport_t *port, uint8_t bit) |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
19 |
{ |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
20 |
*port &= ~(1 << bit); |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
21 |
} |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
22 |
|
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
23 |
static inline void xbi(ioport_t *port, uint8_t bit) |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
24 |
{ |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
25 |
*port ^= (1 << bit); |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
26 |
} |
49643ef9d3d2
port: move over ioport stuff from stdlib
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
27 |
#endif |