﻿<?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>ねっとでいいの for all netduino users &#187; .NET MF</title>
	<atom:link href="http://tinyjoker.net/netduino/t/net-mf/feed/" rel="self" type="application/rss+xml" />
	<link>http://tinyjoker.net/netduino</link>
	<description>Netduino と .NET Micro Framework に関する情報、Tips、ライブラリなど</description>
	<lastBuildDate>Thu, 19 Jul 2012 06:28:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>時間関連のユーティリティメソッドまとめ</title>
		<link>http://tinyjoker.net/netduino/common/time-util/</link>
		<comments>http://tinyjoker.net/netduino/common/time-util/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 06:32:39 +0000</pubDate>
		<dc:creator>kyamada</dc:creator>
				<category><![CDATA[Netduino]]></category>
		<category><![CDATA[.NET MF]]></category>
		<category><![CDATA[日付・時間]]></category>

		<guid isPermaLink="false">http://tinyjoker.net/netduino/?p=84</guid>
		<description><![CDATA[Netduinoの場合、マイコンという性質上、普通の.NETプログラムに比べて、時間に関連したコードはかなり多い。が、意外にも時間にまつわるメソッドたちは少ない。ということで、毎回それなりに同じようなユーティリティメソッドを書くわけだが、それも煩雑なので、1つのクラスにまとめた。 ソースコード このクラスは発展途上なので、たぶんメソッドが増えていきます。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263/// &#60;summary&#62; /// 時間に関するユーティリティクラス /// &#60;/summary&#62; public static class TimeUtil &#123; &#160; &#160; /// &#60;summary&#62; &#160; &#160; /// 1[ms] が何 [Ticks] に相当するかを表します。Netduino では通常 10000[Ticks/ms] です。 &#160; &#160; /// &#60;/summary&#62; &#160; &#160; public const long TICKS_PER_MILLISECOND = System.TimeSpan.TicksPerMillisecond; &#8230; <a href="http://tinyjoker.net/netduino/common/time-util/">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Netduinoの場合、マイコンという性質上、普通の.NETプログラムに比べて、時間に関連したコードはかなり多い。が、意外にも時間にまつわるメソッドたちは少ない。ということで、毎回それなりに同じようなユーティリティメソッドを書くわけだが、それも煩雑なので、1つのクラスにまとめた。<br />
<span id="more-84"></span></p>
<h3>ソースコード</h3>
<p>このクラスは発展途上なので、たぶんメソッドが増えていきます。</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
<span style="color: #008080; font-style: italic;">/// 時間に関するユーティリティクラス</span><br />
<span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">class</span> TimeUtil<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 1[ms] が何 [Ticks] に相当するかを表します。Netduino では通常 10000[Ticks/ms] です。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">const</span> <span style="color: #6666cc; font-weight: bold;">long</span> TICKS_PER_MILLISECOND <span style="color: #008000;">=</span> <span style="color: #000000;">System</span><span style="color: #008000;">.</span><span style="color: #0000FF;">TimeSpan</span><span style="color: #008000;">.</span><span style="color: #0000FF;">TicksPerMillisecond</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 現在時刻をティックカウント [ms] で取得します。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">long</span> TickMS<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> DateTime<span style="color: #008000;">.</span><span style="color: #0000FF;">Now</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Ticks</span> <span style="color: #008000;">/</span> TICKS_PER_MILLISECOND<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 指定したティックカウント [ms] からの経過時間をミリ秒で取得します。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;src&quot;&gt;&lt;/param&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;returns&gt;&lt;/returns&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">long</span> GetElapsedMS<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">long</span> src<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">long</span> current <span style="color: #008000;">=</span> TickMS<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> current <span style="color: #008000;">-</span> src<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 機械時刻をティックカウントで取得します。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;returns&gt;&lt;/returns&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">long</span> GetMachineTimeTicks<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> Microsoft<span style="color: #008000;">.</span><span style="color: #0000FF;">SPOT</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Hardware</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Utility</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetMachineTime</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Ticks</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 指定した時間 [ms] 待機します。このメソッドは Thread.Sleep より少し正確ですが、精度は環境によります。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 10[ms] 以上のタイムアウトには Thread.Sleep を使ってください。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;timeoutMilliseconds&quot;&gt;&lt;/param&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> SleepMS<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">long</span> timeoutMilliseconds<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">long</span> target <span style="color: #008000;">=</span> DateTime<span style="color: #008000;">.</span><span style="color: #0000FF;">Now</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Ticks</span> <span style="color: #008000;">+</span> timeoutMilliseconds <span style="color: #008000;">*</span> TICKS_PER_MILLISECOND<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">while</span> <span style="color: #008000;">&#40;</span>DateTime<span style="color: #008000;">.</span><span style="color: #0000FF;">Now</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Ticks</span> <span style="color: #008000;">&gt;=</span> target<span style="color: #008000;">&#41;</span> <span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 指定した時間 [us] 待機します。このメソッドは 500[us] 程度の分解能で、1[ms] 以下の待機時間が必要なときに使用します。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 2000[ms] 以上のタイムアウトには SleepMS や Thread.Sleep を使ってください。</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;microseconds&quot;&gt;&lt;/param&gt;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> SleepUS<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">double</span> microseconds<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>microseconds <span style="color: #008000;">&lt;</span> <span style="color: #FF0000;">300</span><span style="color: #008000;">&#41;</span> <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var start <span style="color: #008000;">=</span> GetMachineTimeTicks<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">3000</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; microseconds <span style="color: #008000;">*=</span> <span style="color: #FF0000;">10</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>GetMachineTimeTicks<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">-</span> start<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&lt;</span> microseconds<span style="color: #008000;">&#41;</span> <span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://tinyjoker.net/netduino/common/time-util/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>出力ポートを使う</title>
		<link>http://tinyjoker.net/netduino/common/ouputport/</link>
		<comments>http://tinyjoker.net/netduino/common/ouputport/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 03:29:32 +0000</pubDate>
		<dc:creator>kyamada</dc:creator>
				<category><![CDATA[Netduino]]></category>
		<category><![CDATA[.NET MF]]></category>
		<category><![CDATA[DIO]]></category>
		<category><![CDATA[LED]]></category>

		<guid isPermaLink="false">http://tinyjoker.net/netduino/?p=73</guid>
		<description><![CDATA[NetduinoとPlusはデジタル出力14ポート、アナログの6ポートも合わせると20ポートが利用できる。 OutputPortクラスのインスタンスを作るだけで非常に簡単に利用することができる。 Netduino上にはテスト用？のLEDが1つ実装されていて、デジタル出力ポートに接続されている。 このLEDを光らせるには、下記のようなコードを書けばよい。 OutputPort led = new OutputPort&#40;Pins.ONBOARD_LED, false&#41;; led.Write&#40;true&#41;; // 光る OutputPortの第1引数にはピンの番号を渡す（Cpu.Pinクラス）。NetduinoのポートはPinsに定義されているので、それを利用できる。Pins.ONBOARD_LEDがその名の通りボード上のLEDのポートを表している。 そのほかのピンは同様にGPIO_PIN_D0やGPIO_PIN_A0などの名前で定義されているので、これを利用する。 第2引数は初期値で、trueを指定すると、初期状態でHになる。 インスタンス化したあとはWriteメソッドにbool値を渡せば出力が切り替えられる（true=H, false=L）。]]></description>
			<content:encoded><![CDATA[<p>NetduinoとPlusはデジタル出力14ポート、アナログの6ポートも合わせると20ポートが利用できる。<br />
OutputPortクラスのインスタンスを作るだけで非常に簡単に利用することができる。</p>
<p><span id="more-73"></span></p>
<p>Netduino上にはテスト用？のLEDが1つ実装されていて、デジタル出力ポートに接続されている。<br />
このLEDを光らせるには、下記のようなコードを書けばよい。</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">OutputPort led <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> OutputPort<span style="color: #008000;">&#40;</span>Pins<span style="color: #008000;">.</span><span style="color: #0000FF;">ONBOARD_LED</span>, <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
led<span style="color: #008000;">.</span><span style="color: #0000FF;">Write</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// 光る</span></div></div>
<p>OutputPortの第1引数にはピンの番号を渡す（Cpu.Pinクラス）。NetduinoのポートはPinsに定義されているので、それを利用できる。Pins.ONBOARD_LEDがその名の通りボード上のLEDのポートを表している。<br />
そのほかのピンは同様にGPIO_PIN_D0やGPIO_PIN_A0などの名前で定義されているので、これを利用する。</p>
<p>第2引数は初期値で、trueを指定すると、初期状態でHになる。</p>
<p>インスタンス化したあとはWriteメソッドにbool値を渡せば出力が切り替えられる（true=H, false=L）。</p>
]]></content:encoded>
			<wfw:commentRss>http://tinyjoker.net/netduino/common/ouputport/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET MFでジェネリックを使うとエラー0&#215;81010009になる</title>
		<link>http://tinyjoker.net/netduino/netmf/net-mf-generic/</link>
		<comments>http://tinyjoker.net/netduino/netmf/net-mf-generic/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 08:32:46 +0000</pubDate>
		<dc:creator>kyamada</dc:creator>
				<category><![CDATA[.NET Micro Framework]]></category>
		<category><![CDATA[.NET MF]]></category>

		<guid isPermaLink="false">http://tinyjoker.net/netduino/?p=16</guid>
		<description><![CDATA[Netduinoでジェネリッククラスを使って実装していたら、いざビルドでエラー。 それもエラー0&#215;81010009 ファイルMMPとだけでて、説明もなにもない。 ググッてみたら、下記の情報がヒットした。 Visual Studio 2010 &#8211; Error 0&#215;81010009 どうやらジェネリックはサポートされていないらしい。残念。 あぁ、今書いてるコードが煩雑になるな。]]></description>
			<content:encoded><![CDATA[<p>Netduinoでジェネリッククラスを使って実装していたら、いざビルドでエラー。<br />
それもエラー0&#215;81010009 ファイルMMPとだけでて、説明もなにもない。<br />
<span id="more-16"></span></p>
<p>ググッてみたら、下記の情報がヒットした。</p>
<p><a href="http://social.msdn.microsoft.com/Forums/da-DK/csharpide/thread/20b40849-025d-4135-bc66-3302634f811b" target="_blank">Visual Studio 2010 &#8211; Error 0&#215;81010009</a></p>
<p>どうやらジェネリックはサポートされていないらしい。残念。<br />
あぁ、今書いてるコードが煩雑になるな。</p>
]]></content:encoded>
			<wfw:commentRss>http://tinyjoker.net/netduino/netmf/net-mf-generic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
