VGA_HiRes_Text.spin

Fragen zu Programmiersprachen und Software für den Hive und die Propellerchips
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

VGA_HiRes_Text.spin

Beitrag von PIC18F2550 »

Hallo,

hatt mal jemand versucht die 3 einstellungen der Auflösung wähend der laufzeit umzustellen?

Code: Alles auswählen

{
' 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)
}
{
' 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)
}
'{
' 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 = 20       'vertical front porch lines
  vs = 3        'vertical sync lines
  vb = 17       '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)
'}
ich dachte da sowas in der Art mit select

Code: Alles auswählen

''*****************************************************************************
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
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

VGA128x64TXT.spin

Beitrag von PIC18F2550 »

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 :idea:
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
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA_HiRes_Text.spin

Beitrag von PIC18F2550 »

neues Problem,

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
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA_HiRes_Text.spin

Beitrag von drohne235 »

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... :twisted:
"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
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA_HiRes_Text.spin

Beitrag von PIC18F2550 »

Die idee ist gut.

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
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA_HiRes_Text.spin

Beitrag von drohne235 »

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
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA_HiRes_Text.spin

Beitrag von PIC18F2550 »

Habe ich gerade gemacht.
EEPROM_1.zip
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
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA_HiRes_Text.spin

Beitrag von drohne235 »

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
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA_HiRes_Text.spin

Beitrag von PIC18F2550 »

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
Benutzeravatar
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: VGA_HiRes_Text.spin

Beitrag von kuroneko »

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?
Antworten