src/stdlib.h
author Tero Marttila <terom@paivola.fi>
Thu, 29 Jan 2015 23:11:44 +0200
changeset 107 05707929ff6f
parent 58 a445e08b63e0
permissions -rw-r--r--
qmsk.web.async: handle HTTPExceptions
49
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#define false       0
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
#define true        1
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
58
a445e08b63e0 hello-lkm: Control the JY-LKM1638 LED 7-segment display module
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
     4
typedef uint8_t byte;
a445e08b63e0 hello-lkm: Control the JY-LKM1638 LED 7-segment display module
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
     5
49
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
typedef volatile uint8_t ioport_t;
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
static inline ioport_t tbi(ioport_t *port, int bit)
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
{
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
    return *port & (1 << bit);
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
}
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
static inline void sbi(ioport_t *port, int bit)
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
{
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    *port |= (1 << bit);
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
}
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
static inline void cbi(ioport_t *port, int bit)
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
{
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
    *port &= ~(1 << bit);
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
}
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
static inline void xbi(ioport_t *port, int bit)
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
{
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
    *port ^= (1 << bit);
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
}