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
PIC18 schrieb im Beitrag #2799323: > Wie kann ich dieses Problem beseitigen??? ich würde den C code umschreiben.
Peter II schrieb: > ich würde den C code umschreiben. Das ist mir schon klar..Ich würde ja gerne wissen wie ich das umschreiben kann oder sollte?? Gruss
PIC18 schrieb im Beitrag #2799338: > Ich würde ja gerne wissen wie ich das > umschreiben kann oder sollte?? am besten so, dass es nacher stimmt! Netiquette
.....vielleicht mit einem entsprechenden Programmierwerkzeug?....oder was ist jetzt Deine Frage?
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... :)
Mach eine if Anweisung? Wenn ein Schalter getätigt, setze alle anderen Ausgänge auf low
PIC18 schrieb im Beitrag #2799349: > Ich habe das Programm selber geschrieben. und warum zeigst du uns das nicht? Wie sollen wir dir sagen was du ändern sollte wenn wir nicht sehen wie du es gemacht hast.
Jetzt sieht ihr es.. Könnt ihr mir jetzt einen lösungsweg empfehlem??? Gruss
Hi
>Jetzt sieht ihr es.. Könnt ihr mir jetzt einen lösungsweg empfehlem???
Ich sehe nichts.
MfG Spess
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.
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
du sollst nicht schreiben was der code macht, sondern uns deinen code zeigen. sonst wird dir hier niemand helfen.
> 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 .....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.