Bitte um Hilfe oder Aufklärung.

Für eine I2C-Kommunikation teste ich meinen Code auf saubere Funktion und exakte Positionierung der verschiedenen Daten. Derzeit zwei Platinen (RNContrl - mega1284/20MHz, RNMotoContrl - m328/20MHz, I2C 100 kHz).

Ein Test besteht darin, drei Ausschnitte des übermittelten Feldes vom Slave per UART wiederholt auszugeben. Der letzte Ausschnitt sollen die letzten zehn Bytes des I2C-Puffers sein. Leider macht mein Feldpointer nicht das was ich will: die Berechnung (egal ob uint8_t oder ~16~) in der for..Schleife ist fehlerhaft.

I2C-Definition (Ausschnitt) (danke uwegw für den Slave-Code) :
Code:
//%%%%%%%% von Benutzer konfigurierbare Einstellungen %%%%%%%%
/**@brief Groesse des Buffers in Byte (2..254) */
#define i2c_buffer_size 127      // I2C_REG_ANZAHL 254 Hier kann eingestellt werden
                                //   wieviele Register ausgegeben werden
//##### ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ #####
... und die Ausgaberoutine im Slave (Ausschnitt) :
Code:
// - - - - - - - - - - - - - - -
    uart_puts("\t\t\t");        // Einrücken
    for (uint8_t i=10; i<20; i++)
      {
      uart_puti(i2cdata[i]);uart_puts("    ");  //uart_puts("\r\n");
      }                         // === Ende for (uint8_t i=0; i<i2c_buffer_size...
    uart_puts("\r\n");          // Neue Zeile und Leerzeile
    _delay_ms( 1000);
// - - - - - - - - - - - - - - -
    uart_puts("\t\t\t");        // Einrücken
    for (uint8_t i=(i2c_buffer_size-10); i<i2c_buffer_size; i++)
      {
      uart_puti(i2cdata[i]);uart_puts("    ");  //uart_puts("\r\n");
      }                         // === Ende for (uint8_t i=0; i<i2c_buffer_size...
    uart_puts("\r\n");          // Neue Zeile und Leerzeile
    _delay_ms( 1000);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dabei wird für die letzte Ausgabe immer am Ende des Buffers begonnen, nicht wie ich möchte, zehn Felder davor.

Code:
    C501 R5MoCo_x01-x10 m328/20MHz 26Sep2012 2335
    Aufbau R5MoCo, I2C-Slave ist Adresse :  130    I2C-WRITE = 0
    Test I2C

    I2C-Test - I2C-Slave R5MoCo_i2c10.c
    Teste I2C-Slave mit Adresse :  130    Buffersize :  252

    Nr. 1    i2cdata:    10    11    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            252    253    254    255    0    1    2    3    4    5    
    Nr. 2    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            252    253    254    255    0    1    2    3    4    5    
    Nr. 3    i2cdata:    10    99    12    13    14    15    16    17    18    19    
<0>
    C501 R5MoCo_x01-x10 m328/20MHz 26Sep2012 2335
    Aufbau R5MoCo, I2C-Slave ist Adresse :  130    I2C-WRITE = 0
    Test I2C

    I2C-Test - I2C-Slave R5MoCo_i2c10.c
    Teste I2C-Slave mit Adresse :  130    Buffersize :  252

    Nr. 1    i2cdata:    10    11    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            252    253    254    255    0    1    2    3    4    5    
    Nr. 2    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            252    253    254    255    0    1    2    3    4    5    
    Nr. 3    i2cdata:    10    99    12    13    14    15    16    17    18    19    
<0>
    C501 R5MoCo_x01-x10 m328/20MHz 26Sep2012 2335
    Aufbau R5MoCo, I2C-Slave ist Adresse :  130    I2C-WRITE = 0
    Test I2C

    I2C-Test - I2C-Slave R5MoCo_i2c10.c
    Teste I2C-Slave mit Adresse :  130    Buffersize :  127

    Nr. 1    i2cdata:    10    11    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            127    128    129    130    131    132    133    134    135    136    
    Nr. 2    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            127    128    129    130    131    132    133    134    135    136    
    Nr. 3    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            127    128    129    130    131    132    133    134    135    136    
    Nr. 4    i2cdata:    10    99    12    13    14    15    16    17    18    19    
<0>
    C501 R5MoCo_x01-x10 m328/20MHz 26Sep2012 2335
    Aufbau R5MoCo, I2C-Slave ist Adresse :  130    I2C-WRITE = 0
    Test I2C

    I2C-Test - I2C-Slave R5MoCo_i2c10.c
    Teste I2C-Slave mit Adresse :  130    Buffersize :  99

    Nr. 1    i2cdata:    10    11    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            99    100    101    102    103    104    105    106    107    108    
    Nr. 2    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
<0>
    C501 R5MoCo_x01-x10 m328/20MHz 26Sep2012 2335
    Aufbau R5MoCo, I2C-Slave ist Adresse :  130    I2C-WRITE = 0
    Test I2C

    I2C-Test - I2C-Slave R5MoCo_i2c10.c
    Teste I2C-Slave mit Adresse :  130    Buffersize :  99

    Nr. 1    i2cdata:    10    11    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            99    100    101    102    103    104    105    106    107    108    
    Nr. 2    i2cdata:    10    99    12    13    14    15    16    17    18    19    
            20    21    22    23    24    25    26    27    28    29    
            99    100    101    102    103    104    105    106    107    108
... und das sollte eben nicht stimmen. Nur - wieso? Wo ist der Fehler?

Problem: die Berechnung
i2c_buffer_size-10
macht offenbar nicht das, was sie soll. Anm.: ich habe die for..Laufvariable mit 8bit und mit 16 getestet.

Danke im Voraus für Eure Hilfe und Aufmerksamkeit.