реклама на сайте
подробности

 
 
> struct и Dataflash, вопрос по Си
KostyanPro
сообщение Jul 12 2007, 09:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 30-01-07
Из: Minsk
Пользователь №: 24 870



Имеем структуру вида:
Код
struct  buf
        {
        {
        uint8_t a;
        uint8_t b;
        uint16_t c[16];
        uint16_t d[16];
        uint16_t e[16];
        uint16_t f[16];
        };
        };


и ее обьявление :
Код
struct     buf my_buf[16];


Вопрос: как грамотно это дело в виде массива my_buf[] положить в Dataflash и потом считать ??

Самый простой выход мне видется в использовании указателя на эту структуру, но не понятно тогда как определить sizeof и как передавать разные размеры переменных -- uint8_t и uint16_t.

з.ы компилятор carm
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Calculator
сообщение Jul 12 2007, 10:10
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 19-04-07
Пользователь №: 27 172



Цитата(KostyanPro @ Jul 12 2007, 15:33) *
Имеем структуру вида:
Код
struct  buf
        {
        {
        uint8_t a;
        uint8_t b;
        uint16_t c[16];
        uint16_t d[16];
        uint16_t e[16];
        uint16_t f[16];
        };
        };


и ее обьявление :
Код
struct     buf my_buf[16];


Вопрос: как грамотно это дело в виде массива my_buf[] положить в Dataflash и потом считать ??

Самый простой выход мне видется в использовании указателя на эту структуру, но не понятно тогда как определить sizeof и как передавать разные размеры переменных -- uint8_t и uint16_t.

з.ы компилятор carm

Допустим, есть функции чтения и записи в DataFlash
void DataFlashWr(uWORD Addr, uBYTE Buf, WORD Len);
void DataFlashRd(uWORD Addr, uBYTE Buf, WORD Len);

Записываем весь массив структур my_buf[]:
DataFlashWr(Addr, (BYTE*)my_buf, sizeof(my_buf));

Записываем один из элементов структуры my_buf[]:
DataFlashWr(Addr, (BYTE*)&my_buf[5], sizeof(my_buf[5]));

Читаем аналогично
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 13:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016