`
lovecontry
  • 浏览: 1095121 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

继昨天的研究,希望再接再厉把AD模入模出在模拟器上也实现出来,本以为挺简单,其实AD相关功能,与GPIO不同,在模拟器中前者通过GpioPort实现,后者通过SpiDevice实现。幸好有Temperature(温度采集)示例可以参考,否则一时真无法下手。不知道为什么,很简单的代码他们总写的很复杂,让你很难看懂,幸好有以前的相关的经验做底子,用了大半天的时间模入模出都搞定了。
下面就是模拟器中的AD输入输出的相关代码。
public class SpiADComponent : SpiDevice
{
public Int16 AW0 = 0;
public Int16 QW0 = 0;
protected override byte[] Write(byte[] data)
{
//------------
try
{
QW0 = (Int16)((data[0] << 8) + data[1]);
}
catch { }
//------------
byte[] bytes = new byte[2];
bytes[0] = (byte)(AW0 >> 8);
bytes[1] = (byte)(AW0 & 0xff);
return bytes;
}
}
注:由于受西门子PLC200的影响比较大,所以把模拟量入和出,定义为AW0和QW0,并且用两个字节的整数表示,根据需要可以进行折算。
我们把昨天的GPIO代码稍加改进,把AD部分测试代码添加进去,代码如下:
static SPI _spi;
public static void Main()
{
OutputPort[] output = new OutputPort[8];
InputPort[] input = new InputPort[8];
//叶帆模拟器GPIO的pin定义
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 };
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 };
//SPI的pin定义
_spi=new SPI(new SPI.Configuration((Cpu.Pin)30, true, 0, 0, false, false, 4000, SPI.SPI_module.SPI1));
for (int i = 0; i < 8; i++)
{
input[i] = new InputPort(pin_I[i], false, Port.ResistorMode.PullDown);
output[i] = new OutputPort(pin_Q[i], false);
}
int intNum = 0;
while (true)
{
output[intNum].Write(!output[intNum].Read());
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());
Debug.Print(ReadWriteAD((Int16)intNum).ToString() + " " + intNum.ToString());
if (++intNum > 7) intNum = 0;
Thread.Sleep(1000);
}
}
public static Int16 ReadWriteAD(Int16 value)
{
byte[] bout = new byte[2];
byte[] bin = new byte[2];
bout[0] = (byte)(value >> 8);
bout[1] = (byte)(value & 0xff);
_spi.WriteRead(bout, bin);
Int16 aw0=(Int16)((bin[0] << 8) + bin[1]);
return aw0;
}
}
运行后的界面如下:
从上图可以看出,模拟器已经和测试程序进行交互了,即可以设置AW0的值,也可以获取QW0的值。
我又把模拟器改进了一下,可以支持多种IO模拟功能,目前已经完成了GPIO和AD,I2C应该也不难,但是Serial(串口)估计有问题,因为模拟器支持库没有相关函数。

分享到:
评论

相关推荐

    Expert .NET Micro Framework

    The Microsoft .NET Micro Framework is a small and efficient .NET runtime environment used to run managed code on devices that are too small and resource constrained for Windows CE and the Compact ...

    Microsoft .net micro framework 4.0 SDK 含源码

    1. **编译器**:这个SDK内含了专门针对.NET Micro Framework优化的C#编译器,使得开发者可以使用C#语法编写代码,同时保持与标准.NET Framework的兼容性。 2. **类库**:NETMF提供了一套丰富的类库,这些类库包括...

    Microsoft .NET Micro Framework嵌入式编程(美 汤普逊)

    《Microsoft .NET Micro Framework嵌入式编程》是美国作者汤普逊所著的一本深入探讨.NET Micro Framework(简称.NET MF)技术的专业书籍。这本书旨在帮助读者理解和掌握如何在嵌入式系统中应用.NET Micro Framework...

    Microsoft .NET Micro Framework 2.5 SDK

    2. **Setup.exe**:这是安装程序,用于在开发计算机上安装.NET Micro Framework 2.5 SDK的所有必要组件,包括编译器、调试器、模拟器等,以便于开发者进行开发和测试工作。 3. **autorun.inf**:这是一个自动运行...

    《玩转.NET Micro Framework移植-基于STM32F10x处理器》源程序.rar

    《玩转.NET Micro Framework移植-基于STM32F10x处理器》这本书的主题聚焦于将.NET Micro Framework(简称.NET MF)应用到STM32F10x系列微控制器上,这是一个涉及嵌入式系统开发、C#编程以及硬件平台集成的重要技术...

    .Net Micro Framework 移植说明文档

    ### .Net Micro Framework 移植说明文档 #### 概述 .Net Micro Framework(.Net MF)是微软为小型设备设计的一个精简版的.NET框架。它不仅继承了.NET的硬件独立性,还提供了两个关键的抽象层:硬件抽象层(HAL)与...

    Expert .NET Micro Framework(德 Jens Kühner)

    11. **案例研究**:书中可能包含实际的项目案例,展示了.NET Micro Framework在不同应用场景中的应用,如智能家居设备或医疗设备。 通过阅读《Expert .NET Micro Framework》,开发者可以掌握在资源受限环境中使用...

    .net micro framework file

    .NET Micro Framework(简称.NET MF)是微软开发的一个轻量级.NET框架,主要针对嵌入式设备和物联网(IoT)应用。它提供了基础的.NET编程模型,使得开发者能够使用C#、VB.NET或其他.NET语言来编写高效能的嵌入式程序。...

    Windows Embedded从入门到精通系列课程(18):.NET Micro Framework——用模拟器零成本体验MF开发

    在这个部分,我们专注于如何通过模拟器进行零成本的.NET Micro Framework开发,让你无需硬件就能开始实践。 **.NET Micro Framework概述** .NET Micro Framework(NETMF)是微软为小型、低功耗设备开发的一个操作...

    如何顺利编译.Net Micro Framework Porting Kit 4.1

    ### 如何顺利编译.NET Micro Framework Porting Kit 4.1 #### 一、概述 .NET Micro Framework (简称 .NET MF) 是一个轻量级的 .NET 版本,专为资源受限的嵌入式设备设计。.NET Micro Framework Porting Kit 提供了...

    .Net Micro Framework模拟器

    这是我自己改造的.Net Micro Framework模拟器,比windows自带的漂亮多了。 覆盖该目录下的同名文件(路径以实际开发包安装位置为准)即可。 C:\Program Files\Microsoft .NET Micro Framework\v2.0.3036\Tools 支持...

    .NET Micro Framework Key文件部署说明

    ### .NET Micro Framework Key文件部署说明 #### 一、概述 .NET Micro Framework(.NET MF)是一种用于构建和运行小型嵌入式设备上的应用程序的框架。它为开发人员提供了类似于桌面版.NET Framework的功能,但针对...

    GHI .NET Micro Framework培训教材(英文版)

    ### GHI .NET Micro Framework 培训教材知识点解析 #### 一、关于教材与目标受众 本教材《GHI .NET Micro Framework培训教材》专为初学者设计,旨在介绍.NET Micro Framework及其在嵌入式系统开发中的应用。教材...

    .Net Micro Framework 模拟器(支持方向键)

    注:比上一个模拟器多了支持方向键控制 这是我自己改造的.Net Micro Framework模拟器,比windows自带的漂亮多了。 覆盖该目录下的同名文件(路径以实际开发包安装位置为准)即可。 C:\Program Files\...

    expert .net micro framework

    expert .net micro frameworkexpert .net micro frameworkexpert .net micro framework

    .NET Micro Framework for Windows 7(X64) USB驱动安装说明

    .NET Micro Framework(简称.NET MF)是微软开发的一个嵌入式平台,主要面向资源有限的设备,如物联网(IoT)设备、智能家居控制器等。它提供了一个运行环境,使得开发者能够利用C#或VB.NET等高级语言进行编程,而无需...

    .NET Micro Framework Testing Batch File Generator

    .NET Micro Framework自动化测试工具,需.NET Micro Framework3.0和.NET Micro Framework Test Kit支持...

    .NET Micro Framework开发板使用手册(红牛开发板)

    .NET Micro Framework(简称.NET MF)是微软公司推出的一个嵌入式操作系统平台,主要设计用于资源有限的设备,如物联网(IoT)中的智能硬件、工业自动化设备和消费电子等产品。红牛开发板是一款基于.NET Micro ...

Global site tag (gtag.js) - Google Analytics