[an error occurred while processing this directive]
кто-нить мне может разжевать про volatile применительно к пикам+пикси+мплаб?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено LordN 17 июля 2006 г. 21:57

нихера не понимаю.
Дасм меня в воскресенье научил (за что ему гран мерси еще раз :о) ) как поколотить проект на отдельные файлы.
поколотил, для глабальных переменных и констант завел две пары файлов *.c и *.h
в *.c описания + инициализация, в *.h все прописано extern-ами.
удалось скомпоновать функции в файлах так, чтоб проект начал работать в железе (в симуле мплабовском он работает не смотря ни какие мои выверты, а в железе не всегда, точнее сказать - редковато :о)
дык вот, стал я тут играться со static, volatile, near, far - и ваще перестал понимать что-либо.
вот скажите кто знает эту тему, применительно к пику (18ф252), что должно лежать в *.c и что в *.h ?

пример:
в объявляю
static volatile near unsigned char bitMap @ 0x014;
static volatile near bit T10ms @ ((unsigned)&bitMap*8+0);
static volatile near bit T100ms @ ((unsigned)&bitMap*8+1);
.........................
(сперва пробовал их объявлять в global_val.с - ругается, не компилит. а так покрайней мере компилится)
но что я вижу после компиляции - объявленная следом переменная
(в global_val.с: near unsigned char chTmp=0;
в global_val.h: extern near unsigned char chTmp;)
лежит по тому же адресу 0х014. ниче не понял. компилеру штоли похер такая конструкция? а как быть - искать свободный байт в памяти и следить чтоб компиллер его ничем не занял? или есть какие-нить вспомогательные директивы?

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание