Liste der Anhänge anzeigen (Anzahl: 1)
Alles klar, (erinnert mich an die ZX81 Zeit)
Es sind ja folgende Dinge zu tun
1 das eigentliche Spiel, oder was das Werkel halt tun soll.
2 das Vorbereiten der nächsten Zeile
3 und dann halt das eigentliche rausshiften der s/w Pixel nach dem horz.Sync
Prinzipiell macht der C das Ganze um nix schlechter als der Assembler, (er läßt sich ja in die Karten gucken) grad', daß man im Assembler ein paar (wenige) Dinge etwas mehr auf den Zweck zuschneidern und dadurch optimieren kann.
bei 1 u. 2 bist du in eine höheren Sprache sicher in Summe besser dran, da krachen dir sonst die Finger.
3 ist zeitkritisch und wahrscheinlich mit inline assembler gut zu unterstützen.
Konkret: ich häng mal das, was ich hab, hier rein. is ja egal, übersetzen kann man es zumindest flagfrei, die Logik hab ich nicht überprüft, ich würde das sicher anders lösen, ich kenn mich ja.
Wenn du dich mit WinAvr auskennst, den Timer richtig aufsetzen kannst du wahrscheinlich eh besser.
Ob die Zeiten hint und vorn auch reichen, hab ich nicht nachgerechnet.
egal, schau mal rein mfg robert
Liste der Anhänge anzeigen (Anzahl: 1)
Translate die Nächste:
Ich hab halt versucht, mega163/mega32 umzusetzten, schau'n wir mal.
Ich hab nicht durchschaut, warum er den Timer0 setzt (1*10^-6)sec
(prescale 8 )
Die Zahl 509 ist ausschlaggebend für die Zeit/Zeile und ergibt bei 8MHZ dzt 63.625 microSec (NTSC). Pal is ja etwas länger, da konnt man was anderes probieren, aber schau erst mal, ob sich überhaupt was bewegt.
Was er will is klar: Timer1 auf Match/Compare damit er jede Zeile einmal interrupted, da schickt er dann den Zeilen sync (neg) am Bildende steigt er um auf Frame-sync. Durch den Interrrupt weckt er MAIN aus dem Sleep , der dann seine Pixeln runterrattert und hoffentlich innerhalb der Zeile auch fertig wird. In der horz. Austastlücke und außerhalb des sichtbaren bereiches bastelt er seinen Zeichen zusammen und zählt die Frames. bei >59 (NTSC hat 2*30 Frames) is eine Sekunde rum, das zeigt er dann her. den Ball pickt er dzt. irgendwo hin, der sollt sich nicht bewegen, is auch nur ein Template.
Wie gesagt, schau mal, ob der Fernseher überhaupt irgendwie reagiert.
mfg robert
EDIT PS: vielleicht muß man doch TCCR1B = 9 schreiben , hol's der Geier, ausprobieren
Liste der Anhänge anzeigen (Anzahl: 1)
Soderla. Beta release 0.nix
Ist noch für Mega32 , ich brauch erst das Sheet vom Mega8, daß ich mitreden kann
Die Zeilen hab ich für PAL angepaßt
theoretisch macht das programm nix als einen weißen Strich mittig (circa)
Setz dir den Helm auf und ab die Post. bis morgen mfg robert
(Ändere, was du magst, ich hab eh eine Kopie)
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, Pebi,
kaum macht man's richtig, geht's auch schon. Im Anhang die Balkenversion.
Der Balken ist etwas schmal, eigentlich ein Würfel.
Das ist deswegen, weil wir ja dzt. beim Pixel setzen keine Wenn und Aber haben, das heißt, wir sind zu schnell, aber das war von vornherein klar.
Weiters hab ich auf zwei andere Pins umsteigen müssen (nix frei bei mir)
im Programm sind PORTC.4 (Sync) u. PORTC.5 (Video)
Du mußt also PORTC auf PORTD unschreiben und umdefinieren:
#define synONE 0x10 // syn PICNICK
#define synNUL 0x00 // syn PICNICK
#define VIDONE 0x20 // VIdeo PICNICK
#define synONE 0x20 // syn PEBISOFT
#define synNUL 0x00 // syn PEBISOFT
#define VIDONE 0x40 // VIdeo PEBISOFT
ich hoff, du komst damit zurecht.
Mit dem Zählern mußt ich tricksen, so wie's is, stimmt's
Noch was: Ich hab die Dioden ersatzlos gestrichen
Viel Spaß, sieht gut aus, ruhig und stabil. mfg robert
Liste der Anhänge anzeigen (Anzahl: 1)
So, Pebi, ein bißchen besser dokumentiert. Am Abend werd' ich es auch nochmal testen, aber wie gesagt, beim 8MHZ (irgendwelche Fuses ?)
stimmt das Timing haargenau
PS Der Mega8 haut nur 1K SRAM. Sollt sich zwar ausgehen, aber denk dran, wenn irgendwas spinnt.
mfg robert
Liste der Anhänge anzeigen (Anzahl: 1)
*seufz* ich schaff es nicht, ein ähnliches Bild wie im Album zu produzieren. nur wenn ich
die +- Leitung zum TV vertausche, wird es wild
und wenn ich den Sync in der Interrupt routine NICHT umdrehe (case 295)
wird das Bild grauslich.
Ich stell diesmal alle files (Mega32) rein, samt make, hex etc.
](*,) Ich glaub, da hat's was mit dem (analogen) TV-Anschluß ](*,)
Er empfängt KEINE sync impulse, so wie's aussieht.
Wenn du dann in der Not Wahnsinnswerte reinstellst, find er dann irgendwas, was er für den Sync hält, das täuscht aber.
Dioden oder nicht, ist egal, hab's probiert.
*ratlos* mfg robert
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, Pebi !
Nachdem in den AVR-Video-Charts der Limit ja schon recht hoch liegt, hab ich versucht, die Möglichkeiten des reinen C ohne Asm auszuloten.
Dazu mußte ich die Ports verändern:
Video kommt nun auf PinC.7 (RN-Bus 25)
Sync auf PinB.0 (RN-Bus 29)
PortC ist nun als Output NICHT mehr zu verwenden.
dafür geht die Sache flotter, der Stand ist dzt. 128 x 112 Pixel.
das sind bei 8*8 Zeichen 16 x 14
Probiers erst einmal auf dem avr8L, vielleicht geht's ja.
Dann muß man sehen, wo bei den AVRs nun die Unterschiede herkommen
Sicher liegt's am Timing, aber wo ?
Ich versuch mich schlau zu machen mfg robert