PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bildmuster-Generator Programm mit BascomAVR möglich



Mitch64
07.04.2009, 19:22
Hallo,

an alle Bascom-, Assembler- und C-Programmierer.

Eine unverblümte Frage ich die Experten-Runde:

Haltet ihr es für möglich, mit BascomAVR (Inline-Assembler eingeschlossen), ein Bildmuster-Generator-Programm zu erstellen, das folgendes können soll:

- verschiedene Bildmuster (Testbilder) erzeugen
(als BAS-Signal (sw) und RGB in Farbe)
- Ton erzeugen (1kHz / anschaltbar)
- AV-Umschaltung per PWM für AV-Aus, AV-An und 16:9
- RGB-Austastung (an/aus)
- komplette Menüführung per Tasten und LCD-Display

Das ganze soll mit nur einem einzigen AVR-Controller umgesetzt werden.


Nochmal die Frage:
Ist das möglich oder nicht.

Bei Antwort bitte angeben, in was du programmierst.

Gruß Mitch.

for_ro
07.04.2009, 20:59
Sieh dir mal diesen Thread an
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=5880
ähnliche Ausgangsfrage wie deine.

Gruß

Rolf

Mitch64
07.04.2009, 21:16
Interessanter Thread.
Ja das geht in die Richting was ich meine. Aber ein Konzept oder eine funktionierende Variante haben die auch nicht.

In deren Thread geht es auch um Textausgabe. Ich meine jedoch nur Testbild-Ausgabe.

Trotzdem danke für den Beitrag.

Andree-HB
07.04.2009, 21:53
schau mal hier :
http://www.embedds.com/avr-rgb-pal-tv-pattern-generator/

oder hier :
http://www.tvterminal.de/index1.html

Vitis
08.04.2009, 00:22
also mit inline ASM halt ich es absolut für möglich.
Bei den Highlevel Befehlen wirds vom Timing her mit Bascom
schon sehr eng sein, aber ASM-Subroutinen sehr denkbar.

Mitch64
22.04.2009, 07:21
Hallo,

und vielen Dank für eure Antworten.
Ich habe mich mal daran versucht, einen Bildmuster-Generator zu entwerfen. Was dabei heraus kam ist beeindruckend.

Das ganze Projekt kann hier bewundert werden:
http://mitchsoft.de/Elektronik/Projects/BildmusterGenerator/index.html


Das dürfte einer der wenigen Bildmuster-Generatoren sein, der vollständig mit Bascom entwickelt wurde. Natürlich mit ein paar Zeilen Inline-Assembler. Es können Schaltbilder, Layouts und Firmware heruntergeladen werden. Ein Beschreibung (PDF) gibts dort auch.

Aber seht selbst.

Gruß Mitch

PicNick
22.04.2009, 12:20
öööhhm: Das "index.html" musste ich im Link auslassen, stimmt wahrscheinlich die Schreibweise nicht ganz (?)

BTW: Interessante und imho gut gestaltete HP

thewulf00
22.04.2009, 13:45
Die Schreibweise stimmt schon, aber an dem index.html klebt ein unsichtbares
und das macht den link kaputt, weil der WebServer es zum Dateinamen zählt.

Mitch64
22.04.2009, 18:55
Hallo,

leider hat sich da beim Link setzen ein Fehler eingeschlichen.
Hier also nochmal der Link:

http://mitchsoft.de/Elektronik/Projects/BildmusterGenerator/index.html

Der Link funktioniert!

Gruß Mitch

DL2MWB
11.12.2013, 16:13
Der Link und Beitrag ist ja schon ein paar Jahre alt und ohne Funktion. Gibt es da noch was Aktuelles ?

Gruß Wolf

Harry1234
07.01.2014, 23:37
Liest noch einer mit? schade das der Link nicht mehr geht

Mitch64
14.02.2014, 12:06
Wieso schade?
Ich leb doch noch!
Habe nur meine Webseite geschlossen.
Was hast du für ein Anliegen?

