From 292a99306cca49bba73632ec2563f454389b7b4e Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 29 Mar 2012 23:54:50 +0200 Subject: digital/io-hub: add output_toggle --- digital/io-hub/src/common/output.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'digital/io-hub/src/common/output.c') diff --git a/digital/io-hub/src/common/output.c b/digital/io-hub/src/common/output.c index d3518e7c..f6b3a705 100644 --- a/digital/io-hub/src/common/output.c +++ b/digital/io-hub/src/common/output.c @@ -60,3 +60,15 @@ output_clear (uint32_t clear) #undef OUTPUT } +/** Toggle state of any number of output. */ +void +output_toggle (uint32_t toggle) +{ +#define OUTPUT(io, init) do { \ + if (toggle & 1ul) IO_TOGGLE_ (io); \ + toggle >>= 1; \ +} while (0); // <- do not copy this code unless you know why! + OUTPUT_LIST +#undef OUTPUT +} + -- cgit v1.2.3