agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
gpio.h File Reference
#include <stdarg.h>
#include <zrtos/error.h>
#include <zrtos/types.h>
#include <zrtos/arch.h>
#include <zrtos/assert.h>
Include dependency graph for gpio.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _zrtos_gpio_t
 

Macros

#define ZRTOS_GPIO__VA_ARG_MODE(args)   ((zrtos_gpio_mode_t)va_arg(args,unsigned int))
 
#define ZRTOS_GPIO__VA_ARG_PIN(args)   ((zrtos_gpio_pin_t)va_arg(args,unsigned int))
 
#define ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL(args)   ((zrtos_gpio_value_digital_t)va_arg(args,unsigned int))
 
#define ZRTOS_GPIO__VA_ARG_VALUE_ANALOG(args)   ((zrtos_gpio_value_analog_t)va_arg(args,unsigned int))
 
#define ZRTOS_GPIO__INIT(set_mode_, digital_read_, digital_write_, analog_read_, analog_write_)
 

Typedefs

typedef zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
 
typedef bool zrtos_gpio_value_digital_t
 
typedef zrtos_arch_gpio_value_analog_t zrtos_gpio_value_analog_t
 
typedef struct _zrtos_gpio_t zrtos_gpio_t
 

Enumerations

enum  zrtos_gpio_mode_t {
  ZRTOS_GPIO_MODE__INPUT = 0x0,
  ZRTOS_GPIO_MODE__OUTPUT = 0x1,
  ZRTOS_GPIO_MODE__PULLUP = 0x2
}
 

Functions

 ZRTOS_ASSERT__STATIC (sizeof(zrtos_gpio_value_digital_t)<=sizeof(unsigned int))
 
 ZRTOS_ASSERT__STATIC (sizeof(zrtos_gpio_mode_t)<=sizeof(unsigned int))
 
 ZRTOS_ASSERT__STATIC (sizeof(zrtos_gpio_pin_t)<=sizeof(unsigned int))
 
bool zrtos_gpio__init (zrtos_gpio_t *thiz, zrtos_error_t(*set_mode)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode), zrtos_error_t(*digital_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val), zrtos_error_t(*digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val), zrtos_error_t(*analog_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val), zrtos_error_t(*analog_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val))
 
