OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4422|回复: 5

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

[复制链接]

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2014-12-29 17:18:03 | 显示全部楼层 |阅读模式

            好久没更新笔记了,主要最近比较忙,目前在搞 ARM9 S3C2416的MF移植,就把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#代码:

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

 










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

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

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

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

 

LED.zip

5.87 MB, 下载次数: 75

TinyCLR.bin

371.63 KB, 下载次数: 54

已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-29 23:48:04 | 显示全部楼层
不错,期待更多分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2012-5-8
在线时间
314 小时
发表于 2015-1-19 15:46:37 | 显示全部楼层
记得有2440的移植例子
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2012-5-8
在线时间
314 小时
发表于 2015-1-19 15:47:19 | 显示全部楼层
期待楼主早点开源固件,进一步的学习
回复 支持 反对

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
 楼主| 发表于 2015-1-19 16:08:05 | 显示全部楼层
回复【4楼】zuoyi:
---------------------------------
我的固件源代码早就公开了,只是公布出来
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2012-5-8
在线时间
314 小时
发表于 2015-1-23 10:09:11 | 显示全部楼层
回复【5楼】mzwhhwj:
---------------------------------
在什么地方,论坛收索过没有,有链接吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 13:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表