Gast
#34579
moin das problem hatte ich ja aschonmal leider funzt es immernoch nicht
!
ichhabe nun eine variable in dem interrupt, der alle 20ms ausgeführt
wird
ist die variable bei 10 also 200ms soll er sie als KURZ erkennen
und ist sie bei 200 (4 sekunden) soll er sie als lang erkennen
ich hab mir überlegt das in dem INT. nur die VAR hochgezählt wird
sofern das wahr wird:
if (PIND == 254 || PIND == 253 || PIND == 251 || PIND == 247 || PIND ==
239 || PIND == 223 || PIND == 191 || PIND == 127)
aber ich verstehe das irgendwie nicht wie bzw wann man das loslassen
auswerten kann ?!muss ich den aktuellen port in einer variable irgendwo
zwischenspeichern und danach bei nächsten int mit dem aktuellen port
vergleichen um eine veränderung(loslassen) festzustellen
oder soll ich erstmal filtern WELCHER knopf gedrückt ist und dann mit
IF_pin_is__Set abfragen ...
und wo soll der counter wieder zurück gesetzt werden ?
bis jetzt habe ich es so das ich in der main herausfinde was gedrückt
ist und wielange ...
undem ich eine caseanweisung mache:
switch(taster1)
{
case 254:
PORTB = 254;
if (counter == 10)
{
lcd_clrscr();
lcd_puts("Position 1 saved");
delay();
delay();
delay();
delay();
taster1 = 0;
counter = 0;
}
ich hoffe ihr könnt mir weiter helfen !
dankedafür schonmal !
gruß lordchen