Pin state is a pin voltage level, not a logic (active-high/low) level

This commit is contained in:
jflyper 2019-01-28 19:34:10 +09:00
parent 6c8b3a7193
commit 06e7a73661
1 changed files with 7 additions and 1 deletions

View File

@ -51,6 +51,11 @@ void pinioInit(const pinioConfig_t *pinioConfig)
switch (pinioConfig->config[i] & PINIO_CONFIG_MODE_MASK) { switch (pinioConfig->config[i] & PINIO_CONFIG_MODE_MASK) {
case PINIO_CONFIG_MODE_OUT_PP: case PINIO_CONFIG_MODE_OUT_PP:
// Initial state after reset is input, pull-up.
// Avoid momentary off by presetting the output to hi.
if (pinioConfig->config[i] & PINIO_CONFIG_OUT_INVERTED) {
IOHi(io);
}
IOConfigGPIO(io, IOCFG_OUT_PP); IOConfigGPIO(io, IOCFG_OUT_PP);
break; break;
} }
@ -59,12 +64,13 @@ void pinioInit(const pinioConfig_t *pinioConfig)
{ {
pinioRuntime[i].inverted = true; pinioRuntime[i].inverted = true;
IOHi(io); IOHi(io);
pinioRuntime[i].state = true;
} else { } else {
pinioRuntime[i].inverted = false; pinioRuntime[i].inverted = false;
IOLo(io); IOLo(io);
pinioRuntime[i].state = false;
} }
pinioRuntime[i].io = io; pinioRuntime[i].io = io;
pinioRuntime[i].state = false;
} }
} }