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.
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.
<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ß
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
@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
Öhm, bei mir haut das mit dem Mega8 nicht so ganz hin, mein
Compilerauswurf ist knappe 12KB gross
1
Total11064
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...
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.
....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
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.
...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.
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
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?
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
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?
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
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