zrtos_error_t zrtos_gpio__set_mode (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
 
zrtos_error_t zrtos_gpio__set_mode_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__set_mode_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__digital_read (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
 
zrtos_error_t zrtos_gpio__digital_read_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__digital_read_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__digital_write (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
 
zrtos_error_t zrtos_gpio__digital_write_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__digital_write_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__set_high (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
 
zrtos_error_t zrtos_gpio__set_high_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__set_high_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__set_low (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
 
zrtos_error_t zrtos_gpio__set_low_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__set_low_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__analog_read (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
 
zrtos_error_t zrtos_gpio__analog_read_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__analog_read_ex (zrtos_gpio_t *thiz,...)
 
zrtos_error_t zrtos_gpio__analog_write (zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
 
zrtos_error_t zrtos_gpio__analog_write_va (zrtos_gpio_t *thiz, va_list args)
 
zrtos_error_t zrtos_gpio__analog_write_ex (zrtos_gpio_t *thiz,...)
 
uint8_t zrtos_gpio__shift_in (zrtos_gpio_t *thiz, zrtos_gpio_pin_t dataPin, zrtos_gpio_pin_t clockPin, bool is_lsb)
 
zrtos_error_t zrtos_gpio__shift_out (zrtos_gpio_t *thiz, zrtos_gpio_pin_t dataPin, zrtos_gpio_pin_t clockPin, bool is_lsb, uint8_t value)
 
void zrtos_gpio__delay_microseconds (uint16_t us)
 
void zrtos_gpio__delay_milliseconds (uint16_t ms)
 

Macro Definition Documentation

◆ ZRTOS_GPIO__INIT

#define ZRTOS_GPIO__INIT (   set_mode_,
  digital_read_,
  digital_write_,
  analog_read_,
  analog_write_ 
)
Value:
{\
.set_mode = set_mode_\
,.digital_read = digital_read_\
,.digital_write = digital_write_\
,.analog_read = analog_read_\
,.analog_write = analog_write_\
}

Definition at line 78 of file gpio.h.

◆ ZRTOS_GPIO__VA_ARG_MODE

#define ZRTOS_GPIO__VA_ARG_MODE (   args)    ((zrtos_gpio_mode_t)va_arg(args,unsigned int))

Definition at line 37 of file gpio.h.

◆ ZRTOS_GPIO__VA_ARG_PIN

#define ZRTOS_GPIO__VA_ARG_PIN (   args)    ((zrtos_gpio_pin_t)va_arg(args,unsigned int))

Definition at line 39 of file gpio.h.

◆ ZRTOS_GPIO__VA_ARG_VALUE_ANALOG

#define ZRTOS_GPIO__VA_ARG_VALUE_ANALOG (   args)    ((zrtos_gpio_value_analog_t)va_arg(args,unsigned int))

Definition at line 43 of file gpio.h.

◆ ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL

#define ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL (   args)    ((zrtos_gpio_value_digital_t)va_arg(args,unsigned int))

Definition at line 41 of file gpio.h.

Typedef Documentation

◆ zrtos_gpio_pin_t

Definition at line 22 of file gpio.h.

◆ zrtos_gpio_t

typedef struct _zrtos_gpio_t zrtos_gpio_t

◆ zrtos_gpio_value_analog_t

◆ zrtos_gpio_value_digital_t

Definition at line 30 of file gpio.h.

Enumeration Type Documentation

◆ zrtos_gpio_mode_t

Enumerator
ZRTOS_GPIO_MODE__INPUT 
ZRTOS_GPIO_MODE__OUTPUT 
ZRTOS_GPIO_MODE__PULLUP 

Definition at line 24 of file gpio.h.

Function Documentation

◆ ZRTOS_ASSERT__STATIC() [1/3]

ZRTOS_ASSERT__STATIC ( sizeof(zrtos_gpio_value_digital_t)<=sizeof(unsigned int)  )

◆ ZRTOS_ASSERT__STATIC() [2/3]

ZRTOS_ASSERT__STATIC ( sizeof(zrtos_gpio_mode_t)<=sizeof(unsigned int)  )

◆ ZRTOS_ASSERT__STATIC() [3/3]

ZRTOS_ASSERT__STATIC ( sizeof(zrtos_gpio_pin_t)<=sizeof(unsigned int)  )

◆ zrtos_gpio__analog_read()

zrtos_error_t zrtos_gpio__analog_read ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin,
zrtos_gpio_value_analog_t val 
)

Definition at line 365 of file gpio.h.

369  {
370  return thiz->analog_read(thiz,pin,val);
371 }
zrtos_error_t(* analog_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
Definition: gpio.h:64
Here is the caller graph for this function:

◆ zrtos_gpio__analog_read_ex()

zrtos_error_t zrtos_gpio__analog_read_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 395 of file gpio.h.

398  {
399  zrtos_error_t ret;
400  va_list args;
401 
402  va_start(args,thiz);
404  thiz
405  ,args
406  );
407  va_end(args);
408 
409  return ret;
410 }
zrtos_error_t
Definition: error.h:20
zrtos_error_t zrtos_gpio__analog_read_ex(zrtos_gpio_t *thiz,...)
Definition: gpio.h:395

◆ zrtos_gpio__analog_read_va()

zrtos_error_t zrtos_gpio__analog_read_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 373 of file gpio.h.

376  {
378  zrtos_gpio_pin_t pin;
380  size_t len = va_arg(args,size_t);
381 
382  while(len-- && zrtos_error__is_success(ret)){
383  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
384  val = va_arg(args,zrtos_gpio_value_analog_t*);
386  thiz
387  ,pin
388  ,val
389  );
390  }
391 
392  return ret;
393 }
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
zrtos_error_t zrtos_gpio__analog_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
Definition: gpio.h:365
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_arch_gpio_value_analog_t zrtos_gpio_value_analog_t
Definition: gpio.h:31
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:

◆ zrtos_gpio__analog_write()

zrtos_error_t zrtos_gpio__analog_write ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin,
zrtos_gpio_value_analog_t  val 
)

Definition at line 412 of file gpio.h.

416  {
417  return thiz->analog_write(thiz,pin,val);
418 }
zrtos_error_t(* analog_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
Definition: gpio.h:69
Here is the caller graph for this function:

◆ zrtos_gpio__analog_write_ex()

zrtos_error_t zrtos_gpio__analog_write_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 442 of file gpio.h.

445  {
446  zrtos_error_t ret;
447  va_list args;
448 
449  va_start(args,thiz);
451  thiz
452  ,args
453  );
454  va_end(args);
455 
456  return ret;
457 }
zrtos_error_t zrtos_gpio__analog_write_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:420
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:

◆ zrtos_gpio__analog_write_va()

zrtos_error_t zrtos_gpio__analog_write_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 420 of file gpio.h.

423  {
425  zrtos_gpio_pin_t pin;
427  size_t len = va_arg(args,size_t);
428 
429  while(len-- && zrtos_error__is_success(ret)){
430  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
433  thiz
434  ,pin
435  ,val
436  );
437  }
438 
439  return ret;
440 }
zrtos_error_t zrtos_gpio__analog_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
Definition: gpio.h:412
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
#define ZRTOS_GPIO__VA_ARG_VALUE_ANALOG(args)
Definition: gpio.h:43
zrtos_arch_gpio_value_analog_t zrtos_gpio_value_analog_t
Definition: gpio.h:31
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__delay_microseconds()

void zrtos_gpio__delay_microseconds ( uint16_t  us)

Definition at line 508 of file gpio.h.

508  {
510 }
void zrtos_arch__delay_microseconds(uint16_t us)
Definition: atmega2560.h:296
Here is the call graph for this function:

◆ zrtos_gpio__delay_milliseconds()

void zrtos_gpio__delay_milliseconds ( uint16_t  ms)

Definition at line 512 of file gpio.h.

512  {
514 }
void zrtos_arch__delay_milliseconds(uint16_t ms)
Definition: atmega2560.h:300
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__digital_read()

zrtos_error_t zrtos_gpio__digital_read ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin,
zrtos_gpio_value_digital_t val 
)

Definition at line 177 of file gpio.h.

181  {
182  return thiz->digital_read(thiz,pin,val);
183 }
zrtos_error_t(* digital_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
Definition: gpio.h:53
Here is the caller graph for this function:

◆ zrtos_gpio__digital_read_ex()

zrtos_error_t zrtos_gpio__digital_read_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 207 of file gpio.h.

210  {
211  zrtos_error_t ret;
212  va_list args;
213 
214  va_start(args,thiz);
216  thiz
217  ,args
218  );
219  va_end(args);
220 
221  return ret;
222 }
zrtos_error_t zrtos_gpio__digital_read_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:185
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:

◆ zrtos_gpio__digital_read_va()

zrtos_error_t zrtos_gpio__digital_read_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 185 of file gpio.h.

188  {
190  zrtos_gpio_pin_t pin;
192  size_t len = va_arg(args,size_t);
193 
194  while(len-- && zrtos_error__is_success(ret)){
195  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
196  val = va_arg(args,zrtos_gpio_value_digital_t*);
198  thiz
199  ,pin
200  ,val
201  );
202  }
203 
204  return ret;
205 }
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
bool zrtos_gpio_value_digital_t
Definition: gpio.h:30
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t zrtos_gpio__digital_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
Definition: gpio.h:177
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__digital_write()

