Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Пятница
22 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры
1283498
Топик полностью
POV
(12.02.2023 12:04, просмотров: 109)
ответил
Boвa
на
У вас кейл -51 следовательно MCS-51, следовательно атомарны только чтения байтов. Вы читаете 4 байта, следовательно чтение не атомарно, следовательно величина может изменится во время чтения. При проверке temp!=systick время чтения systick больше чем при temp2 =systick следовательно операция temp!=systick чаще приводитк к глюкам, но это не значит что и код temp2 =systick тоже безглючный. Вам нужно либо прерывания запрещать на время чтений systick либо организовывать мютекс,
И? Во время второго чтения произошло изменение - будет неравенство и новый цикл чтения. Вариант с двумя предварительными чтения вообще железобетонный.
Ответить