Optimize pin_set() (which is often no-op)

This commit is contained in:
Michal Moskal 2020-04-13 08:44:45 -07:00
Родитель c71d0944ce
Коммит 0d4338f0c2
2 изменённых файлов: 7 добавлений и 4 удалений

Просмотреть файл

@ -17,7 +17,12 @@ void px_set(const void *data, uint32_t index, uint8_t intensity, uint32_t color)
#define PX_WORDS(NUM_PIXELS) (((NUM_PIXELS)*9 + 8) / 4)
// pins.c
void pin_set(int pin, int v);
void _pin_set(int pin, int v);
static inline void pin_set(int pin, int v) {
if ((uint8_t)pin == 0xff)
return;
_pin_set(pin, v);
}
void pin_setup_output(int pin);
void pin_toggle(int pin);
int pin_get(int pin);

Просмотреть файл

@ -66,9 +66,7 @@ void pin_pulse(int pin, int times) {
}
}
void pin_set(int pin, int v) {
if ((uint8_t)pin == 0xff)
return;
void _pin_set(int pin, int v) {
if (v)
LL_GPIO_SetOutputPin(PORT(pin), PIN(pin));
else