私は小さなロボットである実行可能ファイルを持っています。これは行をたどることになっています。私の仕事は、コマンドを実行する C コードを作成することです。ここでの問題は、ロボット プログラム自体からデータを取得して送り返すことです。
命令は 8 ビットのバイナリ コードでソフトウェアに渡され、データを処理するためにこれら 2 つの構造が用意されています。
typedef struct
{
unsigned speed:4;
unsigned inv_right_wheel:1;
unsigned right_wheel:1;
unsigned inv_left_wheel:1;
unsigned left_wheel:1;
} INPUT;
typedef struct
{
unsigned char unused:2;
unsigned char capt_left:1;
unsigned char capt_right:1;
unsigned char cont_back_right:1;
unsigned char cont_front_right:1;
unsigned char cont_back_left:1;
unsigned char cont_front_left:1;
} OUTPUT;
バイナリコードのアドレスがどこにあるかを見つけるために、私はこのような小さな関数REGISTER(0xE001)
(その型は a static volatile unsigned char * REGISTER(unsigned short address)
) を持っています。
私のメインは次のようになります。
int main() {
OUTPUT *out;
INPUT *in;
out = REGISTER(0xE001);
printf("%d", out.capt_left);
return EXIT_SUCCESS;
}