www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schalten mit AT90S8535


Autor: iceman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tobi,

wozu denn ia und ib, schreib doch gleich:

for(;;){ PORTC = PINA; PORTD = PINB; }



Peter

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm.. weiss nicht... ich programmier halt gern erweiterungsfähig :)

Autor: iceman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.