.Net Micro Framework研究—带IO的模拟器

简介:

原打算用MF开发一个类似Windows桌面的程序(因为发现MF居然支持渐进色,可以绘很炫的界面),由于目前的模拟器仅支持5个键,所以在做类Windows开始菜单的时候犯了难,4个方向键和一个OK键,没有一个适合做开始菜单键的。记得Digi的模拟器至少支持9个键,既然他能做,理论上我也可以。一阵研究后还真有了成效,在五个键的基础上我又添加了两个键,一个是菜单键(对应PC键盘可以是Windows键或空格键),一个是返回键(对应PC键盘上的ESC键),也就是说我原来做得模拟器上的那两个键终于起作用了。
添加完这两个键后,突然灵机一动,以前我苦苦不能做的IO模拟功能,应该也可以做了,做Windows界面的心没有了,转为一心研究IO模拟器了,功夫不负有心人,几个小时后便大功能告成了。把以前Digi开发的IO测试程序稍加调整一下就可以试了(需要重新设置一下Pin)。运行界面如下:

 

测试代码如下:


 

 
  1. public class DigiTest  
  2. {  
  3.     public static void Main()  
  4.     {  
  5.         //Digi  
  6.         //Cpu.Pin[] pin = new Cpu.Pin[5] { (Cpu.Pin)0, (Cpu.Pin)1, (Cpu.Pin)2, (Cpu.Pin)5, (Cpu.Pin)6 };  
  7.         OutputPort[] output = new OutputPort[8];  
  8.         InputPort[] input = new InputPort[8];   
  9.           
  10.         //叶帆模拟器GPIO的pin定义  
  11.         Cpu.Pin[] pin_I = new Cpu.Pin[8] { (Cpu.Pin)10, (Cpu.Pin)11, (Cpu.Pin)12, (Cpu.Pin)13, (Cpu.Pin)14,(Cpu.Pin)15, (Cpu.Pin)16, (Cpu.Pin)17 };  
  12.         Cpu.Pin[] pin_Q = new Cpu.Pin[8] { (Cpu.Pin)20, (Cpu.Pin)21, (Cpu.Pin)22, (Cpu.Pin)23, (Cpu.Pin)24, (Cpu.Pin)25, (Cpu.Pin)26, (Cpu.Pin)27 };  
  13.         for (int i = 0; i < 8; i++)  
  14.         {  
  15.             input[i] = new InputPort(pin_I[i], false, Port.ResistorMode.PullDown);  
  16.             output[i] = new OutputPort(pin_Q[i], false);  
  17.         }  
  18.         int intNum = 0;  
  19.         while (true)  
  20.         {  
  21.             output[intNum].Write(!output[intNum].Read());  
  22.             Debug.Print(input[0].Read().ToString() + " " + input[1].Read().ToString() + " " + input[2].Read().ToString() + " " + input[3].Read().ToString() + " " + input[4].Read().ToString()+ " " + input[5].Read().ToString() + " " + input[6].Read().ToString() + " " + input[7].Read().ToString());  
  23.             Thread.Sleep(1000);  
  24.             if (++intNum > 7) intNum = 0;  
  25.         }  
  26.     }  
  27. }  

      运行后,效果果然不错,改变输入,则调试信息中出现对应的变化(通过这个也深刻理解了new InputPort(pin_I[i], false, Port.ResistorMode.PullDown)中的上拉和下拉的含义),同时程序中改变输出,则对应的输出灯也在同步亮灭。
细心的读者会发现,我的模拟器可以让InputPort和OutputPort的实例同时运行,原因就是他们的Pin值不同,而Digi的I/O共用了0、1、2、5、6(天知道他们为什么要这样?)。
以后在测试相关的IO应用,不必接上硬件了,直接用模拟器就可以了。不知道模拟器是否支持串口模拟(映射PC机物理串口),以后有时间研究一下。不过我想TCP/IP一定会有问题,一是MF目前的TCP/IP都不完善,第二模拟器目前也不可能支持虚拟网卡(类似PPC模拟器或虚拟机)。
目前模拟器支持8路数字量入,8路数字量出,模拟量以后有机会在加入。
[注:目前微软官方的模拟器仅支持LCD和5个按键功能,其它的都不支持]

 










本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/322942,如需转载请自行联系原作者

相关文章
|
Windows
.Net Micro Framework研究—带IO的模拟器
目前模拟器支持8路数字量入,8路数字量出,模拟量以后有机会在加入
474 0
.Net Micro Framework研究—IO读写
试验平台:Digi MF开发板
439 0
.Net Micro Framework研究—Digi开发板初探
写的比较基础全面,由于我们北航的研发团队先研究了Digi的开发板,所以直到今天Digi开发板才到我的手上,我的《Micro Framework研究》系列文章以后也会陆续推出
706 0
.Net Micro Framework研究—带I2C总线的模拟器
I2C以前没有怎么接触过,所以做它的模拟功能,只能靠着感觉走,有不妥之处,还望方家指正。做出了spi相关的模拟功能,做I2C相对也就不难了,只不过用户操作I2C总线读写数据的时候要稍微麻烦一点。
621 0
.Net Micro Framework研究—串口操作
试验平台:Digi MF开发板,Digi提供的示例中包含了串口的示例程序
559 0
.Net Micro Framework研究—应用实例
在前几篇关于.Net Micro Framework的研究文章中,我对它的绘图功能实不敢恭维,不过微软的MF开发人员很聪明,对位图方面的功能实现的就比较完善,这样做起图形应用来就不至于捉襟见肘了。前段时间用.Net Compact Framework实现了一个奥运场馆查询
527 0
.Net Micro Framework研究—带AD的模拟器
不知道为什么,很简单的代码他们总写的很复杂,让你很难看懂,幸好有以前的相关的经验做底子,用了大半天的时间模入模出都搞定了。
551 0
.Net Micro Framework研究—模拟器改造
由于Digi提供的开发板没有LCD显示屏,所以有关绘图方面的操作,只好在模拟器上进行了。
542 0
|
Windows
.Net Micro Framework研究—模拟器直接运行MF程序
既然VS2005能启动运行,我想我们也可以,唯一不同的是模拟器加载的参数不同而已
700 0
.NET Micro Framework 用户程序升级说明
【STM32 .Net MF开发板学习-26】以前的文章示例都是采用VS2008开发的,所以示例要想在新的.NET Micro Framework V4.1开发板上运行,必须用VS2010转换后才可以。
627 0