ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
632782 Топик полностью
fk0, легенда (21.11.2015 13:18, просмотров: 149) ответил LightElf на Уел :) Ессно есть некоторые допущения по частоте следования этих прерываний. Иначе функа может поломаться несколькими способами, как вариант она может никогда не завершиться. Я с ее помощью читаю счетчик таймаута, который из прерывания
Есть же алгортм Деккера для таких случаев (и, см. английскую википедию, альтернативные алгоритмы). В основном потоке делаем критическую секцию. В прерывании ставим флаг (если не получается войти в секцию), который проверяем на выходе из https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%94%D0%B5%D0%BA%D0%BA%D0%B5%D1%80%D0%B0
критической секции основного потока и исполняем код прерывания. Как вариант. Сложновато что-то. Для простых случаев, наверное можно завести ещё одну булевую переменную (f), устанавливаемую в прерывании каждый раз при модификации *ptr. В основном коде сбрасывать, затем читать temp=*ptr, затем проверять переменную f, если установлена -- повторять.
[ZX]