src/stdlib.h
author Tero Marttila <terom@paivola.fi>
Fri, 04 Apr 2014 01:04:41 +0300
changeset 56 3b837eaf1b6d
parent 52 237d1f5c1c32
child 58 a445e08b63e0
permissions -rw-r--r--
hello: expand to two led7seg displays
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
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
typedef volatile uint8_t ioport_t;
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
static inline ioport_t tbi(ioport_t *port, int bit)
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
    return *port & (1 << 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
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
static inline void sbi(ioport_t *port, int bit)
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
    *port |= (1 << 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
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
static inline void cbi(ioport_t *port, int bit)
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
    *port &= ~(1 << 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
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
static inline void xbi(ioport_t *port, int bit)
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
    *port ^= (1 << bit);
f01fb659e54d hello: timer-based sleeps
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
}