Hallo,
Ich muss eine 2KB Chipkarte mittels TWIC beschreiben.
Bisher brauchte ich nur die erste 16 Seiten der Karte ( eine Seite = 16 
Byte) von daher hatte ich nie versucht den 257. Byte auf der Karte zu 
beschreiben.
Schreib vorgang
| 1 |   void card_page_write (unsigned char* page_content , unsigned char page_index)
 | 
| 2 | {
 | 
| 3 |   TWI_PORT_SELECT.MASTER.ADDR = SLA_W;
 | 
| 4 |   while( !WaitForTxTWIComplete() );
 | 
| 5 |   
 | 
| 6 |   TWIC_MASTER_DATA = CARD_PAGE_SIZE * page_index;
 | 
| 7 |   while( !WaitForTxTWIComplete() );
 | 
| 8 |   
 | 
| 9 |   for(uint8_t i = 0; i < CARD_PAGE_SIZE; i++)
 | 
| 10 |   {
 | 
| 11 |     TWI_PORT_SELECT.MASTER.DATA = page_content[i];
 | 
| 12 |     while( !WaitForTxTWIComplete() );
 | 
| 13 |   }
 | 
| 14 | 
 | 
| 15 |   TWI_PORT_SELECT.MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc;
 | 
| 16 |   while( !WaitForTxTWIComplete() );
 | 
| 17 |   _delay_ms(CARD_PAGE_WRITE_TIME_MS);
 | 
| 18 | }  // void card_page_write (unsigned char* page_content , unsigned char page_index)
 | 
| 1 |   TWIC_MASTER_DATA = CARD_PAGE_SIZE * page_index;
 | 
| 2 |   while( !WaitForTxTWIComplete() );
 | 
 Hier setze ich den index auf CARD_PAGE_SIZE(16) * page_index( welche 
Seite ich schreiben möchte)
Sobald ich versuche die 16. ([0,.....16] ist eigentlich die 17. Seite) 
zu beschreiben, wird die erste Seite der Karte überschrieben.
Hatte jemand schon so ein ähnliches Problem ?
Ich würde mich auf jede Antword freuen.
PS:  Microcontroller: XMega 32A4
Gruß,
Kemal