Hallo zusammen, auch wenn es für einige ermüdend ist, ich bin auf der Suche nach einem lauffähigen C Code, um das DIP-180 anzusteuern. Mir würde eine Routine für einen einzelnen SED1520 dabei ja schon reichen. Alles was ich bisher hier gefunden habe, war leider nicht ausreichend, um mein Display zum Laufen zu bringen. Hat irgendjemand einen Code, der bei ihm selber schon mal funktioniert hat ? Für Hilfe wäre ich sehr dankbar. Viele Grüße Stephan
Danke für die schnelle Antwort. Hatte vergessen zu schreiben, daß es idealerweise für einen Atmega16 sein sollte.
SED1520 ist schon eine komplexere Sache. Da musst Du schon selber auch etwas Denkleistung einbringen.
Sehr kluge Worte..hätte ich nicht schon seit Tagen daran rumprobiert, hätte ich die Anfrage auch gar nicht gestellt... Wie dem auch sei. Hab jetzt einen lauffähigen Code auf Basis einer Datei von http://en.radzio.dxp.pl/sed1520/ Bin gerade dabei das Programm auf den DIP180 mit seinen 3 SED1520 Controllern anzupassen. Sobald der Code fertig ist, stelle ich ihn hier rein. Wenn ihn schon jemand vorher benötigt, kann er mich gerne per eMail kontaktieren.
OK, dann hier mal mein Beitrag... das ein oder andere kann man sicher noch verbessern/schöner/schneller/anders machen, aber so klapperts im Moment ganz ordentlich. Das sind nur die LowLevel-Routinen für ein EA DIP180B-5NLW, 180x32 Pixel verteilt auf 3 SED1520, Linien, Kreise etc gibt es ja zuhauf... Da ich diese Routinen in ähnlicher Form auch für die DOG-Displays nehme (aus denen man ja das DisplayRAM nicht zurücklesen kann) benutze ich auch hier ein ShadowRAM im Controller für den Displayinhalt Die Portdefinitionen sind im zugehörigen Headerfile (kommt gleich) Kommentare, Hinweise zu Fipptehlern, Fehlern, Verbesserungen, Tips etc sind willkommen!!
Hier der versprochene Code. Damit läßt sich z.B. das Dip180 (180x32 pixel mit 3 SED1520 Controllern) ansprechen. Es ist eine einfache Font Datei mit dabei. Funktionen wie GLCD_Rectangle, GLCD_Line, GLCD_Circle, GLCD_WriteString, GLCD_SetPixel sind getestet und funktionieren über die Controllergrenzen hinweg. Es gibt noch mehr Funktionen in den graphics Dateien. Diese sind jedoch noch nicht getestet. Ich hoffe das hilft dem ein oder anderen Zeit bei der Ansteuerung von graphischen Displays zu sparen. Viele Grüße Stephan
Hallo. Versuche gerade den Code von gamps zum laufen zu bringen. Mein Problem ist, dass ich keinen Kopletten Port frei habe. kann ich die Zeilen #define SED1520_DATA_PORT PORTD //Data Port #define SED1520_CONTROL_PORT PORTA //Control Port for RW, Ao, E1,E2,E3,RES auch auf mehrer ports verteilen? also (pseudocode) #define SED1520_DATA_PORT = [PORTA0,PORTA2,PORTB4,PORTB7,...] #define SED1520_CONTROL_PORT = [PORTC0,PORTC1,PORTD0,PORTD2,...] (/pseudocode) Wenn ja wie? oder geht das nicht? Danke schon mal..
Natürlich kannst du die benötigten acht Bit auf mehrere Portpins verteilen. Allerdings nicht so, wie du das hier geschrieben hast. Du mußt schon die einzelnen Bits auf den jeweiligen Portpin schreiben, z.B. so (in ein schönes Define verpackt): #define SED1520_DATA_PORT(a) PORTA0 = a & 0x01; /* Bit 0 */ \ PORTA2 = (a >> 1) & 0x01; /* Bit 1 */ \ PORTB4 = (a >> 2) & 0x01; /* Bit 2 */ \ ... Das ganze ist halt für den Controller ein wenig aufwendiger und drückt dementsprecht die Gesamtperformance. Anstatt eines 8bit Portzugriffs müssen mehrere Schiebe-, Maskier- und Schreibzugriffe durchgeführt werden.
Hallo, Diese "Ladungspumpe" wie funktioniert die genau ? Grüsse
Hi, hat jemand einen Schaltplan für den Demo-Code von gamps?
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.