Nur ein Ausgang auf High setzen

Gast #2799323
Lesenswert?

Hallo an alle lieben,

ich habe 8 schalter an einem Eingang des Mikrocontrollers(PIC18) 
angeschlossen. Durch umschalten des Schalters soll die am Ausgang 
angeschlossene LED leuchten! Für jede schalter habe ich jeweils einen 
LED angebracht!

Die Funktionen( in C ) der einzelnen schalter werden dann in einer 
do-while Schleife nacheinander aufgerufen.

Jetzt möchte ich hier eine Verriegelung einbauen, sodass nur eine LED am 
ausgang leuchten kann!

Das Problem: Wenn ich 2 Schalter schließe, blinken die LED´s am 
Ausgang..

Wie kann ich dieses Problem beseitigen???

Gruss
Gast #2799349
Lesenswert?

Ich habe das Programm selber geschrieben.

void main(void)
{
do{
Schalter1();
Schalter2();
..
..
}while(1);
}

Da der die einzelnen Funktionen durchgeht, kann auch mehrere LED's am 
Ausgang leuchten. Dies ist ja mein Problem... :)
Gast #2799459
Lesenswert?

PIC18 schrieb im Beitrag #2799448:
> Jetzt sieht ihr es.
Wo? Keine Ahnung was Schalter1() und Schalter2() machen.
Mit dem Bruchstück kann doch keiner etwas anfangen.

Du mußt dir den vorherigen Schalterzustand merken, damit du damit 
vergleichen kannst und nur bei einer Änderung an den Schaltern den 
Zustand der LEDs änderst. Hast du über Entprellung nachgedacht?
Wenn aller Schalter auf einem Port liegen, dürfte das die Sache 
übersichtlicher gestalten.
Gast #2799497
Lesenswert?

Die schaltern sind in den unterschiedlichen ports 
angeschlossen..(a,b,c,d) eine entprellung habe ich bereits auch mit 
warteschleifen implementiert.
In der funktion schalterX() geht die led bei einer unterschreitung des 
schwellwertes( also beim schliessen des schalters) an--> if( adcval < 
threshold) led=1; else led=0;
Die funktionen sind für alle anderen schaltern identisch

Gruss
Gast #2799513
Lesenswert?

> In der funktion schalterX() geht die led bei einer unterschreitung des
> schwellwertes( also beim schliessen des schalters) an--> if( adcval <
> threshold) led=1; else led=0;

Das einlesen des Tastenstatus ist ja auch die richtige Aufgabe für einen 
ADC .....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren