Ich mache ein Programm für die MSP430.MSP430 Problem mit Taste nicht ausschalten
Die Inkrementierung läuft beim ersten Klick der Schaltfläche weg. Es hört nicht auf, wenn die Taste losgelassen wird.
Wie kann die Inkrementierung für jeden Schaltflächenklick auf eine Inkrementierung beschränkt werden?
#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;
}
Sind Sie sicher über '0x16' .... Ich denke, Sie brauchen' 0x08' oder so ähnlich. Ich meine, dass 0x16 binär '10110' ist und Sie wahrscheinlich ein einzelnes Bit testen möchten. Mit '0x08' können Sie nur Bit 3 prüfen, zum Beispiel – LPs
Sagen Sie uns, welches MSP430-Modell Sie haben und wie Sie den Button an ihn angeschlossen haben. –
Wo kommt das Signal zurück? Wird es über einen RC-Filter gehandhabt? Wenn nicht, wird dieser Code nie funktionieren. Und Sie wollten wahrscheinlich die Dezimal-Maske 16 anstelle von hex 0x16 verwenden. Benutze auch keine, verwende eine konstante '#define Maske (1 << 4) // Pin 4'. – Lundin