Michael
14.02.2014, 14:15
der Thread hier zeigt schön das Problem das alle Foren mit externen Links haben.
Wenn der Inhalt nämlich nicht mehr im Link vorhanden ist, dann ist die ganze Info wertlos.
Einzig das gerenderte Platinenbild gibt es noch zu sehen.
Vielleicht kannst du ja noch den Schaltplan und das Programm nachreichen, wenn du den Link geschlosssen hast.
Hier wäre der Inhalt vermutlich länger haltbar. ;)

Gruß, Michael

Mitch64
14.02.2014, 15:05
Hi,

das ist ja alles korrekt. Allerdings war der Link auf meine eigene Webseite gesetzt. Machte ja damals keinen Sinn das alles doppelt zu posten.
Jedenfalls habe ich später meine Seite aus privaten Gründen geschlossen. Damit war der Link natürlich futsch.

Wer etwas möchte, will oder braucht, kann sich gerne an mich per Mail oder PN wenden. Möchte schließlich nicht, dass mein Code unkontrolliert im Netz kursiert. Selbiges gilt für Schaltplan etc.
Also Mail schreiben und fragen heißt die devise.

Gruß Mitch.

Michael
14.02.2014, 15:39
Möchte schließlich nicht, dass mein Code unkontrolliert im Netz kursiert. Selbiges gilt für Schaltplan etc.
ja, genau das ist doch das Problem.
Was ist an deinem Code so toll, dass du ihn so schützen musst? Auf deiner Webseite war er doch auch verfügbar? Hattest du nie als Anfänger den Bedarf, mal eine funktionierende Schaltung/Programm zu sehen? Wenn du in Google suchst und findest den Thread hier, willst du vielleicht mal schauen, wie sowas aussieht und erntest aber nur einen Hinweis auf Mail oder PN.
Was ist, wenn du in 2 Jahren beschließt, dass du jetzt Hühner züchtest und keine Computer mehr haben willst? ;)
Ich gehe nach der Devise vor: Nur wenn Wissen geteilt wird, dann vermehrt es sich.
Ist es so schlimm, wenn du den Code/Schaltplan postest? Du kannst es doch jederzeit wiederholen und sogar besser machen?
Keiner nimmt dir deinen Ruhm weg, aber im stillen Kämmerlein gibt es auch keinen.

Das war ein etwas langes Statement, aber ich wollte es nur mal sagen, ist nichts persönliches und ich geb jetzt auch Ruhe ;)

Gruß, Michael

Mitch64
14.02.2014, 19:34
Was ist, wenn du in 2 Jahren beschließt, dass du jetzt Hühner züchtest und keine Computer mehr haben willst?

Was wäre wenn?
In die Zukunft kann wohl keiner schauen. - Und ich auch nicht!
Was ich aber immer wieder feststellen muss ist, dass die meisten Leute alles möglichst umsonst möchten. Fertige Schaltungen, funktionierender Code, am besten den Sourcecode noch dazu und das alles fertig aufgebaut in einem Gehäuse mit 2 Jahren Garantie. Ich musste mir mein Wissen auch selbst aneignen. Und das Projekt hat schließlich auch einige Wochen an Entwicklungszeit in Anspruch genommen. Ich sagte ja nicht, dass ich nichts ausgeben will oder werde. Aber ich denke, wem eine eMail zu viel Arbreit ist, dem kann der Nachbau des Bildmuster-Generators ja nicht so wichtig sein.

Ich denke mann kann fragen, ob man was bekommt und ich weiß zumindest mal wem ich es gegeben habe.

Auskünfte gebe ich eigentlich immer gerne, auch wenns mal ums Detail geht. Damit sollte deiner Devise nach: "geteiltes Wissen kann sich vermehren" genug Rechnung getragen sein. Aber Source-Code bleibt vorerst mein Geheimnis.

Mein Motto ist: Lerning by doing! Und Try and Error!
Man muss wenn man selber programmiert kreativ sein und selbst mal den Kopf bemühen um Lösungen zu finden. Ich gebe dir recht, dass man manchmal Hilfe braucht. Sei es in Form von Anregungen oder ein Codeschnipsel. Aber dann sollte man wieder selbst ein Stück weiter kommen.

