Я работаю над программой, которая выполняет дебетовую транзакцию с помощью кнопок в качестве ключей. До сих пор я получал сообщение по умолчанию «Hello», отображаемое в самом начале, пока не была нажата кнопка 1 или кнопка 2 (PB1 и PB2). Кажется, у меня возникла проблема с моим заявлением о переключении. Вот что я пытаюсь сделать: инициализировать с помощью «Hello» на экране и подождать, пока пользователь нажмет кнопку. Если нажата PB1, перейдите к случаю 2. В случае 2 он отобразит общую сумму и предложит пользователю нажать либо PB1 для подтверждения, либо PB2 для отмены. Если нажата PB1, перейдите к случаю 3. Если нажата PB2, вернитесь к случаю 1 и снова представляйте сообщение по умолчанию, пока пользователь не нажмет кнопку. Случай 3 затем просто определит, с какого аккаунта они берутся, и перейдет к случаю 4, чтобы принять пин-код # (я не включил это, но по сути это процесс, который я пытаюсь завершить).
Состояния кнопок pu sh равны '1', когда они НЕ нажаты, а когда нажаты, они равны '0'. Вот почему я попытался использовать while (PB1 == 0), чтобы при нажатии на PB1 сделать следующее. Я также пытался использовать if (PB1 == 0), чтобы сделать то же самое, но я, похоже, застрял в oop просто печатать привет снова и снова в обоих случаях. Затем, в то время как в этом l oop, если я нажимаю PB1, он сразу же перемещается к «Всего составляет $ 20,75. Нажмите 1 для OK или 2 для ОТМЕНЫ» на «Отменено», после чего он просто повторяет «Отменено», вместо того, чтобы вернуться к Case 1. «Отменено» следует печатать только в том случае, если нажата PB2, а это еще не то, что я сделал, но оно все еще печатает.
Любая помощь будет принята с благодарностью.
int beginProcess = 1;
while (1)
{
switch (beginProcess)
{
case 1:
printf("Hello \r\n");
PB1 = readPin1;
while (PB1 == 0)
{
beginProcess = 2;
}
break;
case 2:
printf("Total is $20.75 \r\n");
printf("Press 1 for OK or 2 for CANCEL\r\n");
PB1 = readPin1;
PB2 = readPin2;
while (PB1 == 0)
{
beginProcess = 3;
}
while (PB2 == 0)
{
printf("Cancelled \r\n");
beginProcess = 1;
}
break;
case 3:
printf("Press 1 for chequing \r\n");
printf("Press 2 for savings \r\n");
PB1 = readPin1;
PB2 = readPin2;
while (PB1 == 0)
{
beginProcess = 4;
}
while (PB2 == 0)
{
beginProcess = 4;
}
break;
}
}