avr/base/base.h

31 lines
469 B
C
Raw Normal View History

2022-05-08 00:16:20 +00:00
#include <avr/io.h>
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