laserjones hat geschrieben:Der Propeller läuft intern mit 80Mhz, jeder der 8 Cogs, bekommt reihum einmal drann. Die Cogs laufen also "nur" mit 10 Mhz.
Und mal eine ganz laienhafte Frage (ich habe wirklich nicht viel Ahnung von hardwarenaher Programmierung): Wenn ein Propeller es schafft, im Textmodus viel höhere Auflösungen auszugeben, warum braucht er dann für eine Zeile in deinem Modell so lange? Auch beim Textmodus hängt ja kein Grafikprozessor dazwischen, und selbst wenn Tiles verwendet werden, um den Speicherbedarf zu reduzieren, muss ja immer noch jeder Pixel von einem Cog gemalt werden ... Oder verstehe ich da was komplett falsch?
Urgs, hier bin ich noch eine Antwort schuldig geblieben.
Wenn der Propeller im Textmodus ist, dann nutzt er intern einen Videogeneratorteil der die Pixel der Textzeichen im richtigen Tackverhältniss aus einem Schieberegister heraus nacheinander ausgibt. Wenn der Textmodus genommen wird, reduziert sich der Aufwand für die "berechnung" der Pixel enorm, da die Muster der Zeichen im Zeichensatzrom fest vorgegeben sind und mit einem zugriff immer eine ganze Zeile eines Zeichens eingelesen werden kann.
Im Grunde genommen braucht der Propeller im Textmodus nur zwei Zugriffe auf den "Hauptspeicher". Einen um das nächste Zeichen zu lesen und einen um eine komplette Pixelzeile des zu zeichnenden Buchstabens aus dem Rom nachzuladen. Für die Ausgabe schiebt er dann die ganze Pixelzeile eines Zeichens mit nur einem Befehl in das Ausgaberegister, das dann das Videosignal für die nächsten Pixel erzeugt. In der Zeit wo der Videogenerator die Pixelzeile des Zeichens ausgiebt, holt er sich den nächsten Buchstaben und die nächste Pixelzeile aus dem Charakterrom. Dafür reicht ein einzelner Cog vollkommen aus. Der vorteil ist hier einfach, das das Pixelmuster für die Buchstaben fest steht und nicht erst anhand irgendwelcher mathematischen Formeln hergeleitet werden muss.
Bei der Idee mit den oben beschriebenen 2 Bildschirmzeilen an Pufferspeicher für 3D- Garfik würde man sicher einen der Cogs so ähnlich wie beim Textmodus nur dazu hernehmen die aktuelle Bildschirmzeile Punkt für Punkt auszugeben. Das hier beschriebene Problem wäre das befüllen der jeweils nächsten Zeile mit den Punkten der 3D- Grafik. Wie oben beschrieben ist dies leider deutlich aufwändiger als einfach nur Bitmuster aus dem Zeichensatzrom auszugeben.
Grüße
Janaha