Ich glaube hier im Forum ist niemand angetan Leuten einen fertigen ausgetesteten Code zu schreiben. Zumal dies oft wegen fehlender Hardware gar nicht geht.

Also ich denke mein Statement ist klar.
Ich bin offen, helfe bei allgemeinen Fragen oder Fragen zur Codeumsetzung gerne weiter, und Pläne mit HEX-File für ein Nachbau gibts auf Anfrage.

Soviel von meiner Seite.
Übrigens noch einen Gruß an PicNick. Er hatte das Teil ja mal nachgebaut. Ich denke er war recht begeistert.

Gruß Mitch

Harry1234
15.02.2014, 12:39
Hallo Mitch, schön das es Dich noch gibt. Nichts ist für einen blutigen Anfänger mehr depri als wenn er nach dem Googeln einen Beitrag (Bildmustergenerator in Bascom) findet der genau das beinhaltet was mann möchte und dann der Link nicht mehr geht. Klar das Du deinen Code schützen willst und nur die Hex rausgibst, das Angebot greife ich gerne auf.
Ist der aber nicht an einen bestimmten MC gebunden oder kann er auch in einen anderen Atmel geladen werden in dem auch noch andere Funktionen rein müssen. Mein Problem ist das ich schon lange rumprogarmiere um nur ein sauberes H-Syng, V-Syng und C-Syng zubekommen weil ich eigentlich nur Diese brauche.
Ich habe mehrere alte Videokameras (analog) mit einem Steuer- und Mischteil auf einen Flomarkt bekommen und möchte die wieder zum Leben erwecken. Ich möchte damit Zeitrafferaufnahmen machen und eine Nest beobachten was ich auch schon mal mit einer alten SW-Kamera gemacht habe.
Die Kameras bekommen den Syng, der sie auch einschaltet, über das Steuerteil (TTL-Grab) und das ist hin.
Es machte die Syng, Ablaufsteuerung und die Sensorüberwachung. Das habe ich zum Teil schon im Atmel 8 bzw. auch 32 lauffähig, nur die Syng bekomme ich nicht hin, sie jittern und deshalb laufen die Kameras nicht.
Ich habe probiert die Syng über die Timer/Counter und PM hinzubekommen... da hänge ich nun fest. Lerning by doing! Und Try and Error! habe ich dabei gut ausprobiert.....
Die analog Hardware ist für mich kein Problem da ich die Radio und FS Technik mal gelernt habe, nur die Software macht Probleme da ich erst als Rentner damit angefangen habe. Mit den MC überwache ich einen Sensor und schalte die Kameras um bzw. in bestimmten Zeiten ein. Das geht soweit, aber nur wenn ich eine Kamera verwendet. Es wäre schön wenn ich für die Syng auf deine Software aufbauen und sie in meinen Bascomprg. benutzen könnte.
Ich arbeite z.ZT. nur mit Bascom weil ich Basic schon mal verwendet habe, ich habe hier gelesen das man da auch andere Programteile in Bascom einbinden kann. Assembler kann ich leider nicht, sonst wäre das Ganze sicher einfacher. Es wäre schön wenn Sie mir weiterhelfen könnten.

Mitch64
15.02.2014, 22:32
Hallo Harry,
vielen Dank für deine umfangreiche Frage. Ich werde mal versuchen zu beantworten was geht. Manches verstehe ich aber auch noch nicht. Dazu später.

Das Hex-File zu meinem Bildmuster-Generator ist für den ATMega88 mit 20MHz Quarz-Takt compiliert worden.
Das Hexfile kann also nicht auf einen beliebigen anderen Controller eingespielt werden. Man könnte allerdings das Programm auf einen anderen Controller auslegen/anpassen und neu kompilieren. Der Aufwand (vermutlich aufwendiger) ist allerdings nicht abschätzbar, da kann es böse Überraschungen geben. Voraussetzung für ein solches Vorhaben ist allerdings ein Controller, der 20MHz getaktet werden kann, da alle Zeitkritischen Routinen darauf ausgelegt sind.

