Robin2:
It never was.
Never say "never"
:
(Well, not an ISR itself, but called from an ISR.)
(multiple #ifdefs omitted here to simplify code)
SIGNAL(USART_RX_vect)
{
unsigned char c = UDR0;
store_char(c, &rx_buffer);
serialEvent();
}
Then there was a version that set a flag:
SIGNAL(USART_RX_vect)
{
unsigned char c = UDR0;
store_char(c, &rx_buffer);
serialEvent_flag = 1;
}
void serialEventRun(void)
{
unsigned char flag, oldSREG;
#ifdef serialEvent_implemented
oldSREG = SREG;
noInterrupts();
flag = serialEvent_flag;
serialEvent_flag = 0;
SREG = oldSREG;
if (flag) serialEvent();
#endif
// same for Serial1 etc.
// ...
}
1.0-beta4 had the current model:
SIGNAL(USART_RX_vect)
{
unsigned char c = UDR0;
store_char(c, &rx_buffer);
}
void serialEventRun(void)
{
#ifdef serialEvent_implemented
if (Serial.available()) serialEvent();
#endif
// same for Serial1 etc.
//...
}