int fifo[8] = {0,0,0,0,0,0,0,0};
unsigned char indx = 0;
unsigned long AvrResult;
fifo[indx++] = NewResult;
indx &= 7;
AvrResult = fifo[0] + fifo[1] + fifo[2] + fifo[3] + fifo[4] + fifo[5] + fifo[6] + fifo[7];
AvrResult >>= 8;
// не проверял, так что могут быть ошибки