''*****************************************************************************
PRI start(BasePin, Aufl) : okay | i, j
''*****************************************************************************
case Aufl
0: ' 640 x 480 @ 69Hz settings: 80 x 40 characters
hp = 640 'horizontal pixels
vp = 480 'vertical pixels
hf = 24 'horizontal front porch pixels
hs = 40 'horizontal sync pixels
hb = 128 'horizontal back porch pixels
vf = 9 'vertical front porch lines
vs = 3 'vertical sync lines
vb = 28 'vertical back porch lines
hn = 1 'horizontal normal sync state (0|1)
vn = 1 'vertical normal sync state (0|1)
pr = 30 'pixel rate in MHz at 80MHz system clock (5MHz granularity)
1: ' 800 x 600 @ 75Hz settings: 100 x 50 characters
hp = 800 'horizontal pixels
vp = 600 'vertical pixels
hf = 40 'horizontal front porch pixels
hs = 128 'horizontal sync pixels
hb = 88 'horizontal back porch pixels
vf = 1 'vertical front porch lines
vs = 4 'vertical sync lines
vb = 23 'vertical back porch lines
hn = 0 'horizontal normal sync state (0|1)
vn = 0 'vertical normal sync state (0|1)
pr = 50 'pixel rate in MHz at 80MHz system clock (5MHz granularity)
2: ' 1024 x 768 @ 57Hz settings: 128 x 64 characters
hp = 1024'horizontal pixels
vp = 768 'vertical pixels
hf = 16 'horizontal front porch pixels
hs = 96 'horizontal sync pixels
hb = 176 'horizontal back porch pixels
vf = 1 'vertical front porch lines
vs = 3 'vertical sync lines
vb = 28 'vertical back porch lines
hn = 1 'horizontal normal sync state (0|1)
vn = 1 'vertical normal sync state (0|1)
pr = 60 'pixel rate in MHz at 80MHz system clock (5MHz granularity)
cols = hp / 8' columns and rows
rows = vp / 12
chrs = cols * rows
Die Array größen bleibt immer fest auf maxwert
Wie mache ich aus Constanten Variabeln die auch im Assembler verstanden werden (warscheinlich Stack)
VGA128x64TXT.spin
Danke
Zuletzt geändert von PIC18F2550 am Sa 22. Okt 2011, 19:45, insgesamt 1-mal geändert.
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
So ich habe jetzt ersteimal alle variabeln in die "VGA128x64TXT.spin" untergebracht.
Das geht auch gut, bis auf die "long row"Variable da spinnt der Assembler teil.
Kann mir jemand sagen warum ?
VGA128x64TXT.spin
ICH TROLLO WENN SPINNVARIABELN DEN SELBEN NAMEN WIE ASSEMBLER BENUTZT MUSS DAS DOCH IN DIE H.... GEHEN
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
der Spinn compiler sagt, das ich zuviel speicherplatz brauche aber leiter nicht wieviel zufiel.
Wie kann ich das herausbekommen.
VGA128x64TXT.spin
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Du könntest als Test Befehle auskommentieren, bis die Meldung nicht mehr kommt. Der Code läuft dann zwar auch nicht, aber da jeder Befehl 32 Bit groß ist, kannst du so den Überhang ermitteln. Ist eine blöde Methode, aber der Zweck heiligt ja manchmal die Mittel...
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Hilft aber nichts ich muß mir was anderes einfallen lassen um soviel kann ich den Code nicht Quetschen.
Aber ich habe noch Platz in Prop.
Ich glaub ich mache das mit statischen COG-Routinen
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Mal ganz anders gedacht (sofern es auf dem Hive laufen soll): erstelle doch einfach drei Treiber mit unterschiedlicher Auflösung, welche du zur Laufzeit einfach bei Bedarf in Bellatrix startest.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Die 3 Vga Module müssen nur noch in eine Datei hinein.
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Im Propellertool F8, dann "Save binary file" (oder so ähnlich) und jede Variante dann als extra Datei speichern, also zum Beispiel als vga1.bel, vga2.bel oder vga3.bel. die drei Dateien dann auf SD-Card in der Root oder im System-Verzeichnis speichern und mit vga1/2/3 in der Kommandozeile aufrufen. Regime schaut selbst nach ob es eine BEL-datei ist und startet sie dann in Bellatrix. So funktionieren schon die drei Treiber VGA, TV und HTEXT.
---
Mom, ich schaue grad in die Datei EEPROM_1 - das ist aber nicht für den Hive oder?
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Ist so ähnlich aufgebaut wie Hive
Besitzt einen 16Bit Bus mit einer Hilfsteuerleitung(ähnlich I2C aber nur 16 paralel)
Die Daten und Befehle werden über den Bus verteilt(wie I2C Multimaster systeme)
Da ich für den Prop keien dynamischen Sprungverteiler erstellen kann wie beim U880 JMP(HL)
werden alle Routienen Über den Bus abgewickelt mit Prioritäten ProzessID Status ....
PropSMD_1.pdf
Eigendlich wolte ich damit meinen neuen Quadrocopter bestücken, weil er einfach besser dafür geeignet ist.
Gruß PIC18F2550
drone265/278 Barbarus hic ergo sum, quia non intellegor ulli. Ein Barbar bin ich hier, da ich von keinem verstanden werde. ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550 hat geschrieben:Da ich für den Prop keien dynamischen Sprungverteiler erstellen kann wie beim U880 JMP(HL)
Kannst Du nicht? IIRC - meine U880 Zeit liegt schon 'ne Weile zurueck - ist das nur ein indirekter Sprung. Sprich jmp reg (ohne #). Oder hab ich da was falsch verstanden?