PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Graph-Animation für Oszi möglich?



m_herr
07.06.2008, 14:21
Hallo,

ich experimentiere gerade ein wenig mit Grafik-Displays und wollte eigenlich Werte graphisch darstellen, sozusagen eine Verlaufslinie wie man es vom Oszilliskop her kennt. Leider ruckelt bei mir alles, weil ich halt linie Zeichne, die Werte nach links verschiebe, neu zeichne und die alte Linie lösche.

Jetzt habe ich schon öfters viel flüssigere Animationen solcher Dinge im Netz gesehen - es geht also auch besser.
Hat einer eine Idee wie? Da wäre ich ihm sehr dankbar.

Gruß

for_ro
07.06.2008, 19:38
Wenn du uns deinen Code zeigst, können wir dir besser helfen.

Gruß

Rolf

m_herr
07.06.2008, 20:21
Glaube ich nicht, da es ja nicht um meinen Code geht, sondern um die allgemeine Vorgehensweise bei dieser Sache. Und was mein Code macht, habe ich ja schon geschrieben...

Gento
07.06.2008, 20:48
Im Allgemeinen werden LCD Routinen so in Bascom geschrieben das auch das lahmste LCD noch läuft.

Gento

Edit:Wenn Du 16 MHZ Quarz hast , schreibt in den Quell 1 MHZ (Wirkt oft wie ein Wunder)

m_herr
14.06.2008, 23:31
keiner ein Beispiel von solchen Animationen?

robocat
15.06.2008, 00:11
also am pc wird ja meistens in einen (ram) puffer gezeichnet, und dieser dann in einem rutsch auf den bildschirm übertragen. das lohnt sich aber nur, wenn sich viel auf dem schirm ändert.

bei einem oszisignal hast du ja nur einen pixel pro spalte, den du setzen oder löschen musst. du könntest also mal einen puffer mit deinen [anzahl spalten] messwerten darstellen lassen, dann spalte für spalte diese pixel löschen und dafür andere pixel aus einem 2ten puffer darstellen. schneller wird es ohne trickserei in bascom nicht werden.

vielleicht kann man aber auch die zeichenroutinen noch optimieren, aber alle projekte in der art, die ich bisher gesehen habe (links habe ich grad leider keine) waren in c und die zeitkritischen stellen in asm umgesetzt.

üblich ist, dass man entweder auf das ready flag des displays wartet, bevor man das nächste datenbyte überträgt; oder einen festen zeitraum abwartet, der normal so gestaltet ist, dass auch das langsamste display mitkommt. letzteres ist meistens um einiges langsamer.

beispielcode wirst du wahrscheinlich keinen bekommen, wenn du es nicht für nötig hältst, deinen code zu posten.

gruesse

m_herr
15.06.2008, 11:32
hat nichts mit nötig halten zu tun, eher damit, daß er - wie schon gesagt - keine rolle spielt.

bin mittlerweile etwas fündig geworden, allerdings ruckelt es da genau so wie bei mir. scheint wohl mit bascom (sind auch nur bascom-befehle) nicht anders zu gehen. schade eigentlich

peterfido
15.06.2008, 14:27
ohne Beispielcode ist es in der Tat etwas schwierig zu helfen. ASM lässt sich auch in Bascom einbinden. Je nach Displayart und Auflösung lässt sich hier und da etwas optimieren. Ich mache das meist, indem ich die Libs manuell anpasse. (Das Original natürlich vorher sichern)

m_herr
15.06.2008, 15:08
Dann hast du da Beispiele, also Video's von? Mich würde erstmal das Ergebnis intressieren, bevor ich da anfange mit meinen kleinen Kenntnissen was zu biegen *g

stefan_Z
15.06.2008, 15:42
Finde raus, ob du das Display nur als Ganzes oder auch einzelne Pixel/Spalten/Felder steuern kannst.
Da du weder Code noch Displayart/-Treiber nennst, ist das alles fruchtlos...
Die Bacom-Routinen sind nicht immer optimal, mit nem eigenen Treiber ist das eventuell schneller.
Dazu suchste dir das Datenblatt des Controllers und programmierst es halt neu.

m_herr
15.06.2008, 15:50
Leute, was habt ihr immer mit dem Code? Ich sage doch nun schon zum xten Mal das ich "weil ich halt linie Zeichne, die Werte nach links verschiebe, neu zeichne und die alte Linie lösche. "

Grafik-Display sind die KS108 und T6963C-Typen, also die üblichen Verdächtigen.

stefan_Z
15.06.2008, 16:40
Dann bau dir halt ne Routine, die immer nur einen Pixel löscht und neu zeichnet.

m_herr
15.06.2008, 16:46
Habe ich auch schon überlegt. nur dafür müßte halt der Graph aus dem Zahlenarray in eine Tabelle oder so übertragen werden und diese dann sichtbar gemacht werden.
Aber angenommen es sind 200pixel breite mit 100 pixel höhe, das sind dann 20000 Bildpunkte/Tabelleneinträge etc - das ist doch bestimmt viel zu viel Arbeit für den Prozessor, oder?

Vitis
15.06.2008, 17:42
ich habs so gemacht, dass ich nicht lösche, sonder einfach das
ganze Display neu beschreibe und dabei die alte Anzeige
einfach überschreibe, dann flackerts nämlich nicht.

m_herr
15.06.2008, 21:23
neu beschreiben? ruckelt es da nicht noch mehr? Wie hast du denn das neuschreiben bzw. das löschen dazu gemacht?

Vitis
15.06.2008, 22:56
wenn man den alten inhalt einfach überschreibt löscht der sich ja
auch ... bzw. die nicht verwendeten frames setz ich halt auf 0

m_herr
16.06.2008, 08:43
Hört sich interessant an, wie machst du das code-technisch?

m_herr
02.07.2008, 22:53
keine Antwort? das ist aber schade

m_herr
25.10.2008, 15:12
neuer versuch

http://es.youtube.com/watch?v=EpT9n7I2YMI&feature=related

schaut euch mal das Video an....wie geht eine so klare und ruckelfreie Animation? Die Hälfte davon würde mir schon gefallen ;)

Jaecko
25.10.2008, 15:57
[Text entfernt, da keine Hilfe gewünscht wird]

m_herr
25.10.2008, 16:05
mein code ist, wie schon mehrfach erwähnt, bascom linie zeichnen, neue linie zeichnen und alte linie löschen. also das normale, aber es ruckelt halt.

Ich suche halt code-vorlagen für eine solche flüssige Animation für ein Oszi . Gerne gegen Geld und via PM

Jaecko
25.10.2008, 16:19
[Text entfernt, da keine Hilfe gewünscht wird]

m_herr
25.10.2008, 16:43
sorry, aber was soll das werden? sammelst du beiträge für irgendwas?

kennst du bascom? dann kennst du auch den line-befehl....und nu is gut!!!!
danke für deine aufmerksamkeit, aber wenn du nichts hast für mich, dann bitte platzmachen für die, die vielleicht eine idee haben bzw. sich etwas dazuverdienen wollen. danke :)