mikrocontroller.net

Forum: Projekte & Code ATmega8 erzeugt Video in C!


Autor: Ulrich Radig (radiguli) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

hier wird mal ein Videosignal mit einem ATmega8 in C erzeugt. Evt. ist 
ja diese Spielerei interressant.

Gruß
Uli

Autor: Gast (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
1001 Internetze für dich!

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant.
Was mich jetzt etwas wundert ist, dass alle Zeichen an der selben Stelle 
anfangen und nicht ausgefranzt sind. Je nachdem wann der Interrupt 
angesprungen wird, müsste sich ja aufgrund der Durchlaufzeit für die 
HSync Ende Schleife ein Jitter von rund 0-2 Takten ergeben.

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jitter, den man problemlos kompensieren kann.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, nur sehe ich keine Kompensation in der Software, daher die Frage.

Autor: Ulrich Radig (radiguli) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Nagut dann auch mit Kompensation ;-)

Gruß
Uli

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Kompensation ist nicht das was ich meinte:
Diese while Schleife braucht je nach Umsetzung vom Compiler etwa 2-4 
Takte.
Da man nie genau weiß, ob der Interrupt exakt zum Compare Zeitpunkt 
ausgeführt wird, oder nicht doch ein paar Takte später (da z.B. gerade 
eine Befehl ausgeführt wird, der mehr als 1 Takt benötigt), dann kann es 
sein, dass eben der Interrupt 1, 2 oder 3 Takte später ausgeführt wird. 
Diese kleinen Zeiten kann die Schleife eben nicht kompensieren, da sie 
zu lange für einen Durchlauf braucht.

Daher war ja meine Frage, ob es hier Zufall ist, dass das Bild gut 
aussieht, ober ob sonst noch irgendwo ein Trick verbaut ist, damit 
dieses Problem nicht auftaucht.

Autor: anwärter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche aufgabe hat eigentlich der transistor in der video-schaltung.
kann man den auch weglassen?

mfg

Autor: USB Fa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird diese Schaltung dann einfach an den normalen Video eingang im 
Fernseher angesteckt?
(Gelber Chinch stecker).

Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<welche aufgabe hat eigentlich der transistor in der video-schaltung.
kann man den auch weglassen?>


der transistor ist als impedance wandler eingesetzt weil der ATMEGA 
keine 75ohm last direkt treiben kann, also kann auf den transistor nich 
verzichtet werden.

gruß

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Innenwiderstand eines AVR-Ausgangs liegt bei 5V erheblich unter 75 
Ohm.

Autor: anwärter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum gibt es fbas-beispiele hier im forum ohne diesen transistor?

wird ohne transistor der avr-port beschädigt?

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm,
  hat ein PAL - Signal nicht einen Pegel von 1Vss?? Dann müsste bei 1Vss 
an 75 Ohm doch ein max. Strom von 13mA ergeben. Anscheinend dient der 
Transistor einem anderen Zweck... vielleicht kann Herr Radig uns mal den 
richtigen Denkanstoss geben, damit wir die Schaltung richtig verstehen.
Aber auf jeden Fall ist das ein wirklich interesanntes Programm. :-)

Gruß,
  SIGINT

Autor: USB Fa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde sagen, dass es daran liegt, das der Ausgang nicht direkt 
eine solche Last treiben kann.
Dann bricht nur die Spannug ein...

Autor: USB Fa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, nochmal ne ganz andere Frage!

Wieso ist auf dem Schaltplan ein NPN Transistor zu sehen und im 
Datenblatt des BC857 jener als PNP verzeichnet?

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@USB Fa:
   Hmmmm, hast du nen anderen Schaltplan?!? Bei mir ist das ein PNP. Der 
Pfeil zeigt auf die Basis. Zum Thema Last: Der ATmega kann 40mA treiben, 
was 3V bei 75 Ohm ergibt. Weißpegel ist bei 1V (meines Wissens nach). 
Ich bin mir nicht sicher, ob ich das alles richtig sehe... aber 
vielleicht kennt sich jemand genau damit aus.

Gruß,
  SIGINT

Autor: Ulrich Radig (radiguli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der Transistor dient als Inverter!

Gruß
Uli

Autor: anwärter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...der Transistor dient als Inverter!.....


was wird damit bezweckt?
ist er notwendig für ein fbas-bild?


mfg

Autor: nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm, bei mir haut das mit dem Mega8 nicht so ganz hin, mein 
Compilerauswurf ist knappe 12KB gross
Total             11064
GCC-Version winavr 4.3.0 (20080512)
Makefile: deine, ohne sontige Optionen

Wie bekomm ich das in den Mega8 rein? Hab nämlich im Moment keinen Chip 
mehr da, der das obige aufnehmen würde...

Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze Version WinAVR20072112.

Autor: nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aaahja, und welches Monat ist denn dann der 21te? ;)
Ich habe es noch unter Linux mit einem gcc 4.2.irgendwas ausprobiert, 
nahezu das selbe Ergebnis. Ich werd das Teil mal von Hand 
durchcompilieren und ansehen.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bullshit. Die Mai-Versionen sind verbuggt. Bitte einfach eine neuere 
Version zulegen.

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....Total 11064....


wenn das von der make als "ihex" gemacht wurde, muss es reinpassen.

gib mal im make "binary" ein. die endung des fertigen codes ist dann 
noch hex, ist aber schon eine bin-datei, die dann wesentlich kleiner 
ist.

muss dann nur die endung hex durch bin ersetzen bei deinem fertigen 
code.

das ist noch ein fehler in winavr-c

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...das ist noch ein fehler in winavr-c.....


bzw in der "make-datei".

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bastler wrote:
> gib mal im make "binary" ein. die endung des fertigen codes ist dann
> noch hex, ist aber schon eine bin-datei, die dann wesentlich kleiner
> ist.

Es wird trotzdem den gleichen Code im Controller belegen.

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...Es wird trotzdem den gleichen Code im Controller belegen.....


du liest alles zu oberflächlich,mehr mühe geben. das will ich nicht 
wissen.

es geht hier darum , das der code in dem atmega8 reinpasst und mit der 
bin-ausgabe hast du die übersicht, wie gross er tatsächlich ist, bei 
einer hex-datei nicht.

Autor: Fraser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Könnte mir wohl jemand sagen, ob man für den BC857 auch nen anderen 
Transistor nehmen kann, z.B. den BC557.

Gruß
Fraser

Autor: Andreas_L (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BC857 = BC557 , nur ein anders Gehäuse!!!

Autor: Josip Plazonic (zipzip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe die Schaltung nachgebaut und dann das Programm auf nen AtMega32 
gebrannt. Ich verwende das STK500. Bei mir ergibt sich jedoch das 
Problem das Ich auf meinem Fernseher 2 zuerst einen Grellweißen Schirm 
bekomme und dann ~1s später ich zwei wirre halbbilder bekomme aber 
leider keinen Text...
Irgendwer lösungsideen?

Mfg
ZipZip

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh noch jemand der sich heirfür interessiert! Überprüf mal die die Fuse 
Bits deines Mega32. Bei 20Mhz sollte die CKOPT fuse programmiert sein 
wegen der hohen frequenz. hatte das problem anfänglich auch!

Ich habe aber auch ein problem. mein text ist zwar zu lösen und "rollt" 
nicht allerdings ist er trapezförmig verzogen. ich nutze einen atmega8 
bei 20mhz. eigentlich sollte das funktionieren... ideen?

Autor: Josip Plazonic (zipzip)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah danke das CKOPT fuse war tatsächlich nicht programmiert..
Und außerdem hab ich grad gemerkt das ich einen 16Mhz Quarzoszillator 
angeschlossen hatte XP... Ich hab mich getraut die Geschichte selbst zu 
programmieren klappt alles wunderbar.. Solange ich nur ein 3*2 
schachbrett darstelle... Aber sobald ich eine if abfrage oder 2 while 
schleifen ineinander einsetze passt das timing nicht mehr und ja das 
bild sieht auch wie moderne kunst ^^. Ich hab alles in c geschrieben... 
Irgendwer lösungsideen, konstrukive vorschläge etc...

@Philipp

Wie meinst trapezförmig verzogen?
Meistens (bei mir halt) sind die Sync Signale sprich H -und VSYNC das 
Problem.

Mfg

ZipZip

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau das scheint bei mir auch das problem zu sein! Naja leider wird der 
code dadurch ziemlich unbrauchbar für eine anwendung. total instabil

Autor: Daniel R. (zerrome)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich hab da mal eine frag zur schaltung,
ein bas signal ist ja von 0 - 1 volt, wenn ich mir aber den schaltplan 
anschaue, komm ich da aber nie auf 1 volt ?!?
macht einem fernseher sowas nichts aus?

Autor: sputnik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
hab das grad mal ausprobiert und das jittert bei mir ganz schön hart.
Habe nichts verändert, atmega8 mit 20mhz oszillator.
Jemand eine Idee was da los ist?
mfG

Autor: klee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo freunde/freundin
hast du wirklish das gemacht?
kanst du bitte mehr erzalen wie du es erricht hast?
danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.