1
0
Fork 0

add 'togglePin' convenience function (#8734)

* add 'togglePin' conveniance function

for AVR and chibios

* drop outmost parantheses

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>

* toggle pin on avrs

toggle a pin configured as output by writing the corresponding bit to the PIN register

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* togglepin: add documentation for newly added function

* Update docs/internals_gpio_control.md

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>

* on AVR: use PORTD to toggle the output

... since not all MCUs support toggling through writing to PIN

Co-Authored-By: Ryan <fauxpark@gmail.com>

Co-authored-by: Johannes <you@example.com>
Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
JohSchneider 2020-04-29 11:04:29 +00:00 committed by GitHub
parent 195be50745
commit d26a14c169
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 0 deletions

View file

@ -197,6 +197,8 @@ typedef uint8_t pin_t;
# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
# define togglePin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin)&0xF))
#elif defined(PROTOCOL_CHIBIOS)
typedef ioline_t pin_t;
@ -210,6 +212,8 @@ typedef ioline_t pin_t;
# define writePin(pin, level) ((level) ? writePinHigh(pin) : writePinLow(pin))
# define readPin(pin) palReadLine(pin)
# define togglePin(pin) palToggleLine(pin)
#endif
#define SEND_STRING(string) send_string_P(PSTR(string))