嵌入式实时系统程序开发一:按键程序编写

为了回顾以前的东西,以及把操作系统的思想能用在处理器的多任务操作上,会持续连载一些文章,这些思想主要借鉴周慈航《基于嵌入式实时系统程序设计技术》一书

键盘程序控制技术:

键盘作为输入输出口,是我们常用的一个模块,下面把自己总结的键盘程序大体描绘一下。

键盘中有两个问题我们需要解决:一个是防抖,一个是要避免连击。

对于防抖:通常我们加延时函数,等待按键稳定后再执行后面的步骤,但是具体要延时多长时间只能凭借经验或尝试的办法,不可靠,更好的办法是我们可以设置两个状态变量,分别保存按键上一时刻和这一时刻的状态,当两个状态一样时,说明按键状态稳定。

避免连击:连击通常也会造成不可预知的操作,避免连击就是让按键一次只响应一次,为此我们需要检测按下和释放两种状态,然后再执行相应的操作。一般有两种方法,一是按键按下,执行相应操作,然后检测释放;二是,检测按键按下并释放后,然后执行相应操作。我一般用第二种。

程序流程:

int   TaskKey(void* pdata)

{

  INT8U key,key0;

  while(1)

  {

    OSTimeDly(1);

    key=keyin();

    if(key=未按下|key!=key0)        //如果按键没有按下或者按键前后状态不一,继续检查按键状态

    {

      key0=key;

      continue;

    }

    which(key)

    {

      执行相应按键解析函数,并更新显示消息。

    }

    while(1)

    {

      key=keyin();

      if(key释放) break;                     //如果按键释放,跳出循环,一次按键相应操作完成

      OSTimeDly(1);

    }

  }

}

时间: 2024-08-02 11:00:51

嵌入式实时系统程序开发一:按键程序编写的相关文章

微信小程序_微信小程序开发,小程序源码、案例、教程

原文地址:http://whosmall.com/?post=448 本文标签: 微信小程序 小程序源码案例 小程序项目 小程序源码 微信小程序教程 什么是微信小程序? 微信小程序是微信基于微信平台的一个应用发布平台,微信小程序app开发属于原生app组件提供js接口的开发方式,比混合是app的用户体验更好,仅次于原生应用. 不过微信小程序定位于小,要符合轻量易用无需下载,所以从体积上也是有限制,整个小程序应用体积不能超过1M. 微信小程序的应用场景? 微信小程序的应用场景适用于轻量应用,非强交

支付宝小程序开发——修改小程序原生radio默认样式

如下,要做这样的单选按钮,小程序原生的单选按钮使用起来还算是比较方便的,所以选择直接进行样式改造了: 对于微信小程序来说,单选按钮实质上是一个有自己内部结构的组件,内部有自己的元素结构,所以在重定义样式的时候,需要用到组件你内部的元素类名来定义,详见:微信小程序开发——修改小程序原生checkbox.radio默认样式. 不同于微信小程序,支付宝小程序的大部分组件及样式跟Html都比较接近的.对于单选按钮,则与html标签类似,可以采用同样的方法进行样式修改.具体如下: /* 单选按钮样式*/

微信小程序开发 [01] 小程序基本结构和官方IDE简介

1.小程序账户注册 实际上在进行开发时没有注册小程序账户也是可以的,官方提供的IDE提供实时编译模拟预览,和当前你有没有绑定小程序账户没有关系. 当然,最终你要正式上线你的小程序的话,肯定还是需要账户的,申请流程不再阐述了,请参考官方文档<小程序注册>,个人开发者选择个人就行了. 2.官方demo和基本结构 在下载官方的小程序开发工具之后,新建项目选择小程序: 然后IDE会自动生成一个简单的小程序,如下: 在中间的目录结构中可以看到,不论是根目录下还是其他单个模块的页面下,有这四类文件: .j

Eclipse进行程序开发-第一个程序

