Unterbrechung von Methoden

OP #750031
Lesenswert?

Hallo,

ich habe folgende Methode

void comm_send_message(byte code, byte data[], byte len)
{
  fifo_put(&fifo_out, code);

  byte i;
  for(i = 0; i < len; i++)
  {
    fifo_put(&fifo_out, data[i]);
  }
}

Sie schreibt eine nachricht in den ausgabepuffer für den UART.
Diese methode wird aus mehreren ISR's (Timer,...) aufgerufen.

Kann es da zu unterbrechungen kommen, so dass die bytes in falscher 
Reihenfolge im fifo stehen?
Wenn ja, wie kann man dem entgegenwirken?

Danke
Gast #750036
Lesenswert?

Annahme: du hast nen AVR(bei anderen Maschinen kann das durchaus anders 
aussehen).

Wenn die Funktion IMMER aus ISRs aufgerufen wird, kann sie (ausser vom 
Reset) von nix unterbrochen werden, weil der AVR keine Prioritäten für 
die Interrupts hat.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren