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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.