а мне нужно между ними переключаться пока что выглядит довольно индуссокодуссо: switch (num) { case 0: { test->Field[i]=n; } case 1: { test->Memo=n; } ... у меня просто еще и маллок под структуру, причем это всё в прерывании
а мне нужно между ними переключаться пока что выглядит довольно индуссокодуссо: switch (num) { case 0: { test->Field[i]=n; } case 1: { test->Memo=n; } ... у меня просто еще и маллок под структуру, причем это всё в прерывании
Комментарии: 7
Eugene
malloc и прерывания - антиподы. Вы бы сформулировли более обще вашу задачу, возможно её лучше вообще совсем по-другому решать, тогда и болты против резьбы, возможно, заворачивать не придётся.
Anonim
Парсер ответов АТ-команд, у каждой команды разное количество параметров и их длина
Eugene
У вас команда, наверное, уже лежит в приёмном буфере. В тот момент, когда вы декодировали её структуру (а эти структуры желательно прописать определениями) приводите указатель на её начало в буфере к указателю на соответствующий тип и дальше работайте с этим указателем.
Anonim
увы, но у меня побайтное раскидывание достал и сразу засунул куда надо
Maxim
Тогда проще статически парсер сгенерить
Eugene
Что это значит, опишите подробнее алгоритм?
Anonim
Byte = USART1->DR; Если(Byte не 'буква') Если (режим = 'данные') Если (параметр = 'первый') Структура->элемент1[i] = Byte; Если (параметр = 'второй') Если (i <= n) Структура->элемент2[i] = byte; i++; блин, шифт не зажал, ну да ладно. Примерно так всё и написано