А вот ещё в ту же тему вопрос: как добится валидности 4 байтной величины, если её значение меняется в прерывании? (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено 507 29 ноября 2006 г. 01:45

Ясно что в АВР с 4 байтами одной командой работать не будет. Т.е. в процессе чтения, сравнения и копирования можем получить 1,2,3 байта старые, а остатки новые. Чепуха получится. Как этого получше избежать?
Запрещать прерывания на время чтения? Если честно, не очень красиво. Во-первых не поплывет ли точность, во-вторых мало-ли что там ещё крутится будет...
Можно семафор забацать. Типа один-байт переменная. Её выставляем в 1 перед чтением. В прерывании её чекаем - если 1, то не трогаем 4-байтный счетчик. а семафор щелкаем на 2. проца чтения декрементит семафор и если он остался в 1, то увеличивает счетчик на 1.

"Не, бред полный, но как рассказывает!" (с) День Радио

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

Ответы


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

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

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:


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