[an error occurred while processing this directive]
Ответ: +
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено K A A 27 июля 2005 г. 15:50
В ответ на: Спасибо с массивами (строками) все работает, а вот со структурами такой глюк... отправлено Andrey_ 27 июля 2005 г. 15:18

Это не баг. Если хочешь читать из памяти программ, нужно использовать спец. функции из pgmspace.h, для массивов и структур memcpy_P (смотри avr-libc). Это связано с тем, что язык C вообще и компилятор gcc в частности не создавались изначально под архитектуру с раздельными памятью программ и памятью данных. Когда работаешь с памятью данных, все как обычно в C, а обращение к памяти программ - только через функции по указателям на переменные. В твоем случае вот так:
memcpy_P(&uc, rrr.ccc+4, 1)
или
memcpy_P(&uc, &(rrr.ccc[4]), sizeof(char))

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru