Skip to content

wrong data when using more than 255 byte #44

@herbert131

Description

@herbert131

I'm using a struct (~272 byte) to manage my data. Within the struct there are two two-dimentional float arrays each 128 Byte.
when I read out the struct, some data (always [3][4]) of one array is corrupt - showing "-inf".
When I access the dedicated corrupt entry directly the value is read out correctly. ( reading single bytes in the suspected area did als not show any wrong data ...
Are there limitations when using arrays ?

I'm using 24LC256

initalisation:

        myMem.setMemoryType(256); // Valid types: 0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1025, 2048   // 21kByte
        myMem.setPageSizeBytes(64);          // 64 Bytes pro Page 
        myMem.setAddressBytes(2);            // 2 Byte Addressierung (16 Bit) für >16 kbit
typedef struct                
{
    uint8_t version;             // 1 byte
    uint8_t reserved[3];       // 3 Byte  padding

    bool   cal_A[4];      // 4 Byte
    bool   cal_B[4];      // 4 Byte
    float   korr_B[4][8];   // 128 Byte
    float   korr_A[4][8];   // 128 Byte

    uint16_t reserved2;        // 2 Byte
    uint16_t crc;              // 2 Byte        
} calstruct;

// TEST read out [3][0] to [3][7] - > value of [3][4] corrosponts to test array[4] is correct

float   mem_valuefloat;
float   test_array[8];
float  test_value2;
offset = offsetof(calstruct, korr_A[3][0]);
for (int i = 0; i < 8; i++) {
       myMem.get((LOCATION_CAL_LIPO + offset + i*(sizeof(float))), mem_valuefloat);  
      test array[i] =  mem_valuefloat;  
}
test_value2 = korr_A[3][4];    -> corrupt data "-inf"

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions