Forum: Mikrocontroller und Digitale Elektronik PIC16F1517 - Wechsel Signalpegel


von gruser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen seltsamen Effekt festgestellt. Bei folgendem Code:

  Wait (10);
  RW = 1;
  Wait (10);
  EN = 1;
  Wait (10);
  RS = 1;
  Wait (10);

messe ich das beigefügte Ergebnis (s. Anhang). EN wird ausgeschaltet 
wenn RS auf "1" gesetzt wird. Wie kann so etwas passieren? Wenn ich die 
Reihenfolge von EN und RS oben vertausche, dann wird RS ausgeschaltet 
sobald EN gesetzt wird.

Vielleicht hat jemand eine ähnliche Erfahrung gemacht und kann mir 
helfen.

Grüße
gruser

von besupreme (Gast)


Lesenswert?

Meine recht trübe Glaskugel sagt, RS und EN könnten vielleicht im selben 
Byte liegen. Und RS in einem anderen..??

von besupreme (Gast)


Lesenswert?

..RW.. in einem andern...???

von gruser (Gast)


Lesenswert?

Alle Bits liegen im selben Byte.


bit RS @ PORTC.2;    // Ausgang
bit RW @ PORTC.1;    // Ausgang
bit EN @ PORTC.3;    // Ausgang


TRISC = 0b.1110.0001;

von Carsten M. (ccp1con)


Lesenswert?

Versuch mal die LAT anstelle PORT Register!

von gruser (Gast)


Lesenswert?

Carsten du bist mein Held!

Hatte noch nie einen IC der sowas kann. Vielleicht für andere die das 
gleiche Problem haben: Habe einfach wie vorgeschlagen PORT gegen LAT 
ausgetauscht und schon funktioniert es:

bit RS @ LATC.2;    // Ausgang
bit RW @ LATC.1;    // Ausgang
bit EN @ LATC.3;    // Ausgang

Danke noch einmal!

Grüße
gruser

von bingo (Gast)


Lesenswert?

Das ist doch ein alter Hut und bekannter PIC-Bug, wer sprut liest, weiss 
mehr:

http://sprut.de/electronic/pic/fallen/fallen.html#inout

von bingo (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.