Forum: Mikrocontroller und Digitale Elektronik Taster als Schalter in C


von Scary (Gast)


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

von Peter D. (peda)


Lesenswert?


von Scary (Gast)


Lesenswert?

ich glaub das wurde jetzt falsch verstanden ich will beim ersten mal 
schalten ausgang an

beim nochmaligen schalten ausgang aus!

von Gast (Gast)


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

von Peter D. (peda)


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

von Scary (Gast)


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?

von Scary (Gast)


Lesenswert?

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

mfg

von Scary (Gast)


Lesenswert?

kann mir niemand helfen wo bzw wie kann ich da den ausgang beschalten??

sry dass ich so lästich bin

mfg scary

von Peter D. (peda)


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

von Gast (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.