zrtos_error_t zrtos_gpio__digital_write ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin,
zrtos_gpio_value_digital_t  val 
)

Definition at line 224 of file gpio.h.

228  {
229  return thiz->digital_write(thiz,pin,val);
230 }
zrtos_error_t(* digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:58
Here is the caller graph for this function:

◆ zrtos_gpio__digital_write_ex()

zrtos_error_t zrtos_gpio__digital_write_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 254 of file gpio.h.

257  {
258  zrtos_error_t ret;
259  va_list args;
260 
261  va_start(args,thiz);
263  thiz
264  ,args
265  );
266  va_end(args);
267 
268  return ret;
269 }
zrtos_error_t
Definition: error.h:20
zrtos_error_t zrtos_gpio__digital_write_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:232
Here is the call graph for this function:

◆ zrtos_gpio__digital_write_va()

zrtos_error_t zrtos_gpio__digital_write_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 232 of file gpio.h.

235  {
237  zrtos_gpio_pin_t pin;
239  size_t len = va_arg(args,size_t);
240 
241  while(len-- && zrtos_error__is_success(ret)){
242  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
245  thiz
246  ,pin
247  ,val
248  );
249  }
250 
251  return ret;
252 }
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
bool zrtos_gpio_value_digital_t
Definition: gpio.h:30
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
#define ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL(args)
Definition: gpio.h:41
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t
Definition: error.h:20
zrtos_error_t zrtos_gpio__digital_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:224
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__init()

