Hallo,
Ich möchte für meine Projektarbeit was sehr gewagtes probieren.
Mein ziel ist es ein Display (oder mehrere, ist ja nicht viel mehr
arbeit) anzusteuern.
von der schule bekomme ich einen µController geliehen mit dem ich diese
aufgabe erledigen kann.
das problem ist für mich, dass bei dem SPI display mir schwer fällt zu
verstehen wie genau es ablaufen soll. Wikipedia meint dass man 4 pins
benötigt. ein signal das daten sendet, empfängt,takt und eines, welches
für den Multiplex nötig ist (slave select). das mit dem takt sollte ich
bequem realisieren, die daten auf die richtige leitung zu bekommen auch,
multiplex schaff ich auch.
Aber was für daten das display fressen will, versteh ich nicht.
Dieses Display möchte ich steuern:
http://www.reichelt.de/DOG-LCD-Module/EA-DOGS102W-6/3/index.html?;ACTION=3;LA=2;ARTICLE=101653;GROUPID=3007;artnr=EA+DOGS102W-6;SID=12UK4KQ38AAAIAAGq3GYIcf72c1bace8b1d9ce6a16d69a9bed41e
Der µC mit dem ich es angesteuert bekommen will ist auf einem board
dran, welches keinen namen hat.
klingt bekloppt, aber die boards waren extra angefertigt
der µC heisst Atmel AT89C5131A
mein lehrer hatte bedenken wegen der 12Mhz taktung, weil es völlig
überlastet wäre für 4 displays inklusive verarbeitung und Duplex RGB
leuchten.
Denkt ihr dass wär ein problem? immerhin behalten die displays ihre
zustände bis zur nächsten beschreibung und man kann sie dadurch inaktiv
schalten, falls nicht gebraucht.
falls es nicht gehen sollte bietet mein lehrer meiner projektgruppe und
mir einen µC der mit 900MHz arbeitet, aber ich will ihn nicht die mühe
machen, wenn es nicht nötig ist.
ich hab nicht auf gross und kleinschreibung geachtet, da ich von der
schule aus schreibe und wir in die Pause müssen^^ ich hoffe ihr könnt
mir das verzeihen
vielen dank für jeden sinnvollen beitrag
Hi,
zunächst brauchst Du die Datenleitungen SCK und MOSI und CS. MISO nur,
wenn Du Daten aus dem Display zurücklesen möchtest (meist überflüssig).
Die befehle, die das Display versteht, findest Du im datenblatt. Wenn
Dein µC ein SPI-interface hat, übernimmt dies die Serialisierung der
Daten und die Steuerung. 12 Mhz macht kein Problem. Bei mehreren
displays werden an alle SCK und MOSI gelegt und über CS (Chip Select)
wird das Display ausgewählt, mit dem kommuniziert werden soll. Die RGB
Steuerung ist meines Erachtens schnickschnack und könnte mit HC595
bewältigt werden.
Gruß
QUAX
wir haben µvision 4 für die realisierung in C.
das problem ist dass die vorgefertigten header und .c dateien einfach
schreklich geschrieben wurden udn so unübrsichtlich verschachtelt sind
dass selbst mein programmier-lehrer schimpfworte in den mund nahm :)
ich häng mal eine .c datei an, die wir auf der herstelerseite gefunden
haben.
die funktion void lcd_send() ist unser erstes problem (ich bin mir
sicher es werden noch wegen dieser durchfallsyntrax weiter probleme
entstehen, weswegen wir profis brauchen)
Vielen dank für die verdammt schnelle antwort dieses forum beginnt mir
sehr zu gefallen :)
ach ja das display ist ein dotmatrix display, einfarbig. wir dachten in
farbe wär es uns zu extrem^^
dass der atmel controller einen spi controller enthält, würde ja
heissen, dass wir die mitgelieferten .h und .c dateien gar nicht
brauchen oder? dann würden wir es ja direkt die vom atmel header aus
programmieren können
Also µVision4 , na denn mit KEIL wirds für Euch spaßig, wie Ihr schon
bemerkt habt, das debuggen könnte weitehelfen die Sourcen zu verstehen
...
die .h und .c braucht Ihr , hat nix mit SPI zu tun, naja fast nix ...
Sicher, dass das beispiel zum LCD passt?
Gruß
QUAX
Kajee eeeeeee schrieb:> Dieses Display möchte ich steuern:>> http://www.reichelt.de/DOG-LCD-Module/EA-DOGS102W-...
Ich verstehe nicht, warum Anfänger immer denken, programmieren sei
Pipifax.
Und damits richtig schön schwer wird, nimmt man gleich ein Grafik-LCD.
Du mußt Dir erstmal alle Zeichen aus Pixeln zusammen basteln. Und das
ganze vielleicht noch für verschiedene Schriftgrößen.
Na dann viel Spaß dabei. Wieviel Jahre hast Du nochmal dafür eingeplant?
Wenn Du aber reale Chancen haben willst, auch etwas fertig zu stellen,
nimm ein Text-LCD, z.B.: EA DOGM162-A.
Peter
Kajee eeeeeee schrieb:> das problem ist dass die vorgefertigten header und .c dateien einfach> schreklich geschrieben wurden udn so unübrsichtlich verschachtelt sind> dass selbst mein programmier-lehrer schimpfworte in den mund nahm :)
Was habt ihr denn vorher so programmiert, wenn ich mal fragen darf?
Dein Beispielcode sieht doch super aus und ist sogar kommentiert.
Nur hat der 8051 keine PORTs A,B,C,D, sondern 0,1,2,3.
Peter
ja wir haben alle unterlagen gesammelt, jedoch weiss ich eben nicht wie
man grafiken machen kann wo man unterschiedliche texte einbringen kann.
zumal ich eigentlich mit meinen gruppenmitgliedern keine amateure sind
sondern informatiker, aber eben angehende.
was wir bis jetzt so alles geschafft haben?
auf normalen PCs haben wir c und c++ sehr intensiv erlernt
µcontroller haben wir seid diesen september an der schule und wir können
grade eben alle c befehle die es mit sich bringt, den integrierten
textbasierten LCD auf dem board nutzen, 7segment, assembler haben wir
auch vom grundstoff durch.
die Ports kann man ja im header umdefinieren, das werd ich noch machen.
und dass es jahre dauern soll bezweifle ich. Ich vermute wenn wir den
"bogen" raus haben, sind wir auch schon fertig, da wir ansonsten kaum
was machen müssen.
Kajee eeeeeee schrieb:> falls es nicht gehen sollte bietet mein lehrer meiner projektgruppe und> mir einen µC der mit 900MHz arbeitet
Es geht in jedem Fall mit dem 8051.
Der Flaschenhals wird eher das LCD selber sein. Videos wirst Du daher
auch mit 900MHz nicht abspielen können.
Peter
Kajee schrieb:> den integrierten> textbasierten LCD auf dem board nutzen
Und habt Ihr das auch durchschaut, wie das LCD funktioniert?
Oder habt Ihr nur ne fertige Lib reingepappt. Das kann ja sogar meine
Omi und dabei lernt man nichts.
Peter
Kajee schrieb:> Ich vermute wenn wir den> "bogen" raus haben
Das Ziel sollte sein, den "Bogen" raus zu haben, wie man ein Datenblatt
liest und anwendet.
Deine Fragen lassen ahnen, daß Du weder das Datenblatt des LCD noch des
MC angeschaut hast.
Peter
sry für doppeltpost
peter der lehrer hat uns einfach eine funktion genannt die wir wie
printf();
beim programmieren von normalen pcs nutzten. was da passiert wurde uns
leider nicht genannt. aber genau da brauch ich ja hilfe, wobei die
meisten leute hier ausser motzen nichts beitragen wollen.
Hmm, die meisten hier haben a bisserl studiert denen sollte man nicht
auf den "Sack" gehen sondern auch ein bisserl lernen wollen, was in dem
Fall heisst: Zeit investieren. Ich hab Probleme das Deutschkauderwelsch
zu verstehen, sorry.
Viel Spass noch, Dir und Deinen Mitstreitern vielleicht nennt Euch der
Lehrer auch gleich die Lösung, dann bleibt Zeit zum "Simmsen".
Gruß
QUAX
Kajee schrieb:> wollt ihr nun mich einfach runter machen, weil ich hilfe brauche?
Nein.
Ich wollte nur darauf hinweisen, daß es bei der MC Programmierung nicht
reicht, eine fertige Lib aufzurufen, sondern daß man auch verstehen muß,
was diese Lib macht.
In der Regel sind nämlich die Libs nicht so portabel, wie bei einem PC,
wo die Hardware immer gleich ist, sondern man muß einige Anpassungen
vornehmen. Und das geht eben nicht, wenn man die Lib nur als Black-Box
ansieht.
Wie schon gesagt, der LCD-Code sieht recht gut aus, darauf kann man
aufbauen. Da sind bestimmt auch noch Header und Zeichensätze dabei
gewesen.
Daß Du mit dem Code nicht klarkommst, liegt bestimmt daran, daß Du nicht
in die Datenblätter geschaut hast. Im Datenblatt des MC findest Du das
SPI und im Datenblatt des LCD die Kommandos und die Adressierung des
Bildspeichers.
Peter
Wenn Du gar keinen Ansatzpunkt hast, dann ist die Aufgabe eindeutig zu
schwer für Dich.
Dann mußt Du eben erstmal die Grundlagen lernen.
Also LED blinken, 7-Segment Anzeige, UART, SPI, Text-LCD.
Aber selber geschrieben, ganz ohne fremde Libs.
Die Treiber für spezielle Hardware selber zu schreiben, ist Alltag bei
der MC-Programmierung. Du hast ja kein Windows auf dem MC laufen.
Peter
Ach vergisst es! ich habs satt! closed die scheisse einfach und zeigt
dass ihr fürs helfen nicht fähig seid! ich frag einfach in einem forum
wo man den tatsächlichen sinn eines forums erkannt hat. So ein scheiss
ist mir echt zu dumm