Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Четверг
21 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
1000885
Топик полностью
Andreas
(01.05.2020 20:22, просмотров: 676)
ответил
RxTx
на
Я так все прерывания делаю. Тривиальный кольцевой буфер. В прерывании - только в него пишет и переставляет индекс, который если длина буфера кратная степени двойки (256) сам заворачивается. Вот это: { buf[buf_write_index++] = myvar; buf_updated_flag = true; } ~ три инструкции.
Так я данные и гоняю, только без непонятного buf_updated_flag - проще голову и хвост сравнивать. Но хотелось сразу наружу выкидывать, есть резоны, да и в консоль и так сыпется вывод, смешивать не хотелось. Но похоже не судьба.
Ответить
Это был флаг прерывания, можно было и убрать. Твоя проблема скорее в отсутствии механизмов разделения лога/каналов. Тема эта обширная, самое простое решение добавлять символ в начало строки.
-
RxTx
(01.05.2020 21:50
)