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.
ist doch auch korrekt. PORTG = (1<<PG4) setzt PG4 auf 1, alle anderen Ports auf 0. Ist zwar nicht das, was du willst....
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.
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.
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
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
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.