29 #ifndef _SSD1306_LINUX_IO_H_ 30 #define _SSD1306_LINUX_IO_H_ 32 #if (defined(__linux__) || defined(__MINGW32__)) && !defined(ARDUINO) 34 #if defined(__KERNEL__) 35 #include <linux/types.h> 36 #elif defined(__MINGW32__) 53 #define SSD1306_LINUX_SUPPORTED 59 static inline int digitalRead(
int pin) {
return LOW; };
60 static inline void pinMode(
int pin,
int mode) {};
61 #if defined(__KERNEL__) 62 static inline void delay(
unsigned long ms) { };
63 #elif defined(__MINGW32__) 64 static inline void delay(
unsigned long ms) { Sleep(ms); };
65 static inline void delayMicroseconds(
unsigned long us) { Sleep((us+500)/1000); };
67 static inline void delay(
unsigned long ms) { usleep(ms*1000); };
68 static inline void delayMicroseconds(
unsigned long us) { usleep(us); };
71 #if defined(__KERNEL__) 72 static inline int analogRead(
int pin) {
return 0; };
73 static inline void digitalWrite(
int pin,
int level) {};
74 #elif defined(__MINGW32__) || defined(SDL_EMULATION) 75 static inline int analogRead(
int pin) {
return sdl_read_analog(pin); };
76 static inline void digitalWrite(
int pin,
int level) { sdl_write_digital(pin, level); };
78 static inline int analogRead(
int pin) {
return 0; };
79 static inline void digitalWrite(
int pin,
int level) {};
82 #if defined(__KERNEL__) 83 static inline uint32_t millis(
void) {
return 0; };
84 static inline uint32_t micros(
void) {
return 0; };
86 #elif defined(__MINGW32__) 87 static inline uint32_t millis(
void)
89 return GetTickCount();
92 static inline uint32_t micros(
void)
94 return GetTickCount()*1000;
98 static inline uint32_t millis(
void)
101 clock_gettime(CLOCK_MONOTONIC, &ts);
102 return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
105 static inline uint32_t micros(
void)
108 clock_gettime(CLOCK_MONOTONIC, &ts);
109 return ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
114 static inline void randomSeed(
int seed) { };
115 static inline void attachInterrupt(
int pin,
void (*interrupt)(
void),
int level) { };
116 static inline uint8_t pgm_read_byte(
const void *ptr) {
return *((
const uint8_t *)ptr); };
117 static inline uint16_t eeprom_read_word(
const void *ptr) {
return 0; };
118 static inline void eeprom_write_word(
const void *ptr, uint16_t val) { };
120 #if !defined(__MINGW32__) 125 static inline int min(
int a,
int b) {
return a<b?a:b; };
126 static inline int max(
int a,
int b) {
return a>b?a:b; };
129 static inline char *utoa(
unsigned int num,
char *str,
int radix) {
139 digit = (
unsigned int)num % radix;
141 temp[temp_loc++] = digit +
'0';
143 temp[temp_loc++] = digit - 10 +
'A';
144 num = ((
unsigned int)num) / radix;
145 }
while ((
unsigned int)num > 0);
151 while ( temp_loc >=0 ) {
152 str[str_loc++] = temp[temp_loc--];
164 static inline int random(
int max) {
return 0; };
165 static inline int random(
int min,
int max) {
return 0; };