.Net Micro Framework — Первые Шаги

Тизер был воспринят консервативно, но положительно, так что продолжим.



.
</p><p>
Net Micro Framework — первые шаги

Итак, коробка была распакована, кнопки тыкали и тыкали в отладочный вывод при запуске.

Прохладный! Железка работает. Хотя, с другой стороны, ничего полезного это не делает.



Что нам нужно для начала?

Visual Studio 2010 Express (выпуск C#) Microsoft .

Net Micro Framework 4.1 SDK GHI Electronics SDK (это, конечно, только для этого семейства железа) Я не буду описывать установку IDE, SDK и первоначальную прошивку железа, потому что.

с первыми двумя все понятно, но прошивка - дело конкретное и хорошо описано производителем.



Готова ли среда? Идти!

Отказ от ответственности: я впервые держу в руках встроенную платформу.

У меня нет опыта разработки (не думаю, что просмотр hackaday.com и чтение www.wasm.ru достаточно).

Есть только смутные идеи.

Но у меня есть опыт написания на C#.

Если вы серьезный специалист по внедрению Asm/C и для вас эта история - суровая трудовая жизнь, то моя статья, вероятно, не для вас.

А пока я напишу небольшой Hello World! Я открываю студию и выбираю новый проект для модуля ChipworkX. Я весело пишу в основном методе

 Console.WriteLine("Hello, World!");
и тогда я понимаю
 Error 1 The name 'Console' does not exist in the current context
?, поехали.

Консолью здесь не пахнет. Мы пойдём другим путём.

— «Кран естьЭ» - Есть! - Вот он и будет рисовать картинки.

После недолгих поисков появляется следующая конструкция:

 
 public class Program
 {
     private static readonly int LCDHeight = SystemMetrics.ScreenHeight;
     private static readonly int LCDWidth = SystemMetrics.ScreenWidth;
 
     private static Bitmap LCD = new Bitmap(LCDWidth, LCDHeight);
 
     public static void Main()
     {
         Bitmap 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);
     }
 }
 
Ресурс Хабра представляет собой растровое изображение, расположенное в обычном *.

resx Запускаю и вижу.

Работает, рисует картинку, привет Хабру.

Но нам хотелось бы быть более интерактивными.

— Кнопки есть? - Есть! - Мы перехватим прерывания.

Изучив документацию, я обнаружил класс InterruptPort, который позволяет прикрепить обработчик прерываний к контактам GPIO. Немного покурив маны, и был написан код, который при нажатии на центральную кнопку выполняет операцию подъема и опускания пера, при этом мигая светодиодом (класс OutputPort), а курсорные кнопки перемещают перо по экран соответственно.

Код: Pastebin.com/AMF2Th2g И результат :)

.
</p><p>
Net Micro Framework — первые шаги

Прошло чуть больше 3 часов.

Пока результат удовлетворительный.

На днях еще что-нибудь напишу.

P.S. На обвязке имеется акселерометр, поэтому продолжение эксперимента будет заключаться в общении с датчиком через I. 2 C и рисуем катящийся шарик на экране :) П.

П.

С.

Литература: Руководство для начинающих по NETMF MicroFrameworkProject.com Теги: #.

net micro framework #.

net micro framework 4.1 #chipworkx #.

NET

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.