Ah, ok.
Was mich interessieren würde, sind Bildstörungen beim Beschreiben des Zeichenspeichers bemerkbar ?
Es wird pro Interruptaufruf ja nur ein 12tel Buchstabe geschrieben, also müsste da theoretisch ein wenig Verhau entstehen, kann aber sein dass es durch die Trägheit des Auges nicht erkennbar ist.
Vorher hatte ich noch eine ISR gebaut, die jeweils eine der 20 Zeilen komplett auf einen Rutsch geschrieben hat.
Da hätt's sicher keine Störungen gegeben, aber bei Verwendung eines UARTs wär' bei ~34kBaud Schluss gewesen, weil sonst Zeichen nicht mehr abgeholt worden wären.
Fand ich dann auch nicht so optimal.
Ich glaube nicht, dass da problematische Störungen auftreten, der Mensch ist einfach zu langsamIch werde es aber mal untersuchen.
Inzwischen habe ich mich auch mal an der Interrupt-Geschichte versucht, allerdings auf C Basis.
Das Ergebnis ist zur Zeit 60% Auslastung bei 50Hz und 90% Auslastung bei 75Hz.
Die Auslastung lässt sich an der Low-Zeit von Pin D0 abschätzen.
Ich bekomme allerdings Grafikfehler bei der -O1 Optimierung, sonst klappt alles.
Das ist alles Neuland für mich, also die ganze Displaygeschichte. Ich programmiere einfach drauf los, Hauptsache ist, dass es funktioniert.
Nur nochmal zur Erinnerung^^
Geändert von MisterMou (02.05.2012 um 22:07 Uhr)
Bis jetzt hattest Du nur statischen Text.
Da wird auch einiges merkwürdiges Zeugs produziert, besonders von der Konstruktion (mFlag<<M) halte ich nichts. Schon mal angesehen, was da selbst in -Os generiert wird ?Das Ergebnis ist zur Zeit 60% Auslastung bei 50Hz und 90% Auslastung bei 75Hz.
Ich lass mir immer die Takte im Simulator ausgeben.Die Auslastung lässt sich an der Low-Zeit von Pin D0 abschätzen.
Wahrscheinlich optimiert er Dir da irgendetwas weg. Bedeutet das, die höheren Optimierungsstufen funktionieren ?Ich bekomme allerdings Grafikfehler bei der -O1 Optimierung, sonst klappt alles.
Da Dein Ziel eine möglichst kurze Ausführungszeit ist, ist ein Einfachfrauflos halt sehr zufällig im Ergebnis.Ich programmiere einfach drauf los, Hauptsache ist, dass es funktioniert.![]()
Ich seh aber wie träge das Display ist, der Wechsel eins Zeichens dauert mehrere Frames.
Ich kann Dich aber beruhigen, man sieht keine Probleme, zumindest bei meinem Code. Deiner ist ja fixer, da sollte es weniger Probleme werden.
Genau, beides.Wahrscheinlich optimiert er Dir da irgendetwas weg. Bedeutet das, die höheren Optimierungsstufen funktionieren ?
Das ist mir bewusst, aber ich habe kaum Erfahrung. Also erst einmal zum Laufen bringen, dann optimieren. Ich kann ja nicht zaubernDa Dein Ziel eine möglichst kurze Ausführungszeit ist, ist ein Einfachfrauflos halt sehr zufällig im Ergebnis.![]()
Geändert von MisterMou (02.05.2012 um 22:07 Uhr)
Das ist dann das Henne-Ei Paradoxon, wenn Du nicht Assembler lesen kannst, siehst Du nicht, wie der Compiler bestimmte Anweisungen in C umsetzt, das Du deswegen benutzt um Assembler zu vermeiden![]()
Da geb ich Dir Recht
Ich finde ASM einfach so unbequem, aber wo keine Rechenleistung ist, muss man eben durch Optimierung nachhelfen, mir bleibt da wohl nichts übrig...
Das Ersetzen von (mFlag<<M) durch mFlag bringt so gut wie nichts.
mFlag wird dabei vorher schon 0x08 oder 0x00 gesetzt.
Geändert von MisterMou (02.05.2012 um 22:55 Uhr)
Lesezeichen