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
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.
Danke...genau das wollt ich wissen....
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.