Skip to content

Commit

Permalink
Don't stop a waveform simply by calling pinMode (esp8266#4906)
Browse files Browse the repository at this point in the history
Setting a pin direction would cause a waveform generator attached to it to stop.
This could cause PWM to stop if pinMode() is called while running (as it was
called in __analogWrite()).

Remove the stopWaveform call from pinMode, the Tone, analogWrite, or Servo
that initiated the waveform has responsibility for stopping it (and it does)
when complete, irrespective of the pinMode.

Fixes esp8266#4905
  • Loading branch information
earlephilhower authored Jul 9, 2018
1 parent e486887 commit d948a1f
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion cores/esp8266/core_esp8266_wiring_digital.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
uint8_t esp8266_gpioToFn[16] = {0x34, 0x18, 0x38, 0x14, 0x3C, 0x40, 0x1C, 0x20, 0x24, 0x28, 0x2C, 0x30, 0x04, 0x08, 0x0C, 0x10};

extern void __pinMode(uint8_t pin, uint8_t mode) {
stopWaveform(pin);
if(pin < 16){
if(mode == SPECIAL){
GPC(pin) = (GPC(pin) & (0xF << GPCI)); //SOURCE(GPIO) | DRIVER(NORMAL) | INT_TYPE(UNCHANGED) | WAKEUP_ENABLE(DISABLED)
Expand Down

0 comments on commit d948a1f

Please sign in to comment.