<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>display22 &#187; TVout</title>
	<atom:link href="http://www.display22.de/category/projekte/tvout/feed" rel="self" type="application/rss+xml" />
	<link>http://www.display22.de</link>
	<description>Labor für Interaktion</description>
	<lastBuildDate>Thu, 26 Nov 2009 10:14:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FBAS (PAL) Composite Signalerzeugung</title>
		<link>http://www.display22.de/werkzeuge/wiring/fbas-pal-composite-signalerzeugung</link>
		<comments>http://www.display22.de/werkzeuge/wiring/fbas-pal-composite-signalerzeugung#comments</comments>
		<pubDate>Mon, 04 Dec 2006 14:24:40 +0000</pubDate>
		<dc:creator>db</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[TVout]]></category>
		<category><![CDATA[Wiring]]></category>

		<guid isPermaLink="false">http://www.display22.de/werkzeuge/wiring/fbas-pal-composite-signalerzeugung</guid>
		<description><![CDATA[<h3>Wie sollte ein FBAS Signal aussehen?</h3>

<a href="http://de.wikipedia.org/wiki/FBAS">http://de.wikipedia.org/wiki/FBAS</a>

<a href="http://del.icio.us/display22/tvout">http://del.icio.us/display22/tvout</a>

<h3>Tips zur Signalerzeugung, Timingfragen, Interrupts</h3>

[java]
/* Delay for the given number of microseconds.
* From D.Mellis for Arduino
* Assumes a 16 MHz clock. 
* Disables interrupts, disrupts millis() if used frequently
* note: digitalWrite() executes in 2.5 microseconds
*/
void delayMicroseconds(unsigned int us) {
    // calling avrlib's delay_us() function with low values (e.g. 1 or
    // 2 microseconds) gives delays longer than desired.
    //delay_us(us);
[/java]]]></description>
			<content:encoded><![CDATA[<h3>Wie sollte ein FBAS Signal aussehen?</h3>

<p><a href="http://de.wikipedia.org/wiki/FBAS">http://de.wikipedia.org/wiki/FBAS</a></p>

<p><a href="http://del.icio.us/display22/tvout">http://del.icio.us/display22/tvout</a></p>

<h3>Tips zur Signalerzeugung, Timingfragen, Interrupts</h3>

<div class="igBar"><span id="ljava-1"><a href="#" onclick="javascript:showPlainTxt('java-1'); return false;">PLAIN TEXT</a></span></div>

<div class="syntax_hilite"><span class="langName">JAVA:</span><br /><div id="java-1">
<div class="codeHighlight" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="coMULTI">/* Delay for the given number of microseconds.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">* From D.Mellis for Arduino</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">* Assumes a 16 MHz clock. </span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">* Disables interrupts, disrupts millis() if used frequently</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">* note: digitalWrite() executes in 2.5 microseconds</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">*/</span></div></li>
<li class="li1"><div class="de1"><a href="http://processing.org/reference/void"><span class="kw5">void</span></a> delayMicroseconds<span class="br0">&#40;</span>unsigned <a href="http://processing.org/reference/int"><span class="kw5">int</span></a> us<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">// calling avrlib's delay_us() function with low values (e.g. 1 or</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// 2 microseconds) gives delays longer than desired.</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">//delay_us(us);</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">// for a one-microsecond delay, simply return.&nbsp; the overhead</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// of the function call yields a delay of approximately 1 1/8 us.</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <a href="http://processing.org/reference/if"><span class="kw1">if</span></a> <span class="br0">&#40;</span>--us == <span class="nu0">0</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <a href="http://processing.org/reference/return"><span class="kw1">return</span></a>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// the following loop takes a quarter of a microsecond (4 cycles)</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">// per iteration, so execute it four times for each microsecond of</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// delay requested.</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; us &lt;&lt;= <span class="nu0">2</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">// account for the time taken in the preceeding commands.</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; us -= <span class="nu0">2</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// disable interrupts, otherwise the timer 0 overflow interrupt that</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="co1">// tracks milliseconds will make us delay longer than we want.</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; cli<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// busy wait</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; __asm__ __volatile__ <span class="br0">&#40;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;1: sbiw %0,1&quot;</span> <span class="st0">&quot;<span class="es0">\n</span><span class="es0">\t</span>&quot;</span> <span class="co1">// 2 cycles</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;brne 1b&quot;</span> : <span class="st0">&quot;=w&quot;</span> <span class="br0">&#40;</span>us<span class="br0">&#41;</span> : <span class="st0">&quot;0&quot;</span> <span class="br0">&#40;</span>us<span class="br0">&#41;</span> <span class="co1">// 2 cycles</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// reenable interrupts.</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; sei<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></div>
</div></div>

<p><br /></p>

<p><cite>das Problem beim Timing von Interupts beim AVR ist, das der beim Interupt gerade laufende Befehl noch zu Ende abgearbeitet wird. Das kann dann 1, 2 oder 3 Takte dauern. Das habe ich in einem Video-Projekt mal folgendermassen gelöst.</cite>
-- <a href="http://www.mikrocontroller.net/topic/27194#206416">http://www.mikrocontroller.net/topic/27194#206416</a></p>

<p><cite>@willi: Dein Ansatz ist schon fast perfekt, die Unsauberkeit mit den verdrehten Rücksprungadressen hast du ja selbst erwähnt. Ich habe das Problem dadurch gelöst dass ich den avr kurz (ca. 1us) vor dem nächsten Zeilenbeginn schlafen schicke, damit kommt der nächste Int. bzw. Syncbeginn mit einer konstanten Verzögerung.</cite>
-- <a href="http://www.mikrocontroller.net/topic/27194#206419">http://www.mikrocontroller.net/topic/27194#206419</a></p>

<p><cite>Die Vor, Haup und Nachtrabanten sind ja nun sequenziell immer gleich bei der V-Sync. Diese müssen nun auch immer genau 1024 takte ergeben. das sieht so aus:</cite>
-- <a href="http://www.4freeboard.to/board/thread.php?postid=165811#post165811">http://www.4freeboard.to/board/thread.php?postid=165811#post165811</a>
-- <a href="http://www.4freeboard.to/board/thread.php?postid=165845#post165845">http://www.4freeboard.to/board/thread.php?postid=165845#post165845</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.display22.de/werkzeuge/wiring/fbas-pal-composite-signalerzeugung/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
