<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Software Debouncing Multiple Latching Switches With Arduino</title>
	<atom:link href="http://www.musicalgeometry.com/archives/248/feed" rel="self" type="application/rss+xml" />
	<link>http://www.musicalgeometry.com/archives/248</link>
	<description>sound, code, &#38; DIY tech</description>
	<lastBuildDate>Tue, 31 Aug 2010 18:23:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Jason Job</title>
		<link>http://www.musicalgeometry.com/archives/248/comment-page-1#comment-334</link>
		<dc:creator>Jason Job</dc:creator>
		<pubDate>Fri, 20 Nov 2009 07:46:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.musicalgeometry.com/?p=248#comment-334</guid>
		<description>I am sorry that my blog post did not meet your expectations. It was not meant to be a treatise on de-bouncing, I merely wanted to share with the world the solution that I came up with for my Arduino project and that worked for me.</description>
		<content:encoded><![CDATA[<p>I am sorry that my blog post did not meet your expectations. It was not meant to be a treatise on de-bouncing, I merely wanted to share with the world the solution that I came up with for my Arduino project and that worked for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ray Pasco</title>
		<link>http://www.musicalgeometry.com/archives/248/comment-page-1#comment-333</link>
		<dc:creator>Ray Pasco</dc:creator>
		<pubDate>Thu, 19 Nov 2009 19:08:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.musicalgeometry.com/?p=248#comment-333</guid>
		<description>All debouncing, whether done in hardware or software, is dependent on time. You have completely ignored this, which makes your software a &quot;point solution&quot; good for only this uC and its particular crystal frequency,  not even to mention the compiler you used and whatever optimization level you chose.

It&#039;s simply not portable.  The algorithm does not account for time passing.</description>
		<content:encoded><![CDATA[<p>All debouncing, whether done in hardware or software, is dependent on time. You have completely ignored this, which makes your software a &#8220;point solution&#8221; good for only this uC and its particular crystal frequency,  not even to mention the compiler you used and whatever optimization level you chose.</p>
<p>It&#8217;s simply not portable.  The algorithm does not account for time passing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.musicalgeometry.com/archives/248/comment-page-1#comment-191</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Wed, 13 May 2009 10:26:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.musicalgeometry.com/?p=248#comment-191</guid>
		<description>I had to do something similar recently. I had to watch several pins for changes in an electrically noisy environment, so I couldn&#039;t immediately believe what a pin was telling me. The solution I came up with was to make a struct containing pin number, pin value, number of votes, and number of votes required. To update the struct, I read the appropriate pin. If the reading agreed with the current value, I considered it a vote to keep the current value and decremented the number of votes, if it wasn&#039;t already 0. If the reading disagreed with the current value, I considered it a vote to toggle and incremented the number of votes. If the number of votes reached the number of votes required, I toggled the value. The electrical noise never reaches the required threshhold. Sounds pretty similar to what you did.</description>
		<content:encoded><![CDATA[<p>I had to do something similar recently. I had to watch several pins for changes in an electrically noisy environment, so I couldn&#8217;t immediately believe what a pin was telling me. The solution I came up with was to make a struct containing pin number, pin value, number of votes, and number of votes required. To update the struct, I read the appropriate pin. If the reading agreed with the current value, I considered it a vote to keep the current value and decremented the number of votes, if it wasn&#8217;t already 0. If the reading disagreed with the current value, I considered it a vote to toggle and incremented the number of votes. If the number of votes reached the number of votes required, I toggled the value. The electrical noise never reaches the required threshhold. Sounds pretty similar to what you did.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