bool zrtos_gpio__init ( zrtos_gpio_t thiz,
zrtos_error_t(*)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)  set_mode,
zrtos_error_t(*)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)  digital_read,
zrtos_error_t(*)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)  digital_write,
zrtos_error_t(*)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)  analog_read,
zrtos_error_t(*)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)  analog_write 
)

Definition at line 93 of file gpio.h.

120  {
121  thiz->set_mode = set_mode;
122  thiz->digital_read = digital_read;
123  thiz->digital_write = digital_write;
124  thiz->analog_read = analog_read;
125  thiz->analog_write = analog_write;
126 
127  return true;
128 }
zrtos_error_t(* analog_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
Definition: gpio.h:69
zrtos_error_t(* digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:58
zrtos_error_t(* set_mode)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
Definition: gpio.h:47
zrtos_error_t(* analog_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
Definition: gpio.h:64
zrtos_error_t(* digital_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
Definition: gpio.h:53

◆ zrtos_gpio__set_high()

zrtos_error_t zrtos_gpio__set_high ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin 
)

Definition at line 271 of file gpio.h.

274  {
276  thiz
277  ,pin
278  ,true
279  );
280 }
zrtos_error_t zrtos_gpio__digital_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:224
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__set_high_ex()

zrtos_error_t zrtos_gpio__set_high_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 301 of file gpio.h.

304  {
305  zrtos_error_t ret;
306  va_list args;
307 
308  va_start(args,thiz);
310  thiz
311  ,args
312  );
313  va_end(args);
314 
315  return ret;
316 }
zrtos_error_t zrtos_gpio__set_high_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:282
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:

◆ zrtos_gpio__set_high_va()

zrtos_error_t zrtos_gpio__set_high_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 282 of file gpio.h.

285  {
287  zrtos_gpio_pin_t pin;
288  size_t len = va_arg(args,size_t);
289 
290  while(len-- && zrtos_error__is_success(ret)){
291  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
292  ret = zrtos_gpio__set_high(
293  thiz
294  ,pin
295  );
296  }
297 
298  return ret;
299 }
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t zrtos_gpio__set_high(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:271
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__set_low()

zrtos_error_t zrtos_gpio__set_low ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin 
)

Definition at line 318 of file gpio.h.

321  {
322  return thiz->digital_write(
323  thiz
324  ,pin
325  ,false
326  );
327 }
zrtos_error_t(* digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:58
Here is the caller graph for this function:

◆ zrtos_gpio__set_low_ex()

zrtos_error_t zrtos_gpio__set_low_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 348 of file gpio.h.

351  {
352  zrtos_error_t ret;
353  va_list args;
354 
355  va_start(args,thiz);
357  thiz
358  ,args
359  );
360  va_end(args);
361 
362  return ret;
363 }
zrtos_error_t zrtos_gpio__set_low_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:329
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:

◆ zrtos_gpio__set_low_va()

zrtos_error_t zrtos_gpio__set_low_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 329 of file gpio.h.

332  {
334  zrtos_gpio_pin_t pin;
335  size_t len = va_arg(args,size_t);
336 
337  while(len-- && zrtos_error__is_success(ret)){
338  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
339  ret = zrtos_gpio__set_low(
340  thiz
341  ,pin
342  );
343  }
344 
345  return ret;
346 }
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t
Definition: error.h:20
zrtos_error_t zrtos_gpio__set_low(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:318
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__set_mode()

zrtos_error_t zrtos_gpio__set_mode ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  pin,
zrtos_gpio_mode_t  mode 
)

Definition at line 130 of file gpio.h.

134  {
135  return thiz->set_mode(thiz,pin,mode);
136 }
zrtos_error_t(* set_mode)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
Definition: gpio.h:47
Here is the caller graph for this function:

◆ zrtos_gpio__set_mode_ex()

zrtos_error_t zrtos_gpio__set_mode_ex ( zrtos_gpio_t thiz,
  ... 
)

Definition at line 160 of file gpio.h.

163  {
164  zrtos_error_t ret;
165  va_list args;
166 
167  va_start(args,thiz);
169  thiz
170  ,args
171  );
172  va_end(args);
173 
174  return ret;
175 }
zrtos_error_t zrtos_gpio__set_mode_va(zrtos_gpio_t *thiz, va_list args)
Definition: gpio.h:138
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__set_mode_va()

