EMV Taster schützen

Gast #1696661
Lesenswert?

ne ne entprellt sind die mit nem delay , das Problem ist wenn mein 
mosfet mit 2khz taktet macht sich meine Software selbstständig, verlässt 
zum Beispiel dass Menü springt in andere Menüpunkte usw.

ist es ein fehler wenn ich die taster so angeschlossen habe`?

gruß
Gast #1696687
Lesenswert?

okay ich versuche mal deine methode,

habe aber noch eine frage bezüglich deines codes:

und zwar:

so wie ich das verstanden habe ist dieser teil des programms für die 
auflistung der zu entprellenden taster notwenig?
1
{
2
  DDRB  &= ~(1<<PB0);
3
  PORTB |=   1<<PB0;
4
  DDRB  |=   1<<PB2;
5
  DDRB  &= ~(1<<PB1);
6
  PORTB |=   1<<PB1;
7
  DDRB  |=   1<<PB3;
8
  for(;;){
9
    if( debounce( PINB, PB1 ) )
10
      PORTB ^= 1<<PB2;
11
    if( debounce( PINB, PB0 ) )
12
      PORTB ^= 1<<PB3;
13
  }
14
}

wo kommt der große teil des programms hin?

und wo kommt das ergebnis dieses tasters her

wenn ich beispielsweise eine if anweisung für den taster brauche?
Gast #1696757
Lesenswert?

ich versuche diese Entprellsoftware zuerst aus, kann mir jemand helfen 
diese einzubinden verstehe sie nicht!

Beitrag "Entprellen für Anfänger"

Was wird hier genau gemacht?

was bedeutet das ^= ?
1
int main(void)
2
{
3
  DDRB  &= ~(1<<PB0);
4
  PORTB |=   1<<PB0;
5
  DDRB  |=   1<<PB2;
6
  DDRB  &= ~(1<<PB1);
7
  PORTB |=   1<<PB1;
8
  DDRB  |=   1<<PB3;
9
  for(;;){
10
    if( debounce( PINB, PB1 ) )
11
      PORTB ^= 1<<PB2;
12
    if( debounce( PINB, PB0 ) )
13
      PORTB ^= 1<<PB3;
14
  }
15
}

wie kann ich eine if anweisung mit dem Ergebnis erstellen?
#1696850
Lesenswert?

klosk schrieb:
> ich versuche diese Entprellsoftware zuerst aus, kann mir jemand helfen
> diese einzubinden verstehe sie nicht!

Lies bitte auch die nachfolgenden Beiträge in dem Thread.
Da hat auch einer die Tasten high-aktiv geschaltet.


> was bedeutet das ^= ?

Schau bitte in irgendein C-Buch, -Tutorial, -Kurs, -Referenz.


> wie kann ich eine if anweisung mit dem Ergebnis erstellen?

Ganz genau wie in dem Codebeispiel:
1
     if( debounce( PINB, PB1 ) )
2
       PORTB ^= 1<<PB2;

Debounce liefert Wahr bei der Flanke von Losgelassen nach Gedrückt.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren