Basys3 FPGA ボードに実装された microblaze を介して GPIO からの入力を読み取ろうとしています。GPIO 入力は、Basys3 ボードの 16 個のディップ スイッチから来ています。現在、次のコード行を使用して、変数への GPIO 入力を読み取っています。
DataRead = XGpio_DiscreteRead(&GpioDevice, 2);
「GpioDevice」はインスタンス名、「2」はチャネル番号です。この行は 16 個のスイッチを読み取り、スイッチの 16 進値を u32 変数「DataRead」に割り当てます。
GPIO 入力の一部のみを読み取る方法はありますか (例: スイッチが 1111 0000 1010 1100 に設定されている場合、そこから 4 ビットのみを読み取る方法はありますか)
また
すべての 16 ビットを読み取り、その値を u32 ではなくビット ベクトルに割り当てる方法はありますか。
私の目標は、GPIO 入力の個々のビットを使用して、ある種のタスクを実行することです。
ビット 1 = 1 の場合、何かを行います
ビット 2 = 0 の場合、何かを行います。