Свежие обсуждения
Микроконтроллеры

Как научиться писать программы для AVR

1 5

Как говорил Хрюн Моржов - "мощно задвинул" Может быть, все-таки поподробнее про задачу напишете, потому что подсказать я, думаю, смогу, только вот не пойму, про что подсказывать. Для чего первый элемент должен быть последним в структуре? А где тогда должен быть нулевой элемент? Второй элемент? В чем проблема - в особенностях разводки платы? Или в чем-то другом?

 

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 ошибся (налезают чуть больше) , подрихтую.
Теперь , думаю, а не нужны ли мне для шкалы битовые поля?

 
1 5