www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik S65 Display Kleines Testprogramm.


Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich hab mir mal auf die schnelle so ne Schaltung von nem S65 
Display zurechtgebaut. Leider hab ich Moment recht wenig Zeit, deshalb 
hab ich direkt nach dem ersten gescheiterten Programmversuch aufgegeben. 
Könnte mir vielleicht mal jemand ein ganz einfach Programm überlassen, 
bei dem z.B. nur ein rechteck oder sowas angezeigt wird? Am besten 
sollte das Programm so sein, dass ich schnell die PinBelegung ändern 
kann. Z.B. Mit #define  oder so. Achja, ich verwende einen Atmega8.
MFG

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz ohne eigenen Hirnschmalz wirst du das wohl nicht so einfach 
geliefert bekommen.

http://www.superkranz.de/christian/S65_Display/Dis...

Hier findest du eigentlich alles, was du brauchst. Voraussetzung ist 
allerdings etwas technisches Verständnis und etwas Erfahrung mit WinAVR. 
Ohne das gehts nicht....

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du keine Zeit hast, Dich damit zu befassen: lass es.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, verdammt hilfreich. Vielen Dank.
Das Programm sollte ja auch nur zur Orientierung dienen, damit ich weis, 
ob alles richtig verlötet ist.
MUG

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dake78 wrote:

> Hmm, verdammt hilfreich. Vielen Dank.

Du kanntest die Seite noch nicht?

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, nach dieser Seite hab ich das Aufgebaut. Ich meinte die Beiträge.
Ok, kann mir dann bitte wenigstens jemand sagen, was MOSI, MISO und SCK 
sind?
  #define   LCD_CS      PC2
  #define   LCD_RESET   PC1
  #define   LCD_RS      PC0
  #define   LCD_MOSI    PC4
  #define   LCD_MISO    PB3
  #define   LCD_SCK     PC3

CS, RESET und RS sind ja klar, ist SCK = gleich CLK und MOSI gleich DAT? 
Was ist dann MISO?

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach sorry, bin grad nen bisschen daneben. Ne ist natürlich klar was es 
ist.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal das glcd-Testprogramm versucht, aber beim kompilieren kommt 
immer diese Meldung:
> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.2.2 (WinAVR 20071221)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Linking: test.elf
avr-gcc -mmcu=atmega8 -I. -D GCC_MEGA_AVR -I. -g -O0 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow 
-Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare 
-Waggregate-return -Wstrict-prototypes -Wmissing-prototypes 
-Wmissing-declarations -Wunused  -std=gnu99 test.o   --output test.elf 
-Wl,-Map=test.map,--cref -lm -L../glcd/. -lglcd
c:/winavr-20071221/bin/../lib/gcc/avr/4.2.2/../../../../avr/bin/ld.exe: 
region text is full (test.elf section .text)
c:/winavr-20071221/bin/../lib/gcc/avr/4.2.2/../../../../avr/bin/ld.exe: 
region text is full (test.elf section .text)
make.exe: *** [test.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:01


Was heißt das?

Es ist doch eigentlich egal an welche Ports ich das Display anschließe, 
Hauptsache ich ändere es in der glcd.inc ,oder?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Section ist zu gross für die Zielplattform. Vermutlich ist ein 
Array zu gross dimensioniert, zuviel Programmcode oder einfach nur das 
Makefile falsch.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, aber das ist doch das Testprogramm von der glcd Libary und ich hab 
nur die Ports geändert.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne deine Quellen nicht. Es ist aber durchaus möglich, daß sie so 
veraltet sind, daß sie aus irgendeinem Grund sich mit einem neueren 
AVR-GCC nicht kompilieren lassen.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem war, das der Code zu groß war für nen Atmega8. Aber nachdem 
ich den Code gekürzt hab, funzt es auch nicht auf dem Display.

Ist es denn nun egal, an welchen Pins das Display hängt, oder muss es 
unbedingt MOSI und SCK sein?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorallem das Timing ist wichtig. Das sollte unbedingt stimmen. (XTAL und 
die daraus errechneten Werte gegenprüfen)

Im Prinzip ist es egal an welchen Pins das Display hängt. Wichtig ist, 
das diese nicht durch eine andere Funktionalität belegt sind. Wenn du 
das Display an die MISO/MOSI/SCK betreibst, ist es natürlich 
vorteilhaft, keinen ISP angeschlossen zu haben.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches errechneten Werte? Ich hab nen 16MHz Oszi dran gehangen und der 
funzt denke ich auch soweit und am Quelltext hab ich nur die PinBelegung 
geändert.

Die ist bei mir so an Port C:
PC0 = RS
PC1 = RESET
PC2 = CS
PC3 = CLK
PC4 = DAT

Und im Code sieht das dann so aus.

#define LCD_CS   PC2
#define LCD_RESET  PC1
#define LCD_RS   PC0
#define LCD_MOSI   PC4
#define LCD_MISO   PC5
#define LCD_SCK    PC3

oder ist da schonwieder was falsch?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird der externe Quarz auch benutzt? Ohne die Default-Werte der Fuses 
angefasst zu haben läuft ein mega8 auf internen 1Mhz.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denke das sollte so stimmen.
Also SUT1, CKSEL3, CKSEL2, CKSEL1, CKSEL0 sind an und SPIEN kann ich 
nicht ändern, aber ist auch an.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, das war jetzt mit PonyProg abgerufen.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CKOPT sollte '0'(programmed) sein.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:) naja ist es ja auch. Du meintest ich sollte bei Ponyprog mal nen 
hacken dran machen?

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich nichts verändert? Hab auch schonmal das Atmega Bilderrahmen 
Projekt draufgespielt und auch das hat nicht funktioniert. Hatte 
natürlich die SD-Karte nicht angeschlossen und die Ports auch wieder 
richtig abgeändert. Aber auch da wurde nichts angezeigt.

