LCD auf untesch. Ports aufteilen / SPI Porterweiterung in C

Gast #46434
Lesenswert?

Hallo,

Ich würde gerne in dem Thread gleich zwei Fragen stellen:

1. LCD
Ich versuche einen Porterweiterung für meinen AVR zu realisieren.
Daneben möchte ich aber noch einen LCD display anschließen. Das Progamm
zum Ansteuern des LCD stammt von Peter Fleury
(http://www.mysunrise.ch/users/pfleury/avr-software.html#examples).
Leider muss man laut lcd.h alle LCD Leitungen auf einen PORT lassen. In
diesem Fall bleibt mir aber nur noch der PORTB des ATMEGA8 für den LCD
übrig. Nun ist das Problem, dass sich eben auf PORTB der SPI befindet,
welches sich ideal zum Ansteuern der Schieberegister für die
Porterweiterung eignen würde.

Meine Ideen wären:
1. Schiebereigister per Software steuern...
2. ... eleganter wäre aber die LCD-Ports aufzuteilen (keine Ahnung
wie)

Das ist meine Frage: Wie kann ich das Programm von Peter so
modifizieren, dass ich wenigstens die  RS, RW und E Anschlüsse auf

unteschiedliche Ports legen kann?



2. SPI

http://www.mikrocontroller.net/attachment.php/30856/SPI_74HC595.pdf
Hat jemand zufällig eine Codeschnipsel in C, wie man diese Schaltung
über den SPI ansteuert?

Danke und mfg
Zoltan
Gast #46435
Lesenswert?

Um meine LCD library möglichst kompakt zu machen, habe ich alle 7 LCD
Signale auf einen Port gelegt.

Meine Library kann aber leicht auf andere Ansteuerungsvarianten, z.B.
SPI, I2C, andere Pin-Belegung angepasst werden, indem die Routinen
lcd_write() und lcd_read() angepasst werden.
Gast #46436
Lesenswert?

Hallo Peter,

ich versuche grad Deine Code für mich anzupassen.  Das habe ich schon
gedacht, dass am lcd_write() /read() liegt. Ich habe es versucht
anzupassen, aber es funktioniert (noch) nicht. Ich habe alles mit //ZZZ
markiert, da wo ich Veränderungen vorgenomen habe.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren