add ChibiOS support
[mTask.git] / int / interface.h
1 #ifndef INTERFACE_H
2 #define INTERFACE_H
3
4 #include <stdbool.h>
5 #include <stdint.h>
6
7 #ifndef STM
8 extern int gargc;
9 extern char **gargv;
10 #endif
11
12 #define read16() 256*read_byte() + read_byte()
13 uint8_t read_byte(void);
14 void write_byte(uint8_t b);
15
16 void write_dpin(uint8_t i, bool b);
17 bool read_dpin(uint8_t i);
18
19 void write_apin(uint8_t i, uint8_t a);
20 uint8_t read_apin(uint8_t i);
21
22 long millis(void);
23 bool input_available(void);
24 void delay(long ms);
25
26 void setup(void);
27 void test(void);
28
29 #ifdef STM
30 #define debug(s, ...) {};
31 #define pdie(s) {};
32 #define die(s, ...) {};
33 #else
34 #define debug(s, ...) printf(s "\n", ##__VA_ARGS__);
35 #define pdie(s) {perror(s); exit(1);}
36 #define die(s, ...) {fprintf(stderr, s "\n", ##__VA_ARGS__); exit(1);}
37 #endif
38
39 #endif