Forum: Mikrocontroller und Digitale Elektronik Unterbrechung von Methoden


von Dirk R. (freak)


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

von tb (Gast)


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.

von Dirk R. (freak)


Lesenswert?

Danke...genau das wollt ich wissen....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.