.Net Micro Framework-最初のステップ

ティーザーは保守的に、しかし積極的に知覚されたので、続けましょう。

こんにちは、Habr!

そのため、ボックスは開梱され、ボタンは突かれ、起動時にデバッグ出力にプッシュされました。 かっこいい! 鉄片が機能します。

一方、彼女は有用なことを何もしていません。


始めるには何が必要ですか?




IDE、SDK、およびハードウェアのプライマリファームウェアのインストールについては説明しません。 最初の2つでは、すべてが明確になっていますが、ファームウェアは特定の問題であり、製造元によって十分に説明されています。

培地は準備されていますか? 行こう!



免責事項:私の手で初めての組み込みプラットフォーム。 開発経験はありません( hackaday.comを表示してwasm.ruを読むだけでは十分ではないと思います)。 あいまいなアイデアしかありません。 しかし、C#で書いた経験があります。 あなたが重度のAsm / Cエンベダーであり、 この話があなたにとって厳しい労働日であるなら、私の記事はおそらくあなたのためではありません。

そして今のところ、私は短いHello Worldを短く書きます!

スタジオを開き、ChipworkX Moduleの新しいプロジェクトを選択します。
mainメソッドで元気に書きます
  Console.WriteLine( "Hello、World!"); 


そして、私は得る
 エラー1名前 'Console'は現在のコンテキストに存在しません 

行きましょう。 ここのコンソールは臭いがしません。 私たちは他の方法で行きます。
-画面はありますか?
-あります!
-それで絵を描きます。

短い検索の後、次の構造が表示されます。
パブリッククラスプログラム
 {
     private static readonly int LCDHeight = SystemMetrics.ScreenHeight;
     private static readonly int LCDWidth = SystemMetrics.ScreenWidth;

     private static Bitmap LCD =新しいビットマップ(LCDWidth、LCDHeight);

     public static void Main()
     {
        ビットマップhabr = Resources.GetBitmap(Resources.BitmapResources.Habr);

         LCD.Clear();
         LCD.DrawRectangle(Colors.White、0、0、0、LCDWidth、LCDHeight、0、0、Colors.White、0、0、Colors.White、0、0、ushort.MaxValue);
         LCD.DrawImage((LCDWidth-habr.Width)/ 2、(LCDHeight-habr.Height)/ 2、habr、0、0、habr.Width、habr.Height);
         LCD.Flush();
         Thread.Sleep(Timeout.Infinite);
     }
 }


Habrリソースは、通常の* .resxのビットマップです

打ち上げて見る。 うまくいきます、絵が描きます、こんにちは、ハブル。

しかし、よりインタラクティブになります。

-ボタンはありますか?
-あります!
-中断をインターセプトします。

ドキュメントを調べた後、InterruptPortクラスが発見されました。これにより、GPIOピンに割り込みハンドラーを掛けることができます。

ちょっとしたマナ喫煙と、中央のボタンを押すとペンを上げ下げする操作を実行し、同時にLED(OutputPortクラス)でウィンクする操作を実行するコードが記述され、それに応じてカーソルボタンが画面上でペンを移動します。

コード: pastebin.com/AMF2Th2g

そして結果:)

ハブラペイント

わずか3時間で3時間かかりました。 これまでのところ、結果は満足です...先日、私は何か他のものを書きます。

PS

ハーネスには加速度計があるため、実験を続けるには、I 2 Cに準拠したセンサーと通信し、画面上に転がるボールを描画します。

PPS
参照:

NETMF入門ガイド
MicroFrameworkProject.com

Source: https://habr.com/ru/post/J101749/


All Articles