スイッチの出力を 1 つの変数に結合する方法があるかどうか疑問に思っていました。つまり、スイッチ 1、スイッチ 2、スイッチ 3、およびスイッチ 4 があるとします。各スイッチは個別に宣言され、スイッチの出力はスイッチ 1 -0 スイッチです。 2 -1 スイッチ 3 -1 スイッチ 4 -0
これらの出力を 1 つの変数に結合したい (例: switch_output = 0110) そして、これを自然数に変更したい。
これは可能ですか??
ありがとうございました
PS: これは単なる例です。実際に 18 個のスイッチでこれを実行しようとしています。使用しているプログラムでは、各スイッチを個別に宣言することしかできません。
ここにそれらが宣言されている方法があります
static const gpio_pin_t SW0 = { .port = 2, .pin = 0};
static const gpio_pin_t SW1 = { .port = 2, .pin = 1};
static const gpio_pin_t SW2 = { .port = 2, .pin = 2};
static const gpio_pin_t SW3 = { .port = 2, .pin = 3};
static const gpio_pin_t SW4 = { .port = 2, .pin = 4};
static const gpio_pin_t SW5 = { .port = 2, .pin = 5};
static const gpio_pin_t SW6 = { .port = 2, .pin = 6};
static const gpio_pin_t SW7 = { .port = 2, .pin = 7};
static const gpio_pin_t SW8 = { .port = 2, .pin = 8};
static const gpio_pin_t SW9 = { .port = 2, .pin = 9};
static const gpio_pin_t SW10 = { .port = 2, .pin = 10};
static const gpio_pin_t SW11 = { .port = 2, .pin = 11};
static const gpio_pin_t SW12 = { .port = 2, .pin = 12};
static const gpio_pin_t SW13 = { .port = 2, .pin = 13};
static const gpio_pin_t SW14 = { .port = 2, .pin = 14};
static const gpio_pin_t SW15 = { .port = 2, .pin = 15};
static const gpio_pin_t SW16 = { .port = 2, .pin = 16};
static const gpio_pin_t SW17 = { .port = 2, .pin = 17};
Mahmoud Fayez 私はあなたの解決策を試しましたが、それは特定の点まで機能します。ここで得られるのは、2進数ではなく自然数です。これは、出力の印刷画面です
これがコードです。動作させるために少し変更する必要がありました
for (i = 0; i < SwitchesCount; i++)
{
temp2 = GPIO_Get(Switches[i]);
iResult = (iResult << 1) + temp2;
printf ("%lu, ",temp2);
}
printf ("\n iResult = %lu \n",iResult);
static uint32_t iResult = 0;
uint32_t は unsigned long です