Я делаю программу для msp430.Проблема с MSP430 с выключенной кнопкой
Инкремент убегает при первом нажатии кнопки. Он не останавливается при отпускании кнопки.
Как можно ограничить инкремент одним приращением для каждой кнопки?
#include <msp430.h>
int main(void)
{
int i; //delay variable
int dimeRead=0;
int desired=1000;
volatile int total=0;
P1OUT=0; //Supposed to get rid of it hanging at the top
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
while(total<desired)
{
if((P1IN&0x16)!=0x16) // check if switch is pressed or not
{
dimeRead=dimeRead+1;
total=total + 10;
}
//Goal is to flip an out put on to turn on light when desired number is hit.
}
return 0;
}
Вы уверены, что в '0x16' .... Я думаю, вам нужно' 0x08' или что-то в этом роде. Я имею в виду, что 0x16 является двоичным '10110', и вы, вероятно, захотите протестировать один бит. С '0x08' вы можете проверить только бит 3, например – LPs
Сообщите нам, какую у вас модель MSP430 и как вы подключили к ней кнопку. –
Где сигнал отскока? Работает ли он через RC-фильтр? Если нет, вы никогда не получите этот код для работы. И вы, вероятно, хотели использовать десятичную маску 16, а не шестнадцатеричный 0x16. Не используйте также, используйте константу '#define mask (1 << 4) // pin 4'. – Lundin