War das denn richt von oben??

Die ist bei mir so an Port C:
PC0 = RS
PC1 = RESET
PC2 = CS
PC3 = CLK
PC4 = DAT

Und im Code sieht das dann so aus.

#define LCD_CS   PC2
#define LCD_RESET  PC1
#define LCD_RS   PC0
#define LCD_MOSI   PC4
#define LCD_MISO   PC5
#define LCD_SCK    PC3

Oder ist da was falsch?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, die Verdrahtung erscheint mir richtig.

Autor: SU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Dake,

a) Der Code den du benutzt muss zum Display passen.

b) Bei zwei der drei Display Demo-Versionen wird der Zeichensatz ins RAM 
geladen, dass geht nicht beim ATMega8 weil zu wenig RAM. Also am besten 
die ganze ASCII Tabelle rauswerfen oder auf ein paar Zeichen 
beschränken. Alle Versionen verändern nach dem Start die 
Hintergrundfarbe. Das reicht für einen ersten Test. Wenn sich die Farbe 
ändert, funktioniert die HW.

c) Ich habe gerade kein ATM8 Datenblatt, ist denn das Hardware SPI 
Interface beim ATM8 auf Port C gelegt? Kann sein, kommt mir nur komisch 
vor. Der Code funktioniert jedenfalls nur mit HW-SPI.

Grüße
 SU

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SU wrote:

> c) Ich habe gerade kein ATM8 Datenblatt, ist denn das Hardware SPI
> Interface beim ATM8 auf Port C gelegt? Kann sein, kommt mir nur komisch
> vor. Der Code funktioniert jedenfalls nur mit HW-SPI.

Diese Information hat mir gefehlt. Wenn das so ist, ist die Verdrahtung 
falsch. Ich dachte, es handelt sich um ein Software SPI.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich kann recht gut Programmieren und ne neue programmiersprache 
lern ich auch recht schnell, aber von Hardware hab ich nicht viel 
Ahnung, deshalb sagt mir bitte einfach was ich falsch gemacht hab: hier 
ist das Datenblatt. 
http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scherzkeks. Aber du könntest ja mal versuchen, das Display an die 
SPI-Pins vom Prozessor zu hängen (MISO, MOSI, SCK)...

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fehlt gerade die nötige Bandbreite um das Dokument runterladen zu 
können.

Der HardwareSPI besteht beim mega8 aus Pins Mosi, Miso und SCK. Diese 
sind auch so am Mega8 beschriftet. Du musst den so verbinden:

mega8  display
MOSI   DAT
MISO   ---
SCK    CLK

RS,CS und Reset kannst du belegen wie du lustig bist. Wichtig ist 
ebenfalls eine gemeinsames GND.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir gerade nochmal das Projekt mit dem Atmega8 Bilderrahmen 
angeschaut und dort hat er das Display an Port D gehangen. Ist ja auch 
nicht SPI. Aber ich werde es mal versuchen.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, also erstmal einen riesen dank. Es funktioniert schonmal. Ich hab 
jetzt das Simple_Display programm drauf, also dieses 
HelloWorld-Programm. Es wird zwar etwas an der richtigen Stelle 
angezeigt, aber es sieht recht komisch aus. Es sind nur sehr komische 
zeichen zu sehen.
Ich musste leider die Anschlüsse für RS und RESET an einen anderen Port 
hängen als DAT, CS und CLK. Kann man denn sowas in der glcd auch 
einstellen oder muss man dann den kompletten Quelltext bearbeiten?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist "glcd"?

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: SU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Es wird zwar etwas an der richtigen Stelle
>>angezeigt, aber es sieht recht komisch aus. Es sind nur sehr komische
>>zeichen zu sehen.

Du hast ja wahrscheinlich auch die ASCII Tabelle rausgeworfen, da sie 
nicht in den Speicher vom ATM8 passt. Also wird da wohl irgend welche 
undefinierten Daten angezeigt.

Die glcd benutzt standardmässig den PORTB für ATM8:
#if defined (__AVR_ATmega8__)
  #define   LCD_PORT                _SFR_IO_ADDR(PORTB)
  #define   LCD_PIN                 _SFR_IO_ADDR(PINB)
  #define   LCD_DDR                 _SFR_IO_ADDR(DDRB)
  #define   LCD_CS      PB0
  #define   LCD_RESET   PB6
  #define   LCD_RS      PB7
  #define   LCD_MOSI    PB2
  #define   LCD_MISO    PB3
  #define   LCD_SCK     PB1
Demnach sieht es so aus, als ob alle Display-Steuer Signale zumindest 
vom gleichen Port kommen sollten.

Autor: Dake78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade, naja. Intwischen komm ich halbwegs zurecht. Aber im Moment 
scheiter ich gerade an der Darstellung einer Linie. Gefüllte Rechtecke 
und und ungefüllte Rechtecke sind kein Ding. Punkte und Kreise auch 
nicht wirklich. Aber ne Linie :) habt ihr dafür irgendeine brauchbare 
Routine, meine eigene funktioniert nicht wirklich.

Autor: toxico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Dake,
Linie zeichnen? Schau die das mal an
http://en.wikipedia.org/wiki/Bresenham's_line_algorithm

welches der drei S65 Displays hast du denn?

toxico

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.