You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// These undocumented functions should not be used. SPI.transfer()// polls the hardware flag which is automatically cleared as the// AVR responds to SPI's interruptinlinestaticvoidattachInterrupt() { SPCR |= _BV(SPIE); }
inlinestaticvoiddetachInterrupt() { SPCR &= ~_BV(SPIE); }
Other cores do nothing or even do not implement it:
From a quick glance at the AVR SPI library, the actual ISR is not implement anywhere, which I think means that calling attachInterrupt() will cause the system to lock up the next time an SPI interrupt is triggered (since the default ISR just has an infinite loop IIRC). Sounds like removing these would indeed make sense - the only case these methods could be "useful" is when a sketch also implements the ISR itself, but those are very specific and advanced sketches that can also just modify SPCR directly.
It looks like these methos are only used in the AVR ports, and even then they indicate that they should not be used.
ArduinoCore-avr/libraries/SPI/src/SPI.h#L306-L310
ArduinoCore-megaavr/libraries/SPI/src/SPI.h#L183-L187
Other cores do nothing or even do not implement it:
When are these methods meant to be used by Arduino users or ArduinoCore developers?
The text was updated successfully, but these errors were encountered: