// RasPi.h // // Routines for implementing RadioHead on Raspberry Pi // using BCM2835 library for GPIO // Contributed by Mike Poublon and used with permission #ifndef RASPI_h #define RASPI_h #include #include #include #include #include typedef unsigned char byte; #ifndef NULL #define NULL 0 #endif #ifndef OUTPUT #define OUTPUT BCM2835_GPIO_FSEL_OUTP #endif class SPIClass { public: static byte transfer(byte _data); // SPI Configuration methods static void begin(); // Default static void begin(uint16_t, uint8_t, uint8_t); static void end(); static void setBitOrder(uint8_t); static void setDataMode(uint8_t); static void setClockDivider(uint16_t); }; extern SPIClass SPI; class SerialSimulator { public: #define DEC 10 #define HEX 16 #define OCT 8 #define BIN 2 // TODO: move these from being inlined static void begin(int baud); static size_t println(const char* s); static size_t print(const char* s); static size_t print(unsigned int n, int base = DEC); static size_t print(char ch); static size_t println(char ch); static size_t print(unsigned char ch, int base = DEC); static size_t println(unsigned char ch, int base = DEC); }; extern SerialSimulator Serial; void RasPiSetup(); void pinMode(unsigned char pin, unsigned char mode); void digitalWrite(unsigned char pin, unsigned char value); unsigned long millis(); void delay (unsigned long delay); long random(long min, long max); #endif