include/stdlib.h
author Tero Marttila <terom@paivola.fi>
Wed, 24 Sep 2014 22:30:34 +0300
changeset 2 3420bd6d2d10
parent 0 893a25a6c372
child 4 959d4b9c3f0a
permissions -rw-r--r--
hgignore
0
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#ifndef QMSK_ARDUINO_STDLIB_H
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
#define QMSK_ARDUINO_STDLIB_H
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
#define false       0
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
#define true        1
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
typedef uint8_t byte;
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
typedef volatile uint8_t ioport_t;
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
static inline ioport_t tbi(ioport_t *port, int bit)
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
{
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    return *port & (1 << bit);
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
}
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
static inline void sbi(ioport_t *port, int bit)
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
{
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
    *port |= (1 << bit);
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
}
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
static inline void cbi(ioport_t *port, int bit)
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
{
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
    *port &= ~(1 << bit);
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
}
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
static inline void xbi(ioport_t *port, int bit)
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
{
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    *port ^= (1 << bit);
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
}
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
893a25a6c372 import stdlib.h from qmsk-dmx
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
#endif