From 7dac0cccc846d4452293b47b40d43f6b50ebcc33 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 23 Oct 2018 10:07:31 +0200 Subject: POSIX: Improve GPIO emulation --- include/arch/posix/driver/gpio.h | 122 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 116 insertions(+), 6 deletions(-) (limited to 'include/arch/posix/driver/gpio.h') diff --git a/include/arch/posix/driver/gpio.h b/include/arch/posix/driver/gpio.h index 0995729..12e9121 100644 --- a/include/arch/posix/driver/gpio.h +++ b/include/arch/posix/driver/gpio.h @@ -1,17 +1,127 @@ #ifndef GPIO_H #define GPIO_H +#include + class GPIO { private: GPIO(const GPIO ©); - unsigned char ledstate; + unsigned int pin_dir, pin_pull, pin_out, pull_dir; +#ifdef GPIO_TRACE + void print_pinstate() { + unsigned int mask = 1; + for (unsigned char i=0; i < 32; i++) { + if (i == 0) { + fputs("▶ LED ", stdout); + } + else if (i == 8) { + fputs(" GPIO ", stdout); + } + else if (i == 16) { + fputs(" ", stdout); + } + else if (i == 24) { + fputs(" ", stdout); + } + if (pin_dir & mask) { + if (pin_out & (1<