Forum: Mikrocontroller und Digitale Elektronik dogm128 mit st7565r - Display RAM im PIC speichern


von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Hallo zusammen,

ich habe ein EA-DOG M 128 Grafik-Display an einen PIC16F877A 
angeschlossen.

Initialisierung usw. geht auch wunderbar und Daten kann ich auch an das 
Display senden.

Lediglich beim Verständnis vom Display-RAM-Aufbau habe ich einige 
Probleme.
Ich habe mir mal die Routinen von diesem Beitrag angesehen 
(Beitrag "Re: EA DOGM128 128x64 Grafik Display") die leider für einen 
AVR geschrieben wurden.

Wenn ich die Routinen umschreibe für meinen Compiler dann bekomme ich 
Probleme weil ich versuche ein array mit 1024 bytes zu verwenden. Mein 
Compiler gibt mir dann den Fehler "es fehlen 1024 byte".

Das Problem bei dem Display ist ja, dass ich die Daten aus dem Display 
nicht mehr auslesen kann da es nur einen SDI besitzt und keinerlei Daten 
zurücksendet.

Wie kann ich die kompletten Daten im RAM vom Mikrocontroller halten ohne 
das genannte Problem?

Ich verwende den PICC PRO (im Lite-Mode) von HI-TECH - falls das wichtig 
ist ;-)

Danke & Gruß,
 Tobias

von picbastler (Gast)


Lesenswert?

Du möchtest ein Array von 1024 Bytes in 368 Bytes RAM unterbringen? Bist 
du sicher, dass das geht?

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

picbastler wrote:
> Du möchtest ein Array von 1024 Bytes in 368 Bytes RAM unterbringen? Bist
> du sicher, dass das geht?

Na ebend nicht ;-) da ist ja das Dilemma - ich muss aber doch irgendwie 
den Display-Inhalt manipulieren ohne ihn auszulesen - wie soll das sonst 
gehen als ihn im RAM vom PIC zu hinterlegen <-- Die Frage möchte ich 
klären G

von morph1 (Gast)


Lesenswert?

gar nicht ;) größeren pic besorgen

zb der 18f4685 ist pinkompatibel und hat 3kb ram, da mach ich genau das 
was du vorhast mit dem unteren drittel

von oli (Gast)


Lesenswert?

Hallo

Ich hab eine Lib (allerdings auch für den AVR) geschrieben, die
nur nur eine Page des dogm128 im Speicher hält:
http://code.google.com/p/dogm128/
Damit sollten die 368 Bytes genügen. Portierung zum PIC sollte kein 
Problem sein.

Grüße,
Oli

von MagIO (Gast)


Lesenswert?

Muss der Inhalt denn überhaupt bekannt sein? Wenn man z.B. feste 
Positionen hat für Text oder Icons ...., dann kann mn doche einfach 
überschreiben.

Vielleicht kannst Du Dir ja auch einfach merken was wo ausgegeben wurde, 
dann kann mans bei einer erneuten Ausgabe berücksichtigen.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

MagIO schrieb:
> Muss der Inhalt denn überhaupt bekannt sein? Wenn man z.B. feste
> Positionen hat für Text oder Icons ...., dann kann mn doche einfach
> überschreiben.
>
> Vielleicht kannst Du Dir ja auch einfach merken was wo ausgegeben wurde,
> dann kann mans bei einer erneuten Ausgabe berücksichtigen.

Versuch mal einen Kreis zu zeichnen bzw. zwei Kreise überlappend oder 
mehrere Linien... dann musst du wissen was im Display steht.

oli schrieb:
> Ich hab eine Lib (allerdings auch für den AVR) geschrieben, die
> nur nur eine Page des dogm128 im Speicher hält.
> Damit sollten die 368 Bytes genügen. Portierung zum PIC sollte kein
> Problem sein.

Selbiges Problem - wenn eine Linie oder ähnliches über zwei pages geht, 
dann hast du das selbe Problem...

Gruß,
Tobias

von stepp64 (Gast)


Lesenswert?

PIC mit mehr RAM benutzen oder statischen RAM am PIC anschließen. Da 
bräuchtest du aber etliche Portpins um den zu steuern. Gibt es 
eigentlich statischen RAM über I2C oder SPI?

Gruß Sven

von arno nyhm (Gast)


Lesenswert?

Natürlich gibt es soetwas: 
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en539039
...wäre hier ganz klar eine Option, wenngleich ein größerer Controller 
mit ausreichenden OnChip-Resourcen ganz klar die einfachere Lösung wäre, 
wenn dies denn in Frage kommt.

von oli (Gast)


Lesenswert?

Tobias John schrieb:
>> Ich hab eine Lib (allerdings auch für den AVR) geschrieben, die
>
>> nur nur eine Page des dogm128 im Speicher hält.
>
>> Damit sollten die 368 Bytes genügen. Portierung zum PIC sollte kein
>
>> Problem sein.
>
>
>
> Selbiges Problem - wenn eine Linie oder ähnliches über zwei pages geht,
>
> dann hast du das selbe Problem...

Nein, meine lib bekommt genau das ja hin. Mit der dogm128-lib kann man 
beliebig text und graphik mischen und übereinander legen. Trotzdem 
braucht die lib nur 128 bytes (=eine page des dogm128) im RAM (und noch 
ein bischen stack und ein paar extra bytes für variablen)

Sonst hätte ich ja das dort gezeigte telespiel gar nicht programmieren 
können.

Grüße,
Oli

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
Noch kein Account? Hier anmelden.