|
|
|
|
Как говорил Хрюн Моржов - "мощно задвинул" Может быть, все-таки поподробнее про задачу напишете, потому что подсказать я, думаю, смогу, только вот не пойму, про что подсказывать. Для чего первый элемент должен быть последним в структуре? А где тогда должен быть нулевой элемент? Второй элемент? В чем проблема - в особенностях разводки платы? Или в чем-то другом? |
|
|
chav1961: только вот не пойму, про что подсказывать. Все, я , кажись, сам понял, как сформулировать. Мне надо два массива по 8байт , но так чтобы второй массив "наехал" на последний элемент -первого массива , одним байтом В сумме в памяти они бы занимали 15 байт. Первый я объединю со структурой, в результате последняя циферка будет демонстрироваться в один такт со шкалой(2х кратное мультипл. у меня). |
|
|
Примерно так: union {char allArrays[15]; union {char firstArray[8]; struct { char notUsed[7]; // Чтобы сдвинуть следующий массив на 7 байт. char secondArray[8]; } forSecondArray; } everyArray; } store; Доступ к 15 байтам целиком - store.allArrays, к первому массиву - store.everyArray.firstArray, ко второму массиву - store.everyArray.forSecondArray.secondArray. Немного заумно, но работать будет
|
|
|
chav1961: Примерно так: Получилось! Получилось! Я еще нацепил структуру на первый массив, как и хотел. Общение выглядит так: u_all.digit_scale.str_digit.str_sens.edn=0xAA; u_all.digit_scale.scale.secondArray[2]=0x55; Попадает в соседние байты. Где-то на 1 ошибся (налезают чуть больше) , подрихтую. Теперь , думаю, а не нужны ли мне для шкалы битовые поля? |
|
|
|
|