• 14.07.2025, 23:00
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

palme_kex

God

Integer Begrenzen...

Dienstag, 21. Februar 2006, 19:16

Hallo,
also will folgendes machen.
Ich bin gerade am basteln mit nem MircoController "AT90S8535" von Atmel wird verwendet.
Die Hauptaufgabe besteht im moment daran nen 128*64px GraficDisplay anzusprechen.
Hier zu wollt ich mir nen buffer Feld machen wo ich alle Pixel setzte und dann eben alle auf das DIsplay übertragen will, dass problem ist nur das dieses Feld meinen Speicher Sprengt....
Also so große Felder kann man damit wohl nicht machen.

ALso bin ich auf der suche wie ich mir nen DatenTyp erstelle der eben nur 1Byte (nicht wie int 4Byte) reserviert. Dies würde mir enorm viel Speicher freihalten, da ich für das display nur max 1Byte übertragen kann und beim int 3Byte eben unbenutzt aber verschwendet da stehen...

Wisst ihr also wie ich das einschränken kann ?

sebastian

Administrator

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 19:27

char oder unsigned char heisst der Datentyp. 8Bit Zahlenbereich 0-255.

du bauchst für 128x64 == 8192 Bit == 1024 Byte das ist der Min speicherplatz wenn du 1 seite als framebuffer für einen schnellen seitenaufbau haben musst.

MfG
Sebastian

TheJoker

God

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 19:30

öh... unsigned char?

edit: gnaaa... mann bin ich heut langsam :P

gut schreib ich was anderes sinnvolles: definiere dir am besten einen eigenen datentyp und benutze NUR den in deinen programmen.

also z.B.
#define tU8 unsigned char

und das für alle datentypen (8Bit, 16Bit, 32Bit, signed und unsigned). das macht das ganze portabel und lesbarer.
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

sebastian

Administrator

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 19:37

nochmal,..
warum nimmst du einen so alten Controller? Das teil ist abgekündigt und wird nicht mehr produziert. Nimm einen Mega16 oder 32. Da hast auch für ein GLCD noch ein paar reserven.


Sebastian

palme_kex

God

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 20:07

Warum so nen alten Controler ?
Weil ich ihn habe, also warum nen neunen kaufen ?

Ist ja auch nit besonders billig.

Auserdem soll ich ja nit so viel machen.
Display ansteuern, 4 Temperaturen auslesen und das ganze per Seruieller Schnittstelle aufn rechner schubsen...

Dafür muss er reichen...

Und thx für die Schnelle Antwort...

Katzenfreund

God

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 20:58

Warum schreibst du es nicht einfach als Boolean?
Ich meine es sollte doch reichen zu vermerken: Zeichen ist aktiv bzw eben nicht.
Suche Bücher von Tanenbaum und Galileo (auch Video-Training) - bitte KM! [img] http://www.aqua-computer-berlin.de/logo.png [/img]

TheJoker

God

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 21:01

C kennt keine Boolean Datentypen.
Als "Wahrheitswerte" werden die Werte von int-Datentypen verwendet (== 0 entspricht FALSE, alles andere TRUE).
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

Thomas_Haindl

God

Re: Integer Begrenzen...

Dienstag, 21. Februar 2006, 23:57

Zitat von »-Joker-«

... das macht das ganze portabel und lesbarer.

"lesbar" wird's mit:

var Screen = packed array [1..128, 1..64] of boolean; ;D

... aber das gibt's in C ja wieder nicht.

mfg, Thomas

P.S.: Obige Syntax gilt für Pascal und Modula-II
P.P.S.: Mit B||L&& -Turbo geht das schief, weil die packed-Datentypen alle nicht funktionieren.

palme_kex

God

Re: Integer Begrenzen...

Mittwoch, 22. Februar 2006, 11:03

Naja das mit dem bool ist auch nit ganz so schön, weil das DIsplay in 8Reihen unterteilt ist also ich spreche immer 8Bits gleichzeitig an und so kann ich dann immer genau 1ne variable nehmen für ein Commando...

sebastian

Administrator

Re: Integer Begrenzen...

Mittwoch, 22. Februar 2006, 11:47

hi,
der Controller hat 512 byte Sram. du brauchts ein paar byte für den Stack, ein paar für lokale und globale variablen... letztendlich würden dir vielleicht 400byte als LCD buffer bleiben. da reicht also nicht.
Wieso dann nicht einfach nur die daten direkt ausgeben. Und wenn du bilder/ grafiken die statisch sind ausgeben willst kannst du das auch aus dem flash machen wobei der ja auch nur 8Kb hat.
Ein neue Controller gerade wenn man es nicht in masse produzieren will kostet 5EUR und spart ne menge ärger.

du musst ja in die 8kb folgendes implementieren:
Uart routinen 300byte -- 1Kb
Printf - ab 1K je nach auffwand
GLCD routinen - ~1kb
ADC + linearisierung ~ 2kb
Programm ~ 1kb

damit wäre der controller schon fast voll und man müsste mit allen möglichen kompromissen so langen um die Probleme programmieren bis das alles passt.
klar mit dem kleinen controller akann man das alles gut testen,.. aber alles zusammen ?

Sebastian