Hallo ich suche einen code mit dem ich beim 90S8535 die A- und B-Ports als eingang für taster nehmen kann und die C- und D-Ports als ausgang für LEDs. Das ganze sollte dann so funktionieren: ich drücke (z.b.)taste 1 an port A LED 1 an port C leuchtet ich drücke dann taste 1 an port B LED 1 geht aus und LED 2 geht an und das mit allen ports Wenn jemand ne idee hat wie ich das machen kann, bitte posten# Vielen Dank
Du must erstmal aufschreiben, was Du eigentlich machen willst. Erst dann kannst Du oder ein anderer erkennen, wie das zu programmieren ist. Die paar Zeilen sind jedenfalls hoffnungslos unterbestimmt, damit kann keiner was anfangen. Am besten wäre ein PAP (Programmablaufplan). Einfacher wirds, wenn man erstmal festlegt, welche LEDs und Tasten funktional zusammen gehören und wieviele dieser Funktionseinheiten dann parallel arbeiten müssen. Peter
BYTE ia,ib; DDRA = 0xff; //in DDRB = 0xff; //in DDRC = 0x00; //out PORTC = 0xff; DDRD = 0x00; //out PORTD = 0xff; ia = 0xff; ib = 0xff; while (1) { if (ia != PINA) { PORTC = PINA; ia = PINA;} if (ib != PINB) { PORTD = PINB; ib = PINB;} } damit du auch noch was hast darfst du jetzt die tasten entprellen. viel spass :)
@Tobi, wozu denn ia und ib, schreib doch gleich: for(;;){ PORTC = PINA; PORTD = PINB; } Peter
Hier habe ich mal meine Vorstellung aufgeschrieben, wie das gehen soll : PORT A PORT C Taster 0 LED 0 . . . . Taster 7 LED 7 PORTB PORT D Taster 0 LED 0 . . . . Taster 7 LED 7 Es gibt 2 Blocks mit 8 Tastern und 2 Blocks mit 8 LEDs Wenn ich einen Taster an PortA drücke, soll die entsprechende LED an PortC leuchten. Und zwar solange bis ich den entsprechenden Taster an PortB drücke. Dann leuchtet die entsprechende LED an PortD und die LED an PORTC erlischt. Beispiel: Ich drücke Taster0 an PORT A -> LED 0 an PORTC leuchtet (und leuchtet weiter wenn ich den taster loslasse) Ich drücke Taster0 an PORT B -> LED0 an PORTC erlischt und LED0 an PORT D leuchtet (und leuchtet weiter wenn ich den taster loslasse) das ganze dann für die anderen 7 Taster Ich hoffe das ist verständlich wenn nicht dann bitte schreiben.
Schade, daß heutzutage keine TTL-Gatter mehr gelehrt werden, dann könnte man auch solche einfachen Logikgleichungen aufstellen: for(;;){ PORTC = PINA | PORTC & ~PORTD; PORTD = PINB | PORTD & ~PORTC; } Peter
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.