AtTiny13A - umgekehrtes Verhalten beim Taster

OP #3212274
Lesenswert?
• ▲
▼
Hallo zusammen!

Habe endlich Zeit gefunden um einen AtTiny13A zu programmieren.
Mit LED blinken lassen hat es ja ganz gut geklappt, aber beim Taster 
scheiter ich.

Trotz Verwendung der internen Pull-Ups, wird PINB als High gelesen, wenn 
der Taster offen ist (et vice versa). Es ist definitv kein Öffner und 
gegen Masse geschaltet.

Hier der Code:
1
#define F_CPU 1000000UL // 1MHz ist Default-Takt
2

3
#include <avr/io.h>
4
#include <util/delay.h>
5

6

7
void on()
8
{
9
  PORTB |= (1 << PB3);
10
}
11

12
void off()
13
{
14
  PORTB &= ~(1 << PB3);
15
}
16

17
#define TASTER PB2
18
uint8_t tasterOn;
19

20
int main(void)
21
{
22
  // Init
23
  DDRB = 0;
24
    DDRB |= (1 << PB3); // LED Ausgang
25
  PORTB |= (1 << TASTER); // Taster Pullup
26
  
27
  // Start (Testblinken)
28
  for(uint8_t i = 0; i < 3; i++)
29
  {
30
    on();
31
    _delay_ms(500);
32
    off();
33
    _delay_ms(500);    
34
  }
35

36
    while(1)
37
  {
38
    // Taster gedrück?
39
    if ( PINB & ( 1 << TASTER ) )
40
    {
41
      tasterOn = 1;
42
      
43
      // entprellen
44
      for(uint8_t i = 0; i<100; i++)
45
      {
46
        _delay_ms(3);
47
        
48
        if ((PINB & ( 1 << TASTER )) == 0)
49
        {
50
          tasterOn = 0;
51
          break;
52
        }
53
      }
54
      
55
      // Taster über längere Zeit gedrückt?
56
      if(tasterOn == 1)
57
      {
58
        on();
59
        _delay_ms(1000);
60
      }
61
      
62
      off();
63
    }
64
    
65
    _delay_ms(10);
66
    }
67
}


Wenn ich ein Proggi gefunden habe, werde ich den Schaltplan posten. 
Erstmal in Textform:
- Reset über 10k Widerstand an VCC
- LED an PB3 gegen VCC (funzt auch)
- Taster (Schließer) an PB2 ohne Widerstand gegen Masse
- Spannungsversorgung aus 9V Batterie, geregelt auf 5V über LP2950 mit 
2x Kondensatoren ohne Elko
- Breadboard, ISP 6x

Verwende den mkII und AVR Studio 6.1

PS: Geht natürlich etwas kürzer, aber ich dachte entprellen würde nicht 
schaden.
Im Debugger funzt es einwandfrei.
Angehängte Dateien:
Gast #3212398
Lesenswert?
• ▲
▼
Nikolai W. schrieb:

> Trotz Verwendung der internen Pull-Ups, wird PINB als High gelesen, wenn
> der Taster offen ist

Das ist doch genau, was zu erwarten ist.

Wenn du willst, dass bei offenem Taster Low gelesen wird, musst du einen 
externen Pulldown gegen GND verwenden und den Taster gegen Vcc schalten.

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.