Ich denke mit den Syng-Signalen meinst du Sync-Signale (mit C geschrieben). Das hat mich erst etwas verwirrt.
Wenn du erst mal H-Sync und V-Sync Signale generiert hast, müssen die nur noch gemischt werden. Das Mischen erreicht man z.B. durch Toggeln eines Ports.
Wie man das im Einzelnen genau macht würde den Rahmen hier sprengen.

Das gleiche gilt für das Jittern. Aber kurz zur Erklärung. Der ein H-Sync Impuls wird per Hardware-PWM erzeugt. Sobald dieses Signal ausgegeben wird, muss nach einer bestimmten Zeit das Zeilensignal folgen. Ist das Timing zwischen H-Sync und Start der Zeienausgabe nicht exakt in jeder Zeile gleich, beginnt das Bild zu jittern. Jittern ist also der Zeitliche Versatz zwischen Sync-Impuls und dem Beginn des Zeilensignals, wenn er nicht immer gleich ist. Ursache ist hier das Assembler selbst, welches für unterschiedliche Instruktionen unterschiedlich lange braucht. Daher kommt der Versatz!
Um das auszugleichen gibt es mehrere Ansätze. Entweder die Zeilenausgabe vorbereiten und bevor bevor die Zeilenausgabe los geht den Controller schlafen legen, Der Zeitpunkt, an dem die Zeile beginnen soll wird durch einen Timer-Interrupt bestimmt, der den Controller synchron aufweckt. Das Programm startet dann direkt mit der Zeilenausgabe nach dem aufwecken. Also immer Zeitsynchron zum H-Sync.

Ich habe das anders gelöst. Da der Timer als Fast-PWM konfiguriert ist, wird der Timer dadurch auch auf 0 gesetzt, während das Sync-Signal ausgegeben wird. Ich nutze die Zeit, um die Zeilenausgabe vorzubereiten, Pointer berechen etc. Dann rufe ich meine Taktausgleichroutine auf, die das Jittern beseitigt. Diese liest eigentlich nur noch den Timer aus und weis somit die bereits verstrichene Zeit und kann die fehlende Zeit bis Zeilenausgabe bestimmen. Dies wird als Offset für einen Jump über NOPs verwendet, wodurch die Taktausgleichroutine immer Jitterfrei verlassen wird.

Wenn ich dich richtig verstehe brauchst du nur einen Generator, der dir ein Composite-Sync liefert? Also reine TTL-Pegel?

Nun das sollte nicht so schwierig sein. Welches Sync jittert denn bei dir? Horizontal oder Vertikal? Oder möchtest du mir man ein Code-Schnipsel zur Ansicht geben oder hier posten? Möchte mal sehen, wie du das realisiert hast.

Kannst du mir konkret etwas zeigen, wo ich dir weiter helfen kann?

Wenn du etwas nicht veröffentlichen willst, dannst du das auch als PN (Private Nachricht) an mich senden.

Gruß Mitch

kleiner Nachtrag.

Wie gefällt dir das (Comp.Sync-Signal):
275362753727543
Die Signale sind nach CCIR-Norm bis auf kleine Abweichungen in der Pulsbreite von H-Sync. Sollte aber nicht weiter stören.
Kannst du das Comp-Sync so gebrauchen? Oder brauchst du statt dessen H-Sync und V-Sync separat?

so sieht übrigens mein Bildmuster-Generator aus:
2753827539

Gruß Mitch

Harry1234
17.02.2014, 11:41
Hallo Mitch, sieht super aus. ich habe Ihnen eine PN gesandt weil es hier sicher nicht wirklich passt.

nikolaus10
17.02.2014, 15:13
fuer den Arduino gibt es eine Libary die ein TV-Signal generiert.
Die HW ist ein Arduino (mit 16Mhz) und zwei Widerstaende.
Die Lib heist TVOut


KR