www.mikrocontroller.net

Forum: Codesammlung ATmega8 erzeugt Video in C!

Autor: Ulrich Radig (radiguli) Benutzerseite
Datum: 30.05.2008 23:32
Dateianhang: ATmega8_Video_C.zip (83,3 KB, 642 Downloads)

Hallo,

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

Gruß
Uli
Autor: Gast (Gast)
Datum: 31.05.2008 01:39

1001 Internetze für dich!
Autor: Benedikt K. (benedikt)
Datum: 31.05.2008 09:29

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: 31.05.2008 09:41

Jitter, den man problemlos kompensieren kann.
Autor: Benedikt K. (benedikt)
Datum: 31.05.2008 09:44

Ja, nur sehe ich keine Kompensation in der Software, daher die Frage.
Autor: Ulrich Radig (radiguli) Benutzerseite
Datum: 31.05.2008 10:50
Dateianhang: ATmega8_Video_C.zip (83,4 KB, 295 Downloads)

Hallo,

Nagut dann auch mit Kompensation ;-)

Gruß
Uli
Autor: Benedikt K. (benedikt)
Datum: 31.05.2008 10:58

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: 23.06.2008 08:44

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

mfg
Autor: USB Fa (Gast)
Datum: 23.06.2008 09:56

Wird diese Schaltung dann einfach an den normalen Video eingang im
Fernseher angesteckt?
(Gelber Chinch stecker).
Autor: Robert (Gast)
Datum: 23.06.2008 10:21

<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 Kaiser (a-k)
Datum: 23.06.2008 11:45

Die Innenwiderstand eines AVR-Ausgangs liegt bei 5V erheblich unter 75
Ohm.
Autor: anwärter (Gast)
Datum: 23.06.2008 12:49

warum gibt es fbas-beispiele hier im forum ohne diesen transistor?

wird ohne transistor der avr-port beschädigt?
Autor: Sigint 112 (sigint)
Datum: 23.06.2008 15:49

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: 23.06.2008 19:45

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: 23.06.2008 19:48

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: 23.06.2008 20:04

@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: 23.06.2008 20:21

Hallo,

der Transistor dient als Inverter!

Gruß
Uli
Autor: anwärter (Gast)
Datum: 23.06.2008 21:00

...der Transistor dient als Inverter!.....


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


mfg
Autor: nils (Gast)
Datum: 23.06.2008 21:18

Ö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: 23.06.2008 21:28

Benutze Version WinAVR20072112.
Autor: nils (Gast)
Datum: 23.06.2008 22:21

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: 23.06.2008 22:28

Bullshit. Die Mai-Versionen sind verbuggt. Bitte einfach eine neuere
Version zulegen.
Autor: bastler (Gast)
Datum: 24.06.2008 09:10

....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: 24.06.2008 09:17

...das ist noch ein fehler in winavr-c.....


bzw in der "make-datei".
Autor: Simon K. (simon) Benutzerseite
Datum: 24.06.2008 12:33

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: 24.06.2008 16:44

...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.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net