ねえ、私はいくつかの重要な概念を理解しようとしているだけで、私自身の調査を行いましたが、いくつかの質問があり、誰かがそれらが正しいかどうかを確認できれば本当にありがたいです。私はテストのレビューを行っています、そして私たちの教授は私たちにそれを自分で理解するように言いました...だから私はそうしました、そしてここにそれは行きます:)
1:Pointedと呼ばれる10個の要素を持つ配列から要素のアドレスを保持するためにthePointerと呼ばれるポインターを宣言します
int Pointed[10] = {};
int *thePointer = &Pointed[1];
これで助けが必要です...
2:配列のアドレスと配列内の要素の数を受け入れ、情報を使用して配列の各要素をゼロに初期化する関数を記述します
void arrayFunction (int *array, int element)
for (x = 0; x < element; x++);
{
array[x] = 0;
}
3:以下を表すビットを保持する構造を作成します
--それぞれ4ビットのBCD桁を保持する2つのフィールド、一緒に現在の回転カウント(CRC1およびCRC2と呼びます)を保持しますモーター方向:2ビット速度:4ビット障害状態:3ビット構造に名前を付けますcontrolMotor
struct controlMotor{
unsigned char CRC1: 4;
unsigned char CRC2: 4;
unsigned int motorDirection: 2;
unsigned int speed: 4;
unsigned int faultCondition: 3;
};
--typedefを使用して、この新しいデータ型にstatusDrive_tという名前を付けます。
typedef controlMotor statusDrive_t;
--各6台のドライブのステータスを保持するmarsDriveという名前の構造体の配列を作成します
statusDrive_t marsDrive[5] ={statusDrive_t.CRC1,statusDrive_t.CRC2,statusDrive_t.motorDirection,statusDrive_t.speed,statusDrive_t.faultCondition}
配列の最初の要素の各フィールドを最大値で初期化します
marsDrive[0].CRC1 = 15;
marsDrive[0].CRC2 = 15;