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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.