avr/base/include/base.h

30 lines
449 B
C
Raw Normal View History

2022-04-17 04:43:50 +00:00
#ifndef __BASE_H__
#define __BASE_H__
typedef struct IO_PIN {
volatile uint8_t *port;
uint8_t pin;
} io_pin_t;
inline void set_pin(io_pin_t *pin) {
*(pin->port) |= 1 << pin->pin;
}
inline void clear_pin(io_pin_t *pin) {
*(pin->port) &= 0xff ^ (1 << pin->pin);
}
2022-05-07 23:49:54 +00:00
typedef struct RNG {
uint8_t mod;
int8_t a;
int8_t c;
uint8_t seed;
} rng_t;
rng_t rng_new(uint8_t seed);
uint8_t rng_sample(rng_t *state);
2022-04-17 04:43:50 +00:00
#endif