LED mit Schalter ein und ausschalten

OP #4866562
Lesenswert?
• ▲
▼
Hallo an Alle,
ich habe ein Problem welches ich einfach nicht gelöst bekomme. 
Programmieren ist noch ganz neu für mich und ich hoffe auf eure 
Unterstützung. Im der letzten Aufgabe habe ich es geschafft, eine LED so 
lange zum leuchten zu bringen, wie ich den Taster halte:

Void init_MCU()
{
DDRC|=1<<LED1;
PORTA|=1<<SWT1;
}


Void init_MCU();
Int main (void)
 {
  Uint8_t IN;
Init_MCU();
While (1)
 {
In=(~PINA&(1<<SWT1))==(1<<SWT1);
If (IN)
PortC|=(1<<LED1);
Else
Portc&=~(1<<LED1);
}
}

Ich bekomme es aber nicht umgebaut, dass wenn ich eine Taste drücke der 
Zustand beibehalten wird. Ich habe versucht mit in Flanken und 
entprellen von Schalter einzulesen aber komme da nicht weiter.
Hat jemand einen Vorschlag?
#4866619
Lesenswert?
• ▲
▼
Wäre prima wenn du den Code 1:1 posten könntest und mit [ c ]...[ /c ]
umgeben könntest, dann würde die Formatierung nicht flöten gehen.

Prinzipiell musst du dir den Zustand in einer Variablen merken, die
du nicht bei jeder Runde überschreibst:
1
uint8_t on = 0;
2
while (1)
3
{
4
    if ((~PINA & (1<<SWT1)) == (1<<SWT1)
5
        on = 1;
6

7
    if (on) PORTC |=  (1 << LED1);
8
    else    PORTC &= ~(1 << LED1);
9
}

Entprellen geht bspw. mit einem delay nach der 1. Messung
der Pin-Zustände. Wenn dann nach dem delay der Zustand gleich
ist, kannst du "on" bspw. wieder zurück setzen.
Dafür solltest du aber was mit der Google-Suche in diesem
Forum finden.

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.