Как увеличить состояние с помощью конструкции переключателя. Мне нужен счетчик ++? Я поместил выражение [((button_in & 0x0040)! = 0)] в переключатель (expr). Это дало мне первые два состояния, которые я намеревался. (1) Нажмите кнопку 1, вы получите 0001. (2) Нажмите кнопку 2, чтобы получить 0010. Я не совсем уверен в том, как программировать Нажмите кнопку 1 ДВАЖДЫ, чтобы получить 0010. Я могу выполнить счет внутри цикла while? Могу ли я использовать выражение while как счетчик? Должен ли я помещать другой цикл while в каскад? Я хотел бы увеличить свои штаты. Есть 7 состояний: 0000, 0001 (5 центов), 0010 (10 центов), 0011 (15 центов), 0100 (20 центов), 1000 (25 центов), 0111 (изменение). Я обновил свой вопрос и код, чтобы попытаться четко отразить мое намерение. Я не программист, и мой друг упомянул, что когда я нажимаю кнопку; Я должен проверить текущее состояние; тогда запрограммируйте мой код для этого. Он также упомянул двоичный калькулятор. Какой метод наиболее эффективен? БлагодаряC Количество переключателей для состояний увеличения
int main()
{
char A; //placed for switch expression... (not needed?)
int button_in = 0; // button is set for 0 (not-engaged)
DeviceInit(); //set LED1 thru LED4 as digital output
DelayInit(); //Initialize timer for delay
int count; //maybe required for 5 button pushes. Requesting help with this
while (1) //Can I initiate a count? for a second button push?
{
button_in = PORTReadBits(IOPORT_A, BIT_6 | BIT_7); //Button 1 and button 2 defined
if (button_in != 0) //if button is engaged utilize switch statement
{
switch ((button_in & 0x0040) != 0) //if button1 is engaged
{
case 0:
((button_in & 0x0080) != 0); //Statement: Button2 engages case0
PORTWrite(IOPORT_B, BIT_11); //State goes to 010 (BIT_11 lights up).
break;
default: ((button_in & 0x0040) != 0); //Statement: Button1 engages default.
PORTWrite(IOPORT_B, BIT_10); //This is state 0001 (BIT_10) lights up.
break;
}
DelayMs(100); //100millisecond delay for light shine
PORTClearBits(IOPORT_B, BIT_10 | BIT_11 | BIT_12 | BIT_13); //ClearLEDs
}
}
}
Я думаю, что вам нужно, это состояние машины – Mobius