Я работаю с платой xilinx spartan 6 и микроконтроллером. Я использую свой акселерометр микроконтроллера для управления движущимся блоком на моем спартанце 6.
Я сейчас печатаю
xil_printf("%c",XUartLite_RecvByte(XPAR_UARTLITE_1_BASEADDR));
и я вернулся в свой терминал
$SWITCH 0
$ENC___ 13
$ACC___ -205 -317 860
$ACCRAW 796 812 1134
$SWITCH 0
$ENC___ 13
я просто не хочу, чтобы мои данные $ ACCRAW представляли, как это сделать и сохранить это, чтобы использовать их для управления моим movingBlock?
Тебе необходимо синтаксический анализатор.
В вашем случае это будет простой конечный автомат с одним состоянием для каждой буквы строки \n$ACCRAW
это было признано, то есть
State 0 (uninteresting data):
'\n' -> go to state 1
otherwise -> go to state 0
State 1 (beginning of line):
'$' -> go to state 2
'\n' -> go to state 1
otherwise -> go to state 0
State 2 (after dollar sign):
'A' -> go to state 3
'\n' -> go to state 1
otherwise -> go to state 0
[...]
State 8 (after "$ACCRAW"):
' ' -> clear x, go to state 9
'\n' -> go to state 1
otherwise -> go to state 0
за которым следует одно состояние для каждой из трех осей:
State 9 (read X value):
'0'-'9' -> multiply x by 10, add current digit
' ' -> clear y, go to state 10
'\n' -> go to state 1
otherwise -> go to state 0
[...]
State 11 (read Z value):
'0'-'9' -> multiply z by 10, add current digit
'\n' -> start processing of data, go to state 1
otherwise -> go to state 0
В последнем состоянии последний символ новой строки затем начинает обработку новых значений, прежде чем перейти в состояние 1, как обычно.
Вы можете запустить конечный автомат в состоянии 0 или 1.