18 #ifndef HAND_BRIDGE_GPIO_H_ 19 #define HAND_BRIDGE_GPIO_H_ 26 bool call(
int (*func)(uint32_t), uint32_t mask, uint32_t pins){
27 return initialized && (pins & mask) == pins && (pins == 0 || func(pins) == 0);
30 GPIO() : initialized(false), out_mask0(0) {}
37 if(pin < 32) out_mask0 |= (1<<pin);
52 if(!initialized)
return false;
53 if(pin < 32 && ((1<<pin) & out_mask0) != (1<<pin))
return false;
55 return gpioWrite(pin, level ? 1 : 0) == 0;
57 bool pwmPin(uint32_t pin,
float level) {
58 if(!initialized)
return false;
59 if(pin >= 32 || ((1<<pin) & out_mask0) != (1<<pin))
return false;
64 if(level < 0 || level > 1.0)
return false;
66 return gpioPWM(pin, level* range) == 0;
72 #endif // HAND_BRIDGE_GPIO_H_
bool setInput(uint32_t pin)
bool setOutput(uint32_t pin)
int gpioSetMode(unsigned gpio, unsigned mode)
bool call(int(*func)(uint32_t), uint32_t mask, uint32_t pins)
bool pwmPin(uint32_t pin, float level)
int gpioGetPWMrange(unsigned gpio)
int gpioPWM(unsigned gpio, unsigned val)
int gpioWrite_Bits_0_31_Clear(uint32_t bits)
int gpioWrite(unsigned gpio, unsigned level)
bool setPins(uint32_t pins)
bool clearPins(uint32_t pins)
int gpioWrite_Bits_0_31_Set(uint32_t bits)
uint32_t gpioRead_Bits_0_31(void)
bool writePin(uint32_t pin, uint32_t level)
bool isInitialized() const