10 #define _DDR(x) DDR##x
11 #define PORT(x) _PORT(x)
12 #define _PORT(x) PORT##x
13 #define PIN(x) _PIN(x)
14 #define _PIN(x) PIN##x
16 #define CT(x) (sizeof(x)/sizeof(*x))
18 inline uint8_t mod( uint8_t i1
, uint8_t i2
) {// i1%i2
20 i1
= (uint8_t) (i1
- i2
);
25 inline void memset_16(uint16_t * dest
, uint16_t val
, uint8_t len
) {
32 inline void print_bin(uint8_t inp
, FILE * stream
) {
33 for(int8_t j
=7; j
>=0; --j
) {
34 fputc(((inp
&(1<<j
))>>j
)+'0',stream
);
39 /* wip data structures
41 typedef union uint24 {
57 typedef struct motor_st {
58 volatile uint8_t * pwm_reg;
59 volatile uint8_t * pwm_port;
60 //volatile uint8_t * pwm_ddr; //pwm_port+1
61 //volatile uint8_t * pwm_pin; //pwm_port+2
65 volatile uint8_t * in1_port;
68 volatile uint8_t * in2_port;