mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster als Schalter in C


Autor: Scary (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
halli hallo!!

bin Anfänger und hab folgendes Problem will mit einen Taster einen 
ausgang ein und einen ausschalten und bei nochmaligem schalten der 
tasters den anderen wieder aus und den anderen an

wie gesagt das problem ist der taster ich hab jetzt das schon einige 
stunden probiert und ich kappier das einfach nicht naja jeder anfang ist 
schwer!!!

danke

P.S.: hab den Atmega8

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Scary (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaub das wurde jetzt falsch verstanden ich will beim ersten mal 
schalten ausgang an

beim nochmaligen schalten ausgang aus!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Hinweis war schon richtig...
Wenn Du den Taster entprellt hast, kannst Du bei jedem erkannten 
Tastendruck einen beliebigen Pin toggeln ^= (1 << PortX)
alternativ kannst Du alles auch ohne µC mit nem Flip Flop aufbauen

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scary wrote:
> ich glaub das wurde jetzt falsch verstanden

Nein, vollkommen richtig.

Das eine Codebeispiel enthält unter anderem exakt was Du willst.


Peter

Autor: Scary (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erstmal jetzt hab i noch 2 kleine fragen

   > Tasterport und Tasterbit sind sozusagen die PINs bzw das PORTD z. 
Bsp. oder

   > brauch ich dafür aller 4 zustände oder geht das einfacher auch?

Autor: Scary (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir jemand die schritte genauer erklären bring es einfach nicht hin

mfg

Autor: Scary (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir niemand helfen wo bzw wie kann ich da den ausgang beschalten??

sry dass ich so lästich bin

mfg scary

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scary wrote:
> kann mir niemand helfen wo bzw wie kann ich da den ausgang beschalten??

Lies Dir alles mal ganz in Ruhe durch, guck Dir auch mal die anderen 
Links am Ende des Artikels an.

Erzähl mal, wie so Deine Vorkenntnisse bezüglich HW/SW sind.

Eventuell mußt Du vorher noch etwas Grundlagen lernen.


Peter

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Pin als Ausgang definieren (DDRx) und dann das jeweilige Bit Im 
entsprechenden PORT Register bei jedem erkannten Tastendruck 
toggeln(invertieren)
PORTB ^= (1 << PB0)  //Port B, Pin(Bit) 0 wird invertiert

Beim Taster warten bis ein Tastendruck erkannt wird und dann mit nem 
Timer einen Moment warten damit keine Prellen als mehrfach Tastendruck 
erfasst wird. Wenn nach dem 'Moment' immer noch der Taster gedrückt ist 
er erfolgreich erkannt und du kannst daraufhin das Pin toggeln.

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.