www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme bei ansteuerung von LCD über verschiedene PORTs-Pin


Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi leute

wie das Thma schon sag ich versuche aus Pin-Verteilungsgründe mein  LCD 
über vierschiedene Portpins im Betrieb zu nehmen  und es klappt nicht.

hier ist es konkret. ich möchte am PORTD die PIND0 bis PIND3 benutzen 
für DA4 bis DA7 und am PORTA  die PINA4  für RS  und PINA5 für E nehmen.

Es klappt aber nicht .

wenn ich aber statt am port A am PORTD die Leitungen RS und E  jeweil am 
PIND4 und PIND5 einschliesse läuft alles wunderbar.

Was ist der Grund ?  Hat eine schon ein Problem damit gehabt ???
Wie ist es lösbar nicht alle Leitung auf einem Port anzuschliessen und 
trotzdem eine Funktionierendes Routine zu bekommen?


Danke für Hilfe

Karl

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wie ist es lösbar nicht alle Leitung auf einem Port anzuschliessen und
>trotzdem eine Funktionierendes Routine zu bekommen?

Indem man es richtig macht. Aber Ernst beiseite. Wahrscheinlich hast du 
die Pinwanderung nicht vollständig gemacht. Wie wäre es mal mit dem 
Code?.

MfG Spess

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde deinen Post ja mal richtig klasse: Keine Problembeschreibung, 
kein Code, kein Schaltplan...

Es spricht ja nichts dagegen, die Pin querbeet zu verteilen (OK, für ein 
Grafikdisplay könnte es u.U. zu langsam werden), wenn man darauf achtet, 
die anderen Pins nicht zu verstellen (In der Codesammlung gibt's ne 
(GCC)C-Library, bei der die 6 Pins von Text-LCDs beliebig verteilt 
werden können - für AVRs).

hth, Jörg

edit: Ich seh grad: deine Hardware verschweigst du ja auch noch

Autor: na sowas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie ist es lösbar nicht alle Leitung auf einem Port anzuschliessen und
> trotzdem eine Funktionierendes Routine zu bekommen?
Indem die Software die entsprechenden Pins ansteuert  :-/

Autor: Karl (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
na ja habe schon lange rum probiert.

hier ist ein code abschnitt im Anhang am PORTC mit einer Lücke zwischen 
DA-Leitungen und RS-E-Leitungen

Autor: na sowas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich möchte am PORTD die PIND0 bis PIND3 benutzen
> für DA4 bis DA7 und am PORTA  die PINA4  für RS  und PINA5 für E nehmen.
Und dann
> hier ist ein code abschnitt im Anhang am PORTC
Ja, was denn jetzt?

Probiers mal so:
    if (rs) PORTE |= (1<<4);  // Zustand für RS-Leitung --- PINA4  für RS
    else    PORTE &=~(1<<4);
    PORTD = (PORTD&0xF0)|(data>>4)&0x0F;// output high nibble first 
  lcd_flash_e ();    
    PORTD = (PORTD&0xF0)|(data&0x0F);   // output low nibble
  lcd_flash_e ();
  delay(2000);
}

void lcd_flash_e ()
{
  PORTE |=  (1<<5);    // Enable = HIGH --- PINA5 für E
  delay(1);
  PORTE |= ~(1<<5);    // Enable = LOW
  delay(64);        
Warum muß eigentlich jeder das Rad immer wieder neu erfinden?

Autor: na sowas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schlags kaputt:  ersetze die PORTE durch PORTA
Gute Nacht ;-)

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja danke


aber an dem Code liegt es nicht .
wie gesagt  es funktioniert  ganz gut  , wenn die PINs  vortlaufen 
beschaltet sind.  Aber wenn ich zum beispiel von 0 bis 3 beschalte und 
weiter von 6 bis 7 die E und RS Leitungen  anschließe, geht es dann halt 
nicht. (Code bleibt unverändert aber nur die PORTsPin ändern sich).

Ich kappiere dass einfach nicht.

Autor: H.J.Seifert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, welcher Prozessor? PortC - da leuchtet bei mir immer das JTAG-Licht 
auf:-)

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich benutze der ATMEGA8515 aus de STK500

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Karl schrieb:
> aber an dem Code liegt es nicht .
> wie gesagt  es funktioniert  ganz gut  , wenn die PINs  vortlaufen
> beschaltet sind.  Aber wenn ich zum beispiel von 0 bis 3 beschalte und
> weiter von 6 bis 7 die E und RS Leitungen  anschließe, geht es dann halt
> nicht. (Code bleibt unverändert aber nur die PORTsPin ändern sich).
>
> Ich kappiere dass einfach nicht.

Ich Deinen Text auch nicht...
Wieso soll es bei unverändertem Code plötzlich an anderen Pins 
funktionieren?

Gruß aus Berlin
Michael

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.