реклама на сайте
подробности

 
 
> Interlocked Exchange, проблема с массивом данных
Mikron
сообщение Oct 29 2015, 12:53
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 1-03-10
Пользователь №: 55 731



Первый раз столкнулся с такой проблемой.
stm32f407
В прерываниях по usart заполняю массив данными. Данных всегда одинаковое количество. Когда принимаю последний байт, выставляю флаг и данные разбираю в общем цикле.

Код
        if(cnt<MAX_STRLEN){
            received_string[cnt-1] = t;
        }
        else if(cnt == MAX_STRLEN){
            received_string[cnt-1] = t;
            cnt = 0;
            flag_p = 1;
        }

Но прерывание может возникнуть снова в тот момент, когда я еще не успел разобрать данные, соответственно они могут испортиться.
Вопрос, как выйти из этой ситуации? Есть ли какие-нибудь атомарные операции, чтобы данные не бились. Спасибо
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016