www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster an eigener Schaltung wirkungslos


Autor: Tobias Kaminsky (finswimmer)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Bei meiner selbstgebauten Schaltung klappt wieder etwas nicht.
Mit dem gleichem Chip auf dem Entwicklungsboard geht alles.

Ich habe einen Taster an PD5 angeschlossen:
VCC -> Taster -> PD5
//#include <TINY2313.h>                            // ATtiny2313 MCU
#define F_CPU 7372800UL


#include <avr/io.h>
#include <util/delay.h>                               // Delay functions
#include <inttypes.h>

inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
{
    if ( ! (*port & (1 << pin)) )
    {
        /* Pin wurde auf Masse gezogen, 100ms warten   */
        _delay_ms(30);  // max. 262.1 ms / F_CPU in MHz
        _delay_ms(30);
        if ( *port & (1 << pin) )
        {
            /* Anwender Zeit zum Loslassen des Tasters geben */
           _delay_ms(30);
           _delay_ms(30);
           return 1;
        }
    }
        return 0;
}

int main(void)
{

   DDRD=0x40;           /* PIN PD5 auf Eingang (Taster)=0,PD6 auf Ausgang=1            */
   PORTD=0x10;          /* Pullup-Widerstand aktivieren, fÃŒr PD5            */

while(1)
{

if (debounce(&PIND, PD5))             /* Falls Taster an PIN PB6 gedrueckt..    */
   {
   PORTD ^= (1<<PD6);  /* ..LED an Port PD6 an-bzw. ausschalten */
   }
}
return 0;
}
So. Nun ist das Problem, dass sich die LED im Halb-Sekundentakt
an/ausschaltet.
Für mich sieht es so aus, als ob "irgendeine" Restspannung die Routine
veranlasst immer die LED zu schalten.
Wenn ich nun aber mein Multimeter zwischen GND und PD5 klemme, dann habe
ich diese Probleme nicht mehr.
Der Taster funktioniert dann so wie er soll (evtl. ein bisschen langsam
in der Reaktion, aber er geht wenigstens).
Habe ich den Taster nun gar nicht angeschlossen, also an PD5 nichts
angebracht, so schaltet die LED auch munter vor sich hin.

Nun gehe ich davon aus, dass ich irgendein Bauteil vor dem Taster
vergessen habe.

Könnt ihr mir (mal wieder) auf die Sprünge helfen?

Vielen Dank

Tobi

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Logo, wenn Du den Taster an VCC anschließt und einen Pull-Up 
aktivierst, dann ändert sich bei Tastendruck der Zustand des Pins auch 
nicht. Entweder einen externen Pull-Down-Widerstand einbauen (und den 
Pull-Up deaktivieren) oder (und besser, weil ohne Zusatzhardware) den 
Taster gegen GND anschließen. In der Software musst Du dann natürlich 
berücksichtigen, dass ein gedrückter Taster eine 0 am Pin verursacht, 
was aber auf den meisten kommerziellen Experimentierboards genau so 
gemacht wird.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das ist aber nicht im Ernst dein Schaltplan?

Nur zur Information: Einen Schalter legt man am besten zwischen Portpin 
und Masse. Das Portpin verbindet man über einen Widerstand (z.B. 10k) 
mit VCC. Schalter offen Portpin=H, Schalter gedrückt Portpin=L.
In deinem Fall ist das Portpin bei offenen Schalter unbeschaltet. 
Dadurch fängt er alle möglichen Ladungen ein und arbeitet 
unkontrolliert. Mit dem Multimeter wird er Hochohmig auf Masse gelegt 
und bekommt dadurch ein stabiles Potential.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.