Hallo, ich versuche momentan ein Grafikdisplay an einem Atmega128 zum Laufen zu bringen. Das ganze in C. Hab auch schon fertige Routinen zur Initialisierung usw, nur mit den Ports hab ich Probleme. Auf Grund des Layouts sind die Daten und Steuerleitungen auf die Ports C und D verteilt. Und bei folgenden Zeilen gibts dann Probleme: // Ports #define LCD_CMD_PORT PORTC // Command Output Register #define LCD_CMD_DIR DDRC // Data Direction Register for Command Port #define LCD_DATA_IN PIND // Data Input Register #define LCD_DATA_OUT PORTD // Data Output Register #define LCD_DATA_DIR DDRD // Data Direction Register for Data Port // Function Paramters #define INCREMENT_X 0 #define NO_INCREMENT_X 1 // Command Port Bits #define D_I PD0 // D/I Bit Number #define R_W PD7 // R/W Bit Number #define EN PD1 // EN Bit Number #define CSEL1 PC4 // CS1 Bit Number #define CSEL2 PD4 // CS2 Bit Number Gibt es eine Möglichkeit die durcheinander gewürfelten Pins wieder zu einem Port zusammen zu fassen ? Oder kann ich in der Definition irgendwie mit den einzelnen Pins arbeiten ? MFG
Hmm? Ich verstehe irgendwie nicht, was das Problem ist. Wenn die Bits verteilt sind kann man die halt nicht mit einem einzelnen Zugriff setzen - na und? Fremder Display-Code? Tja, umschreiben oder selber machen.
Maniac schrieb: > ... > Gibt es eine Möglichkeit die durcheinander gewürfelten Pins wieder zu > einem Port zusammen zu fassen ? ja in der Software - aber hier musst du die vorhandene Lib anpassen > Oder kann ich in der Definition irgendwie mit den einzelnen Pins > arbeiten ? nein, mit den Def's wird das nichts Schreib mal wie dein Display angeschlossen ist. Sascha
Hallo Sascha und danke für deine Antwort die Datenleitungen (DB0...DB7) und auch die Steuerleitungen (Enable, R/W, usw..) sind jeweils auf PORTC und PORTD verteilt. Es muss doch eine Möglichkeit geben beliebige Pins zu einem Port zusammen zu fassen, quasi eine Art virtuellen Port zu erstellen, auf den man dann entsprechend zugreifen kann. Sonst muss ich ja die komplette Software umschreiben.
Maniac schrieb: > Hallo Sascha und danke für deine Antwort > > die Datenleitungen (DB0...DB7) und auch die Steuerleitungen (Enable, > R/W, usw..) sind jeweils auf PORTC und PORTD verteilt. > > Es muss doch eine Möglichkeit geben beliebige Pins zu einem Port > zusammen zu fassen, quasi eine Art virtuellen Port zu erstellen, auf den > man dann entsprechend zugreifen kann. NEIN. > Sonst muss ich ja die komplette Software umschreiben. JA.
Könnte es funktionieren wenn ich die portpins.h entsprechend abändere ?
Who the fxxx is portpins.h ??? Aber die Antwort lautet NEIN. Die lib will nunmal ganze bytes über den Port ausgeben, wenn du die Pins anders verteilst, musst du die Ausgabe dieser Bytes entsprechend umschreiben. Oliver
Maniac schrieb: > Könnte es funktionieren wenn ich die portpins.h entsprechend abändere ? NEIN, während die Steuerleitungen sich denke ich noch relativ einfach auf verschiedene Ports verteilen lassen (mit Software-Änderung), erfolgt der Zugriff auf den Datenbus immer Portweise und in entsprechender Reihenfolge 0..7. Mit entsprechender Softwareanpassung kann man natürlich alles richten - aber manchmal sollte man vielleicht lieber zwei Brücken auf die Leiterplatte machen. Sascha
Hi >Mit entsprechender Softwareanpassung kann man >natürlich alles richten - aber manchmal sollte man vielleicht lieber >zwei Brücken auf die Leiterplatte machen. Zumal dieses Bitgewurstel Zeit kostet. Wenn man dann dem Display beim Bildaufbau zusehen kann ist das nicht sehr prickelnd. MfG Spess
> Sonst muss ich ja die komplette Software umschreiben.
Wenn du die 'komplette' Software umschreiben musst, dann taugt die
sowieso nichts.
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.