下载eclipse https://pan.baidu.com/s/1R9xJjNitLvqVsSfWVY7pIg 后解压 1.设置工作空间 Eclipse启动完成后会弹出一个对话框,提示选择工作空间(Workspace),如下图所示: 工作空间用于保存Eclipse中创建的项目和相关设置.此处使用Eclipse提供的默认路径为工作空间,当然,也可以单击[Browse]按钮来更改,工作空间设置完成后,单击[OK]按钮即可 2.进入欢迎界面 工作空间设置完成后,由于是第一次打开,会进入Eclips

[小程序开发] 微信小程序内嵌网页web-view开发教程

为了便于开发者灵活配置小程序,微信小程序开放了内嵌网页能力.这意味着小程序的内容不再局限于pages和large,我们可以借助内嵌网页丰富小程序的内容.下面附上详细的开发教程(含视频操作以及注意事项) 一.小程序内嵌网页web-view教程 1) 微信公众平台,登录小程序账号 2) 左侧-设置-开发设置-业务域名-配置 3) 小程序管理员微信扫码 4) 填写小程序业务域名,域名需ICP备案 5) 下载校检文件上传至服务器指定目录,保存 6) 小程序业务域名配置完成7) 打开微信开发者工具,添加小

微信小程序开发1.4--小程序对接Django

本地开发对接 小程序只能跟指定的域名进行网络通信 必须使用https发起网络请求 远端对接调试 使用git远端同步代码:本地代码push到git仓库,再从服务器代码从git仓库拿回来,coding.net  oschina  码云 管理依赖环境:使用pip管理,建立一个requirements.txt, 使用pip install -r requirements.txt进行安装就行,在远端进行即可 格式:django == 2.0 numpy == 1.5 原文地址:https://www.cn

微信小程序开发——微信小程序下拉刷新真机无法弹回

开发工具中下拉之后页面回弹有一定的延迟,这个时间也有点久.真机测试,下拉后连回弹都没有,这个问题要解决,就得在下拉函数里加上停止下拉刷新的API,如下: /** * 下拉刷新 */ onPullDownRefresh: function(e) { this.getList() wx.stopPullDownRefresh(); } 原文地址:https://www.cnblogs.com/xyyt/p/10855817.html

微信小程序开发教程集合

微信小程序开发教程集合?不少朋友都知道现在是小程序发展如火如荼的时候,甚至不少朋友都准备进入小程序开发这个领域.但是互联网上各种信息浩如烟海,如何在这些繁杂的信息中找到自己所需要的,这对于不少人来说是个问题,来现在多享科技为你详细讲述一下微信小程序开发教程,希望可以帮助小程序开发者节约一些时间. 微信小程序开发教程官方文档 作为小程序开发这一领域的开创者以及裁判员,微信官方对于小程序是寄予厚望,微信小程序的版本更迭非常迅速.小程序开发者必须重视微信官方文档教程 小程序开发文档:developer

什么是aPaas?aPaas与低代码又是如何促进应用程序开发现代化的?

从软件即服务(SaaS)到基础设施即服务(IaaS),云计算的兴起使“一切皆服务”(XaaS)模型得以泛滥,而aPaaS可能是这些模型中最鲜为人知的模型.随着aPaaS市场预计将从2018年的近90亿美元增长到2023年的约117亿美元,更加注重成本.效率的企业用户可能会见证aPaaS产品的扩展壮大. 什么是aPaaS? aPaaS代表应用程序平台即服务,是一类云计算服务.aPaaS中的“a”=应用程序或商业软件.PaaS =平台即服务(PaaS).PaaS是一个云环境,承载诸如集成软件,业务流

[转载][献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南

[献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南. 前言,Linux/Unix 社区的版块不热闹,新手太多,高手太忙,偶把自己这几年的Linux学习的过程讲讲,希望能给大家有点帮助, 引导初学者学习的方向,少走弯路,事半功倍,同时也是抛砖引玉,请过来人热烈发言. 1. 首先熟悉 Linux  建议在 Windows 上安装 VMware Workstation 6.5.0(以下简称VM), 下载种子在 http://www.verycd.com上找. 安装好