<?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>DIY DMCole &#187; Atmel</title>
	<atom:link href="http://www.dmcole.net/index.php/tag/atmel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dmcole.net</link>
	<description>Circuits, microcontrollers, LEDs, do-it-yourself style</description>
	<lastBuildDate>Wed, 09 Jun 2010 23:16:22 +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>More on the matrix/array</title>
		<link>http://www.dmcole.net/index.php/more-on-the-matrixarray/</link>
		<comments>http://www.dmcole.net/index.php/more-on-the-matrixarray/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 22:23:15 +0000</pubDate>
		<dc:creator>dmcole</dc:creator>
				<category><![CDATA[Musing]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[DMX-512]]></category>
		<category><![CDATA[LED]]></category>

		<guid isPermaLink="false">http://www.dmcole.net/?p=248</guid>
		<description><![CDATA[It&#8217;s been a few months since I last posted here &#8230; I don&#8217;t think there are any constant visitors who&#8217;ve been bummed out about the lack of activity, but I apologize nonetheless.
Since we last spoke I threw the LED matrix project out to the Do It Yourself Christmas community to see if I could get [...]]]></description>
			<content:encoded><![CDATA[<p><strong>It&rsquo;s</strong> been a few months since I last posted here &#8230; I don&rsquo;t think there are any constant visitors who&rsquo;ve been bummed out about the lack of activity, but I apologize nonetheless.</p>
<p>Since we last spoke I threw the LED matrix project out to the <a href="http://www.doityourselfchristmas.com/forums/" target="_blank">Do It Yourself Christmas</a> community to see if I could get some others interested and willing to help.  I got a couple of bites and have spent the last few months working with them, trying to further my goal of building an LED star that has 60 lamps, three colors and can be driven by DMX-512. You can see the <a href="http://doityourselfchristmas.com/forums/showthread.php?t=10302" target="_blank">discussions</a>.</p>
<p>The current circuit is based on the Atmel ATTiny2313, two 74HC595 shift registers and a ULN2803 Darlington array to handle sink current (plus an RS485 chip to handle DMX signals and associated resistors and capacitors).</p>
<p>Unfortunately, I haven&rsquo;t been able to make as much progress as I would have liked. I have a breadboarded circuit that works, but unfortunately, it works backwards. That is, when the DMX application sends a signal to an LED to light, it is dark; when there is a DMX signal but sent to have the LED dark, it lights.</p>
<p>Big brains in the DIYC community haven&rsquo;t been able to figure this one out, so for now I remain mired in my own ignorance.</p>
<p>That&rsquo;s all I know right now. Stay tuned for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dmcole.net/index.php/more-on-the-matrixarray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s an LED matrix!</title>
		<link>http://www.dmcole.net/index.php/its-an-led-matrix/</link>
		<comments>http://www.dmcole.net/index.php/its-an-led-matrix/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 01:55:49 +0000</pubDate>
		<dc:creator>dmcole</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ATTiny13]]></category>
		<category><![CDATA[DMX-512]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[McCad]]></category>

		<guid isPermaLink="false">http://www.dmcole.net/?p=172</guid>
		<description><![CDATA[So, I&#8217;m going to use Henne&#8217;s transceiver for an LED matrix. You coulda probably guessed, if you&#8217;d thought about it for a minute or three.
Anyway, I fell back on my &#8211; ahem &#8211; process: first, draw the circuit in Adobe Illustrator and then build it on a breadboard.
(I have been asked in the past why [...]]]></description>
			<content:encoded><![CDATA[<p><b>So,</b> I&rsquo;m going to use Henne&rsquo;s <a href="index.php/hennes-dmx-transceiver/" target="_new">transceiver</a> for an LED matrix. You coulda probably guessed, if you&rsquo;d thought about it for a minute or three.</p>
<div id="attachment_191" class="wp-caption alignright" style="width: 310px"><a href="http://www.dmcole.net/wp-content/uploads/2009/07/Hendrik-DMX-LED-matrix-schematic-v2.pdf" target="_new"><img src="http://www.dmcole.net/wp-content/uploads/2009/07/Hendrik-DMX-LED-mtrx-schem-300x195.jpg" alt="Henne&rsquo;s DMX LED matrix schematic (click to download PDF)." title="Hendrik-DMX-LED-mtrx-schem" width="300" height="195" class="size-medium wp-image-191" /></a><p class="wp-caption-text">Henne&rsquo;s DMX LED matrix schematic (click to download PDF).</p></div>
<p>Anyway, I fell back on my &ndash; ahem &ndash; <em>process</em>: first, draw the circuit in <a href="http://www.adobe.com/products/illustrator/" target="_new">Adobe Illustrator</a> and then build it on a breadboard.</p>
<p>(I have been asked in the past why I use Illustrator and not a regular schematic-drawing application such as <a href="http://www.cadsoftusa.com/" target="_new">Eagle</a> or <a href="http://www.mccad.com/" target="_new">McCad</a>. My first line of defense is the same as when I&#8217;m asked why I use <a href="http://www.adobe.com/products/indesign/" target="_new">InDesign</a> to make slides rather than use the ubiquitous <a href="http://www.microsoft.com/mac/products/PowerPoint2008/default.mspx#/themes_templates/" target="_new">Microsoft PowerPoint</a>: I use the Adobe Creative Suite on a daily basis and am something of an expert with its components. I can create a schematic [or slideshow] faster with the Adobe product than with anything else. Secondarily, I think I get a much better, graphically pleasing, schematic from Illustrator.)</p>
<p>So, there are some changes in this version of the schematic that aren&rsquo;t electronically or function-driven: instead of the 10-position DIP switch, I have substituted a 2&#215;10 header. This will save only a few cents (around 50) on the bill of materials, but will save some space on the board as well.</p>
<p>These switches signal to the ATMega8515 the DMX start channel to use. They&rsquo;re set infrequently (probably only once a holiday season, maybe less) and the user (probably someone as unsophisticated as me) needs only to shunt the correct pairs depending upon the channel. How do you calculate the DMX start address? Just Google &ldquo;<a href="http://www.google.com/search?q=dmx+dip+switch+calculator" target="_new">DMX DIP switch calculator</a>&rdquo;.</p>
<p>Also, I eliminated a couple of superfluous components, including the potentiometer, its associated resistor and the J3, J4 and J5 headers (which are now direct connections to the shift register (74HC164).</p>
<p>The additional set of goodies that makes this an LED matrix circuit are the <a href="http://www.allaboutcircuits.com/vol_4/chpt_12/1.html" target="_new">shift register</a>, serial-in, parallel-out chip (U3 &ndash; the 74HC164), which in turn drives the <a href="http://focus.ti.com/docs/prod/folders/print/uln2803a.html" target="_new">sink chip</a> (U4 &ndash; the ULN2803A). The shift-register gets us six extra wires (taking the two serial ouput lines and turning them into eight), while the sink-chip (a Darlington transistor array) allows the current load to increase to 500mA per line.</p>
<p>Otherwise, this is the exact same circuit as the <a href="index.php/hennes-dmx-transceiver/" target="_new">transceiver</a>.</p>
<p>Because I&rsquo;m overtly ambitious, I&rsquo;m going to redraw this circuit one more time &ndash; in McCad PCB-ST, so that I can make <a href="http://en.wikipedia.org/wiki/Gerber_File" target="_new">Gerber files</a> and then, onward, to a printed circuit board.</p>
<p>Woo-hoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dmcole.net/index.php/its-an-led-matrix/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Henne&#8217;s DMX transceiver</title>
		<link>http://www.dmcole.net/index.php/hennes-dmx-transceiver/</link>
		<comments>http://www.dmcole.net/index.php/hennes-dmx-transceiver/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 01:56:11 +0000</pubDate>
		<dc:creator>dmcole</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[ATMega8515]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[AVRDude]]></category>
		<category><![CDATA[AVRFuses]]></category>
		<category><![CDATA[DMX-512]]></category>

		<guid isPermaLink="false">http://www.dmcole.net/?p=151</guid>
		<description><![CDATA[If you’ve visited my automated Christmas lights page, the letters DMX won’t be unfamiliar to you. For those too lazy to click, it’s an electronic lighting protocol. Two wire. Used extensively in stage shows. And, in recent months, adopted by the DIY Christmas lighting community.
So, I&#8217;m working on an idea (I’ll post more when I [...]]]></description>
			<content:encoded><![CDATA[<p><strong>If</strong> you’ve visited my automated Christmas lights <a href="http://www.pacificalights.info/" target="_new">page</a>, the letters <a href="http://en.wikipedia.org/wiki/DMX512-A" target="_new">DMX</a> won’t be unfamiliar to you. For those too lazy to click, it’s an electronic lighting protocol. Two wire. Used extensively in stage shows. And, in recent months, adopted by the DIY Christmas lighting community.</p>
<div id="attachment_166" class="wp-caption alignright" style="width: 310px"><a href="http://www.dmcole.net/wp-content/uploads/2009/06/Hendrik-DMX-transceiver-schematic.pdf" target="_new"><img class="size-medium wp-image-166" title="Hendrik-DMX-xceiver-schem" src="http://www.dmcole.net/wp-content/uploads/2009/06/Hendrik-DMX-xceiver-schem-300x184.jpg" alt="Henne’s DMX transceiver schematic (click to download PDF)." width="300" height="184" /></a><p class="wp-caption-text">Henne’s DMX transceiver schematic (click to download PDF).</p></div>
<p>So, I&#8217;m working on an idea (I’ll post more when I get closer to the finish) that I want to add to my Christmas lights show, and it therefore needs to talk DMX. Numerous previous postings here will tell you that would mean I&#8217;d need to do this on an Atmel chip. Though there are a lot of DMX projects done on Microchips (PICs), fewer have been done on Atmels. And pretty much everyone who has done DMX on the Atmel has based some or all of their work on that of <a href="http://www.hoelscher-hi.de/hendrik/english/ressources.htm" target="_new">Hendrik Hölscher</a>.</p>
<p>Fortunately for those monolinguists among us, Hendrik – who goes by “Henne” – writes in both German and English. He&#8217;s also moderately active on one of the Christmas lights forums.</p>
<p>My initial plans were to write my own code to get my idea off the ground; a few months(!) of fiddling around and I was never even able to pull off my main effect, no less receiving DMX.</p>
<p>During that fiddling, I ran across a web site in Germany that sold a bare printed circuit board for Henne&#8217;s basic DMX transceiver. It took PayPal, so I bought a couple of boards. And the next time I dropped by <a href="http://www.jameco.com/" target="_new">Jameco</a>, I took along the bill of materials for the transceiver and bought the parts.</p>
<p>Then life intervened. It wasn&#8217;t until earlier this month that I got back on track on this project, which started out with a redrawing of Henne’s schematic. I then wanted to build the circuit on a breadboard. The design requires an external crystal and while I knew of the potential to “brick” the 8515, I didn’t think said bricking would be quite so easy.</p>
<p>So easy, in fact, that I bricked two.</p>
<p>The problem (for me, anyway), was a lack of understanding of terminology. While I&#8217;d started out using <a href="http://www.bsdhome.com/avrdude/" target="_new">AVRDude</a> on the command line, I somewhere along the line stumbled across <a href="http://www.vonnieda.org/software/avrfuses/" target="_new">AVRFuses</a>, a Mac application that puts a graphical user interface on top of AVRDude.</p>
<p>Anway, AVRFuses uses the same terminology as <a href="http://www.engbedded.com/fusecalc/" target="_new">FuseCalc</a> and I find (found) both of them to be opaque. Suffice it to say, the 8MHz crystal used in Henne’s design is designated as &#8220;Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 4 ms; [CSEL=1101 SUT=10].&#8221;</p>
<p>So, another trip to Jameco and this new-found knowledge (thanks <a href="http://www.ladyada.net/forums/viewtopic.php?f=24&amp;t=11596" target="_new">Limor</a>) and I had a functioning 8515.</p>
<p>But not a functioning circuit. The version displayed here clearly shows a ground on Pin 5 of U2, the 75176B, as well as five-volt power to Pin 8. Well, apparently some schematic-drawing programs don&#8217;t indicate such niceties and the drawing I was basing my work off of didn’t. So I sat here for almost two days, banging my head against the wall trying to figure out why the breadboarded circuit didn’t work. I wonder if I would have ever figured it out without help.</p>
<p>As Henne says, this is a simple circuit, with virtually all the heavy lifting happening in the software of the 8515. Suffice to say, U2 (the 75176B), an <a href="http://en.wikipedia.org/wiki/EIA-485" target="_new">RS485</a> transceiver, receives the DMX signal and turns it into something the UART on the 8515 can read. The 8515, in turn, processes the signal and outputs it onto pins 32-39 (unless one of the many options is chosen, in which case signals can come out of the J4 Spare port as well).</p>
<p>Henne doesn&rsquo;t explain why he chose the 8515 &ndash; it&rsquo;s a big chip, taking up quite a bit of board real estate, and it&rsquo;s not inexpensive (I&rsquo;m too lazy to look it up, but I&rsquo;m pretty sure that last winter when I bought the first set of these chips at Jameco, they were $4.50+/-; last week&rsquo;s purchase they had gone down to $3.50. I just looked them up and at Mouser and Digi-Key, they&rsquo;re $5.27). But for an eight-channel project (potentially 16-channel) that has DIP-switch control of the DMX start channel (another 10 pins), this really can&rsquo;t be done in less than a 40-pin chip.</p>
<p>(Oh, and a note on the licensing: I had included my standard Creative Commons, Noncommercial Share-Alike license on the schematic and Henne asked that I remove it. In deference to the original author, I did. None of his schematics have licenses on them and he wrote, &#8220;You cannot license the schematic under cc since its based on my schematic / hw where unauthorized commercial production is prohibited. [This is necessary if some companies produce the boards in larger quantities...] I don&#8217;t want anyone to get into trouble&#8230;&#8221; Now you know what I know.)</p>
<p>Using Henne&rsquo;s &#8220;board.hex&#8221; testing software, the red LED flashes a steady beat once power is applied; turning on DIP 2 (or, as in my case, shorting Pin 22 to ground), the green LED should light if the crystal fuses are set correctly.</p>
<p>Anyway, I finally got the circuit working on Saturday. Now, to add a couple of sub-circuits and get this idea – which I’ve been working since December 2007 – afloat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dmcole.net/index.php/hennes-dmx-transceiver/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Taking the ATMega8for an introductory spin</title>
		<link>http://www.dmcole.net/index.php/taking-the-atmega8-for-an-introductory-spin/</link>
		<comments>http://www.dmcole.net/index.php/taking-the-atmega8-for-an-introductory-spin/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 21:23:53 +0000</pubDate>
		<dc:creator>dmcole</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[ATMega8]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PICAXE]]></category>
		<category><![CDATA[USBtinyISP]]></category>

		<guid isPermaLink="false">http://www.dmcole.net/?p=18</guid>
		<description><![CDATA[In 2007 I played around with the PICAXE, a microprocessor sold by a non-profit in the United Kingdom that comes loaded with a BASIC-like interpreter (you can read more about it here and here). I built some lighthouse beacons and a railroad crossing light using the device. It had one drawback: I had to write [...]]]></description>
			<content:encoded><![CDATA[<p>In 2007 I played around with the PICAXE, a microprocessor sold by a non-profit in the United Kingdom that comes loaded with a BASIC-like interpreter (you can read more about it <a href="http://www.rev-ed.co.uk/picaxe/" target="_blank">here</a> and <a href="http://www.phanderson.com/picaxe/picaxe.html" target="_blank">here</a>). I built some lighthouse beacons and a railroad crossing light using the device. It had one drawback: I had to write the code and program the chip using, sigh, Windows.<br />
<div id="attachment_48" class="wp-caption alignright" style="width: 310px"><a href="http://www.dmcole.net/wp-content/uploads/2009/03/atmega8-sample-schematic.pdf" target="_new"><img src="http://www.dmcole.net/wp-content/uploads/2009/03/atmega8-sample-schematic-300x193.jpg" alt="Sample schematic to connect ATMega8 to 6-pin ISP (click to download PDF)" title="atmega8-sample-schematic" width="300" height="193" class="size-medium wp-image-48"  border="0" /></a><p class="wp-caption-text">Sample schematic to connect ATMega8 to 6-pin ISP (click to download PDF)</p></div></p>
<p>In 2008 I learned a little about Microchip’s PIC series of microprocessors because that was the favored chip by most of the developers in the DIY Christmas lighting world. Though I didn&#8217;t actually program PICs, I did learn how to burn HEX code into them using an ADM programmer. These too, had a drawback: you had to write the code and program the chip using, ugh, Windows.</p>
<p>Along the way, though, I heard about the AVR series of chips from <a href="http://www.atmel.com/" target="_blank">Atmel Corp.</a>, which had a distinct advantage over PICAXEn and PICs: there was a small community of people who used Macintoshes to make them go. There was a full tool-chain for programming in C (a language I had no experience in) and there were USB devices that allowed for burning the code. Well, hello, sweetheart.</p>
<p>So, somewhere along the line in 2008 I bought myself an <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;products_id=46&amp;sessid=40d5826a4b87847bc855d0f28dcbee74" target="_blank">USBtinyISP</a> programmer from Adafruit Industries; today&#8217;s price in March 2009 is $22 but I think I paid a little less for it than that. I didn&#8217;t build it after I got it; the board and components sat unworking for a couple of months while I finished the Christmas lights.</p>
<p>But once the lights were up and running, I decided to get moving on learning to program an AVR in C (maybe someday I&#8217;ll tackle assembly code, but I&#8217;m really a path-of-least-resistance guy). My first step was to set up a breadboard and get a chip in a position to program.</p>
<p>And herein I ran into a small problem: I had bought a bunch of ATMega8s to learn on and lo and behold, I couldn&#8217;t find how to connect a USBtinyISP to a Mega8.</p>
<p>Through trial-and-error and posting questions on Adafruit&#8217;s <a href="http://www.ladyada.net/forums/" target="_new">forums</a>, I worked out a method to hook them together, but thought it would be worthwhile to post here not only the method, but draw up a schematic as well.</p>
<p>I should point out that for my initial set up I used a six-pin header that I soldered to six wires, which I then plugged into the breadboard; today I would advocate buying the header adapter sold by <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8508" target="_blank">Sparkfun Electronics</a>. Though initially designed to be an interface between 10-pin and six-pin headers, it has been adapted to allow you to put a row of header pins into one side that can plug directly into a breadboard. They&#8217;re only a buck, so I was forced to buy some other stuff to justify the postage <img src='http://www.dmcole.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8230;</p>
<p>The code that I wrote for the ATMega8 is pretty rudimentary (it flashes a single LED) but I reproduce it here for full disclosure.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p18code2'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p182"><td class="code" id="p18code2"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Name: main.c
 * Author: David M. Cole
 * License: 2008-2009 Creative Commons Attribution-Noncommercial-Share Alike 3.0 U.S.
 * Target: ATMega8
 * Compiler: AVR-GCC
 */</span>
&nbsp;
<span style="color: #339933;">#include &lt;avr/io.h&gt;									/* A file that defines inputs and outputs */</span>
&nbsp;
<span style="color: #993333;">void</span> delay_ms<span style="color: #009900;">&#40;</span>uint16_t x<span style="color: #009900;">&#41;</span>								<span style="color: #808080; font-style: italic;">/* Declare substitute delay function, bring in variable x */</span>
	<span style="color: #009900;">&#123;</span>
		uint8_t y<span style="color: #339933;">,</span> z<span style="color: #339933;">;</span>								<span style="color: #808080; font-style: italic;">/* Declare the variables y, z */</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">;</span> x <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">0</span> <span style="color: #339933;">;</span> x<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>							<span style="color: #808080; font-style: italic;">/* Loop while x is less than zero; decrement */</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> y <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span> <span style="color: #339933;">;</span> y <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">90</span> <span style="color: #339933;">;</span> y<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>				<span style="color: #808080; font-style: italic;">/* Loop while y is less than 90; increment */</span>
					<span style="color: #009900;">&#123;</span>
						<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> z <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span> <span style="color: #339933;">;</span> z <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">6</span> <span style="color: #339933;">;</span> z<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>		<span style="color: #808080; font-style: italic;">/* Loop while z is less than six */</span>
							<span style="color: #009900;">&#123;</span>
								asm <span style="color: #993333;">volatile</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;nop&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #808080; font-style: italic;">/* Inline assembler code: no operation performed; i.e.: do nothing */</span>
							<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>										<span style="color: #808080; font-style: italic;">/* Main function; every program has a main */</span>
	<span style="color: #009900;">&#123;</span>
		DDRD <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">;</span>								<span style="color: #808080; font-style: italic;">/* make Pin 6 (PortD4) an output */</span>
			<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">;;</span><span style="color: #009900;">&#41;</span>								<span style="color: #808080; font-style: italic;">/* Loop like forever */</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #993333;">char</span> i<span style="color: #339933;">;</span>						<span style="color: #808080; font-style: italic;">/* Define the variable i */</span>
					<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>				<span style="color: #808080; font-style: italic;">/* Loop while i is less than 10 */</span>
						<span style="color: #009900;">&#123;</span>
							delay_ms<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>			<span style="color: #808080; font-style: italic;">/* Hang on for a moment */</span>
						<span style="color: #009900;">&#125;</span>
					PORTD <span style="color: #339933;">^=</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">;</span>				<span style="color: #808080; font-style: italic;">/* toggle the LED; if it's off, turn it on */</span>
				<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>								<span style="color: #808080; font-style: italic;">/* never reached */</span>
	<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.dmcole.net/index.php/taking-the-atmega8-for-an-introductory-spin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
