Ports sprechen über?

Gast #273337
Lesenswert?
• ▲
▼
Hallo @all,

ich habe ein Problem mit einem ATMEGA 128.
Und zwar habe ich ein Display und ein Relais (über Transistor)
angeschlossen.
Das LCD hängt an: Daten: C0-C7, RS-D7,RW-G0,E-G1
Das Relais hängt an-G4

Das Problem ist, wenn ich das Relais anschalte mit
PORTG = (1<<PG4);     // Thermoelemente Relais an

und danach das LCD beschreibe bzw. ein Delay aufrufe, das mit
den PORTS gar nix zu tun hat, geht PG4 wieder auf 0. Irgendwie koppelt
da
was über oder den PORT hats zerkracht.
Ich hab keine Ahnung woran das liegt...Die PORTS habe ich definitiv
nicht verwechselt und Ausgänge sind auch richtig definiert-habs
durchsimuliert. Ich bentuzte AVRStudio 4.12 mit GCC , also en
C-Projekt. Danke schonmal für eure Hilfe.
#273339
Lesenswert?
• ▲
▼
Hmm, das kommt darauf an, was der Compiler aus dem LCD-Aufruf macht.
Ich sage mal, entweder Relais weg von PortG oder LCD auf 4-Bit-Betrieb
umstellen und dann PortC nur für LCD und PortG für die Schaltperipherie
nehmen.
Den LCD über 3 Ports zu verstreuen, ist nich unbedingt sinnvoll.

Gruss
Jadeclaw.
Gast #273340
Lesenswert?
• ▲
▼
crazy horse:
Ich dachte mit PORTG = (1<<PG4) wird nur G4 gesetzt und alles andere
gelassen wie es ist? Der sbi und cbi bBefehl funktioniert irgendwie
nicht mit der GCC Version. Hast du ne bessere Idee?

Jadeclaw:

Die Aufteilung habe ich wegen dem dem Layout gemacht, damit ich besser
Routen kann... eigentlich dürfte es ja ...egal sein wo was hängt.
Gast #273341
Lesenswert?
• ▲
▼
Z.B. hab ich mit einer älteren GCC Verion einzelne I/O PINS so gesetzt:


  sbi (PORTC,WR);
  cbi (PORTC,WR);

Das funktioniert wiegesagt mit der GCC Version die ich jetzt hab nicht-
das versteh ich auch nicht
Gast #273342
Lesenswert?
• ▲
▼
Ganz richtig, eine ältere Version und der wurde mit Sicherheit schon
darauf hingewiesen, dass einige Funktionen, darunter auch sbi und cbi
entfernt werden (könnten).

nutze
PORTG |= (1<<PG4);  zum Setzen
und
PORTG &= ~(1<<PG4);  zum Löschen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.