Hallo Jan,
danke für die Antwort. Dann warte ich noch bis die andere Version fertig ist. Ich bin sowieso nicht gerade so der Assembler Crack und bin auch noch etwas im Umzugsstress.
Auf die neue Version freue ich mich schon.
Gruß Frank
Druckbare Version
Hallo Jan,
danke für die Antwort. Dann warte ich noch bis die andere Version fertig ist. Ich bin sowieso nicht gerade so der Assembler Crack und bin auch noch etwas im Umzugsstress.
Auf die neue Version freue ich mich schon.
Gruß Frank
Ich spiele nebenbei auch mit bildausgabe auf tv rum,
sag mal jan, in bascom benötige ich für einen lookup in einer tabelle irgendwie 13 cycles, was ganz schön lange dauert. geht das in asm wesentlich schneller?
Hi Jan,
könnte man die Ausgabe auch noch mit einem H und V Implus synchronisieren ?
Dann könnte man das Bild in ein vorhandenes einblenden...
Die Sync Impulse kann man sich ja mit einem 1881 extrahieren.
Gruß
Christopher
das wär ne geile idee. dann müsste man nur noch extra characters anlegen, mit und ohne schwarzen rahmen drumrum
Hallo,
@Sebastian: Einen 8-Bit Wert über einen Index aus einer Tabelle zu lesen
dauert 2 Takte, wenn die Tabelle im RAM steht, 3 Takte wenn sie im Flash steht. z.B:
ein ASCII-Zeichen aus dem Bildsspeicher holen = zwei Takte
die dazugehörigen Pixel aus dem Charakter-ROM lesen = drei Takte
das Schöne bei Assembler ist ja, dass du exakt weisst,
was der uC macht, und wie lange jeder Befehl genau dauert.
@Christopher: <Sync mit externem Videosignal>
Nee, da sehe ich mit dem Mega8 keine Chance.
Da ist der zu langsam für.
Aber bestimmt gibt es noch einen Trick, an den ich noch nicht gedacht habe...
So war es bisher immer. :-)
Mit den AVR geht mehr als man denkt, wenn man sie richtig ausreizt.
Gruß Jan
[/quote]
hallo jan,
ich habe eine software die BMP in ein flash image wandelt. sync signale sind da schon drin. will das ganze in nem mega128 laufen lassen. da ist platz für ein 320x240 platz... Bei 6mhz pixeltakt bekommt man eine auflösung von 312 pixeln pro 52µsec... das bild wird dann statisch auf dem screen angezeigt. eigentlich wollte ich das ganze mit externem sram machen, der über binärzähler angesteuert wird, und dann über einen dac das bild anzeigt. ich will erstmal mit dem timing rumspielen, bevor ich den riesigen aufbau starte...
also im prinzip 3 takte im es aus dem flash zu holen, und zwei um den wert dann auf den port zu schreiben???
EDIT: habs mal nachgerechnet bei 5 takten pro pixel würde man ja nur noch 200 pixel pro zeile anzeigen können. das ist aber nicht viel.
wenn du den sync seperator 1881 nimmst, der hat zwei ausgänge für vsync und hsync die müsste man doch anstelle des timers als interrupt nehmen können, oder?
Hi Sebastian,
Für das Ausgeben am Port brauchst du nur einen Takt.Zitat:
zwei um den wert dann auf den port zu schreiben?
Und du holst ja nicht ein Pixel aus dem flash, sondern gleich 8.
Also du brauchst 3 Takte um 8 Pixel zu laden und dann 16 Takte
um die 8 Pixel zu shiften und auszugeben
und dann einen Takt um den Adresszeiger zu incrementieren.
Damit kommst du auf 20 Takte pro 8 Pixel.
Das dauert bei 16 MHz 1,25us. Ergibt 332 Pixel pro 52us.
Schöne Idee,klingt auf den Ersten Blick nicht schlecht.Zitat:
ausgänge für vsync und hsync die müsste man doch anstelle des timers als interrupt nehmen können
Müsste ich mal drüber nachdenken...
Aber jetzt will ich erstmal mit dem 40x25 Prog weitermachen,
es soll zum Wochenende fertig sein.
Gruß Jan
naja ich möchte auch graustufen bzw später auch 8 bit farben anzeigen. Ich denke ich werde mir mal asm anschauen :-)) die software zum erzeugen des flash könnte ich so modifizieren, ainfach asm code zu erzeugen... das steigert die pixelanzahl.. :-)) wieviel bytes ist eine portx=y anweisung in asm??
Hallo Sabastian,
< ldi r16,Wert > lädt einen 8-Bit-Wert in Register 16, dauert einen Takt, kostet zwei Bytes im Flash
< out portx,r16 > gibt den Wert an Portx aus, dauert auch einen Takt und kostet zwei Bytes im Flash
Schau dir doch einfach mal das Datenblatt des Mega8 an,
dort findes du ziemlich am Ende eine Aufstellung sämtlicher
Assembler-Befehle und auch deren Ausführungszeiten.
Gruß Jan
ich spiele gerade mit dem simulator von bascom rum... ich habe mal tasm gelernt für i386 aber das hier ist ein bisschen anders :-)
bei 4 bytes pro bildpunkt kann ich das wohl vergessen.. da werde ich wohl bei meiner kleinen grafikkarte bleiben... wenn die funktioneiert wird sie auch hier reingestellt