Attiny13a am Kartenleser mit TTL Ausgang

Gast #5797281
Lesenswert?

Hallo,

ich hab irgend wo ein Denkfehler und finde ihn nicht.

Mein Kartenleser-Signal ist im Bild zu sehen.
Dieses bringt er auf die TX-Leitung, wenn ich einen Tag drauflege.

Ist dies der Fall, kommt als erstes eine fallende Flanke. Somit frage 
ich PB5 auf low ab. Der Attiny soll dann, den Ausgang PB2 für 1sek auf 
High setzten.

Macht er aber nicht. Statt dessen führt er die ganze Zeit das 
geschriebene in der IF-Schleife aus und zieht beim Auflegen des Tags PB2 
für ca. 2sek. auf low.

Sorry, bin ein Neuling was das Thema angeht.

Mein Code
1
#include <avr/io.h>
2
#include <stdint.h>
3
#include <util/delay.h>
4

5
int main(void)
6
{
7

8

9
  _delay_ms(500);
10
  _delay_ms(500);
11
  _delay_ms(500);
12
  _delay_ms(500);
13

14
  DDRB |= (1<<PB2); // Ausgang
15

16

17

18
  while (1) 
19
    {
20
    if (!( PINB & (1<<PINB5)) ) //Abfrage auf low
21
    {
22
      _delay_ms(100); //Warten biss das restliche Signal durch ist
23
      PORTB |= (1<<PB2); //LED an
24
      _delay_ms(500);
25
      _delay_ms(500);
26
      PORTB &= ~(1<<PB2);  //LED aus
27
    }
28
  }
29

30
}

Was mach ich falsch?

Danke für eure Hilfe.
Angehängte Dateien:

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