zrtos_error_t zrtos_gpio__set_mode_va ( zrtos_gpio_t thiz,
va_list  args 
)

Definition at line 138 of file gpio.h.

141  {
143  zrtos_gpio_pin_t pin;
144  zrtos_gpio_mode_t val;
145  size_t len = va_arg(args,size_t);
146 
147  while(len-- && zrtos_error__is_success(ret)){
148  pin = ZRTOS_GPIO__VA_ARG_PIN(args);
149  val = ZRTOS_GPIO__VA_ARG_MODE(args);
150  ret = zrtos_gpio__set_mode(
151  thiz
152  ,pin
153  ,val
154  );
155  }
156 
157  return ret;
158 }
#define ZRTOS_GPIO__VA_ARG_MODE(args)
Definition: gpio.h:37
#define ZRTOS_GPIO__VA_ARG_PIN(args)
Definition: gpio.h:39
zrtos_error_t zrtos_gpio__set_mode(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
Definition: gpio.h:130
zrtos_gpio_mode_t
Definition: gpio.h:24
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
bool zrtos_error__is_success(zrtos_error_t thiz)
Definition: error.h:152
Successful program execution status.
Definition: error.h:22
zrtos_error_t
Definition: error.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zrtos_gpio__shift_in()

uint8_t zrtos_gpio__shift_in ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  dataPin,
zrtos_gpio_pin_t  clockPin,
bool  is_lsb 
)

Definition at line 459 of file gpio.h.

464  {
465  uint8_t value = 0;
466  size_t i;
468 
469  for (i = 0; i < 8; ++i) {
470  zrtos_gpio__set_high(thiz,clockPin);
471  zrtos_gpio__digital_read(thiz,dataPin,&val);
472  if(is_lsb){
473  value |= val << i;
474  }else{
475  value |= val << (7 - i);
476  }
477  zrtos_gpio__set_low(thiz,clockPin);
478  }
479  return value;
480 }
bool zrtos_gpio_value_digital_t
Definition: gpio.h:30
zrtos_error_t zrtos_gpio__digital_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
Definition: gpio.h:177
static uint8_t
Definition: mcp2515.h:159
zrtos_error_t zrtos_gpio__set_high(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:271
zrtos_error_t zrtos_gpio__set_low(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:318
Here is the call graph for this function:

◆ zrtos_gpio__shift_out()

zrtos_error_t zrtos_gpio__shift_out ( zrtos_gpio_t thiz,
zrtos_gpio_pin_t  dataPin,
zrtos_gpio_pin_t  clockPin,
bool  is_lsb,
uint8_t  value 
)

Definition at line 482 of file gpio.h.

488  {
489  size_t i;
491 
492  for(i = 0; i < 8; i++){
493  if(is_lsb){
494  val = (value & 1);
495  value >>= 1;
496  } else {
497  val = ((value & 128) != 0);
498  value <<= 1;
499  }
500  zrtos_gpio__digital_write(thiz,dataPin,val);
501  zrtos_gpio__set_high(thiz,clockPin);
502  zrtos_gpio__set_low(thiz,clockPin);
503  }
504 
505  return ZRTOS_ERROR__SUCCESS;
506 }
bool zrtos_gpio_value_digital_t
Definition: gpio.h:30
Successful program execution status.
Definition: error.h:22
zrtos_error_t zrtos_gpio__set_high(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:271
zrtos_error_t zrtos_gpio__digital_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Definition: gpio.h:224
zrtos_error_t zrtos_gpio__set_low(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
Definition: gpio.h:318
Here is the call graph for this function: