原创 Microsoft .NET Micro Framework移植开发笔记6之电容触摸按键实验

2014-12-29 17:23 1130 18 18 分类: MCU/ 嵌入式 文集: .NET Micro Framework USB移植

Microsoft .NET Micro Framework移植开发笔记6电容触摸按键实验

好久没更新笔记了,主要最近比较忙,目前在搞 ARM9 S3C2416MF移植,就把STM32的暂时搁了,前两天S3C2416的移植有一个比较大的进展。就抽空来继STM32的移植。这次的移植比较有突破性,之前我移植和做的实验都是基于MF官方本身就支持的外设。假如官方没有支持的外设驱动怎样办,如果完全可以由自己来定义外设驱动接口,然后让C#代码来调用,这样的话MF的实用性大大提高,我们完全可以自己让MF来实现我们所要的外设,不再受官方的限制。

今天终于实现这一个功能,这里我移植封装了原子哥的电容触摸按键实验,完全是由自己定义的驱动接口,然后把这接口都封装成DLL文件,在VS里增加引用就可以调用这些接口。

namespace LLFeng

{

    public class TPAD

    {

        public TPAD();

 

        public static void TIM5_CH2_Cap_Init(ushort arr, ushort psc);

        public static ushort TPAD_Get_MaxVal(uint n);

        public static ushort TPAD_Get_Val();

        public static ushort TPAD_Init(uint systick);

        public static void TPAD_Reset();

        public static ushort TPAD_Scan(uint mode);

    }

}

先看接口函数,完全是封装了原子哥的TPAD,没做其它的改动。电容触摸按键实验的原理大家都清楚,原子哥的教程中都有详细的说明。其实用MF的固件的话,你压根就不需要去了解底层是什么原理,你只要知道接口函数的参数值跟返回值,知道函数怎么用就可以了。

再看C#代码:

20141229171146958001.jpg

跟原子哥实验中的操作一样先调用LLFen.TPAD.TPAD_Init()函数进行初始化,然后通过判断LLFeng.TPAD.TPAD_Scan()函数的返回值来知道电容触摸键是否被下,按下一次,led1的状态就取反一次。点调试,把代码部署到战舰开发板,看到红色LED灯在闪烁的时候,用手触摸一次触摸区域,绿色的LED就会亮,再触摸一次就会灭掉。

 

 

 
  20141229171150810002.jpg

 

到目前为止,距上次的固件更新,这次的固件,有三个修改:

1、       MF系统节拍的时钟已经改成用Systick来驱动,官方的是要占用三个定时器来驱动,改用Systick就可以把这三个定时空出来。

2、      封装了蜂鸣器直接底层驱动的接口,直接调用LLFeng.Beep.beepon() LLFeng.Beep.beepoff()这两个函数就可以直接的让蜂鸣器开跟关。

3、      封装了电容触摸驱动的接口,让MF在战舰开发板上也可以用电容触摸。

 

EDN的附件上传有点问题,传不上来,固件跟C#工程文件,大家直接进开源电子论坛去下载:http://openedv.com/posts/list/44511.htm

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
18
关闭 站长推荐上一条 /3 下一条