Merge branch 'bugfix/gpio_set_level_atomic' into 'master'

fix(gpio): improve set level performance

See merge request espressif/esp-idf!34744
This commit is contained in:
morris
2024-11-08 11:43:16 +08:00
10 changed files with 28 additions and 28 deletions

View File

@@ -400,15 +400,15 @@ static inline void gpio_ll_set_level(gpio_dev_t *hw, uint32_t gpio_num, uint32_t
{
if (level) {
if (gpio_num < 32) {
hw->out_w1ts.out_w1ts = (1 << gpio_num);
hw->out_w1ts.val = 1 << gpio_num;
} else {
hw->out1_w1ts.out1_w1ts = (1 << (gpio_num - 32));
hw->out1_w1ts.val = 1 << (gpio_num - 32);
}
} else {
if (gpio_num < 32) {
hw->out_w1tc.out_w1tc = (1 << gpio_num);
hw->out_w1tc.val = 1 << gpio_num;
} else {
hw->out1_w1tc.out1_w1tc = (1 << (gpio_num - 32));
hw->out1_w1tc.val = 1 << (gpio_num - 32);
}
}
}