UART で 8 バイトのデータを受信する関数があり、データ バイトの 1 つを使用して、そのデータ バイトを読み取り、使用する MP3 コーデックの音量を変調する関数を呼び出します。音量を設定する MP3 コーデック関数は、入力が 0x00 の場合は 100% の音量であり、0x64 の場合は 0% であるかのようにサウンドを設定するのは少し奇妙です。
ここで、LabVIEW ファームウェアは、ボリュームを 100% に設定する場合は 0x64 を送信し、0% の場合は 0x00 を UART 経由でデータ バイトに送信するように (チーム内の他の開発者によって) 設定されます。上で言ったように、私が読むつもりです。
この投稿の複雑さを回避するために、私が試みたのは、コンソールから入力を受け取り、処理された出力を出力する単純な C コードを実装することです。入力が 0x00 の場合、出力は 0x64 である必要があり、入力がたまたま 0x64 である場合、出力は 0x00 である必要があります。以下は、私が書いたコードで、次のようなエラーが発生しています。
Disallowed system call: SYS_socketcall
以下のコードは非常に非効率的で非常に基本的なレベルに見えるかもしれませんが、それは理解のためです。
int main(void)
{
int input = 0x00, output = 0x00, i = 0x00, j = 0x64, var = 0x00;
int in_arr[100], out_arr[100];
for(i = 0x00; i < 0x65; i++, j--)
{
out_arr[i] = j;
in_arr[i] = i;
}
printf("Input : ");
scanf("%x",&input);
for(var = 0x00; var < 0x64; var++)
{
if(input == in_arr[var])
{
output = out_arr[var];
printf("0x%x",output);
break;
}
}
return 0;
}