Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Есть вопросы по С: Получить адрес элемента в структуре и вычисление его смещения в структуре...
Отправлено
Amal
09 октября 2008 г. 15:52
адрес в GCCAVR я взял так:
void *p;
struct {
uchar a;
uchar b;}
str;
p=(void*)(&str.a);
//всякие операции
//теперь хочу сохранить только этот элемент в ЕЕпром
eeprom((EEPROM_BASE+(p-&str), *p); ..вот здесь ошибка!
В чём ошибка?
Составить ответ
|
Вернуться на конференцию
Ответы
☞ ☞ Главная дефекационная машина (MBedder) ☞ ☞
-
pidAVR
(13.10.2008 17:03:42
196.38.152.10,196.35.158.181
,
пустое
,
картинка
)
Ответ: может так?
-
diwil
(09.10.2008 18:44:2
192.168.0.254,80.70.230.155
, 202 байт)
Как то очень мутно задан вопрос...
-
Юрий_СВ
(09.10.2008 18:15:49
91.124.222.178
, 218 байт)
это просто смещение той переменной в озу от структуры чтобы найти ее эквивалентный адрес в еепром
-
ы
(09.10.2008 18:18:15
80.92.98.211
,
пустое
)
все эти смещения все равно оставляют странные ощущения... почему бы не объявить переменную в EEPROM и обращаться к ее адресу автоматически?
-
ARV
(09.10.2008 18:26:47
87.117.1.198
, 148 байт)
Написано верно, но "автоматически" здесь очень плохое слово. >>
-
Юрий_СВ
(09.10.2008 19:06:21
91.124.222.178
, 278 байт)
на счет типа памяти в определении - спорить не стану, а проверка готовности EEPROM делается автоматом при использовании макросов eeprom_xxxx_xxx
-
ARV
(09.10.2008 19:48:7
87.117.1.198
,
пустое
)
ну мб еепром внешняя
-
ы
(09.10.2008 18:41:15
80.92.98.211
,
пустое
)
Вообще-то, (p-&str)=0 Для чего это ? Какой смысл ?
-
Юрий_СВ
(09.10.2008 18:22:45
91.124.222.178
,
пустое
)
просто пример составлен неудачно видимо
-
ы
(09.10.2008 18:40:13
80.92.98.211
,
пустое
)
Может, это нужно? #define OFFSET(type,field) ((char *)&(((type *)0)->field) - (char *)0) // Получить смещение до поля field структуры type
-
vmp
(09.10.2008 16:13:8
10.0.1.100,87.245.155.198
,
пустое
)
лишняя открывающая скобка :-)))
-
ARV
(09.10.2008 15:57:34
87.117.1.198
,
пустое
)
указатель на *void считывает не 1 байт а 4 . объяви *p на uchar
-
ы
(09.10.2008 15:55:58
80.92.98.211
,
пустое
)
по-моему, ошибка в другом... invalid operands to binary -
-
ARV
(09.10.2008 16:05:33
87.117.1.198
, 100 байт)
а я так и не понял, ошибка при компиляции (скобка лишняя) или в логиге - не то пишется
-
ы
(09.10.2008 16:06:40
80.92.98.211
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru