软开关设计漫谈_软件篇
//========================================================================
//TITLE:
// 软开关设计漫谈_软件篇
//AUTHOR:
// norains
//DATE:
// Sunday 19-may-2009
//Environment:
// WINDOWS CE 5.0
//========================================================================
相对于硬件来说,软开关的软件代码更为简单,只需要检测DETECT_KEY即可。该功能的实现主要是通过GPIO,而wince并没有对GPIO做上层定义,并且每款CPU的GPIO的操作方式又各自不同,所以本文无法给出一个完整可用的代码,只能用伪代码作为示例讲解。虽然是伪代码,但对于了解其流程还是有一定的意义。
void Power_On()
{
...
//设置GPIO_SHDN为high
SetGPIO_HIGH(GPIO_SHDN);
...
}
DWORD PWR_IntrThread(PVOID pParam)
{
....
//使能中断
EnableInterrupt();
//初始化中断
InterruptInitialize(btnSysIntr, hNotifyEvent, 0, 0)
while(TRUE)
{
//等待中断事件
dwRet = WaitForSingleObject(hNotifyEvent, INFINITE);
if(dwRet == WAIT_OBJECT_0)
{
//中断处理完毕,让中断再次进入处理
InterruptDone(btnSysIntr);
//再次等待中断处理事件
dwRet = WaitForSingleObject(hNotifyEvent, 1000);
if(dwRet == WAIT_TIMEOUT)
{
//当其位WAIT_TIMEOUT时,意味着为长按,进入poweroff函数
EnterPowerOff();
}
}
}
....
}
void EnterPowerOff()
{
...
while(TRUE)
{
if(IsGPIOHigh(GPIO_DETECT_KEY) != FALSE)
{
//S1已经松开,跳出循环
break;
}
}
//关闭系统电源
SetGPIO_LOW(GPIO_SHDN);
...
}
这里唯一需要注意的是EnterPowerOff函数,在这里必须要检测S1是否已经松开。如果还没有松开S1就将GPIO_SHDN置为LOW,因为S1端还有VDD33D电压输入到PWR_ON端,所以系统还是无法关闭。
转载于:https://www.cnblogs.com/wodeyitian/archive/2009/05/21/2460388.html
软开关设计漫谈_软件篇相关推荐
- 软开关设计漫谈_硬件篇
//======================================================================== //TITLE: // 软开关设计漫 ...
- mos 多路模拟电子开关_软开关设计 || 软开关硬件三极管、MOS管典型电路分析
资料下载请点我(第3次更新) 赠送大家资料,复制并在后台回复以下关键词即可领取 AD19快捷键 关于今日推文 何为软开关?软开关是相对于硬开关而言. 硬开关顾名思义,电源的开断完全取决于硬件,是物理层 ...
- 时间管理专题_软件篇02
本文属非商业用途,文中借鉴他人处均已注明出处,若侵犯原作权益,请联系删除,谢谢 接上一篇 时间管理专题_软件篇01 #NOTE要点:神文,从目标管理到时间统计完整流程,作者亲历 要点:此文过猛, 引用 ...
- 时间管理专题_软件篇03
本文属非商业用途,文中借鉴他人处均已注明出处,若侵犯原作权益,请联系删除,谢谢 接上一篇 时间管理专题_软件篇02 标题:一年多的GTD和自我管理之路(上) 作者:褪墨・时间管理 地址:http:// ...
- 时间管理专题_软件篇01
本文属非商业用途,文中借鉴他人处均已注明出处,若侵犯原作权益,请联系删除,谢谢 简介 时间管理软件筛选 #NOTE要点:较旧,2012年整理的了 ,App软件为主,偏重GTD,目标管理和统计较弱,具体 ...
- 家具设计软件测试自学,一个初学者如何从零开始学软装设计
室内软装设计需要学什么?如何学? 软装设计虽然是一个新兴的行业,但也是一个有巨大市场的行业.随着软装设计的热门度不断升温,人们生活水平提高,逐渐追求"轻装修,重装饰"的品质生活,软 ...
- 视频教程-AssetBundle框架设计_框架篇视频课程-Unity3D
AssetBundle框架设计_框架篇视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件 ...
- 领域驱动设计_软件核心复杂性应对之道
领域驱动设计_软件核心复杂性应对之道 转载于:https://www.cnblogs.com/MarvinGeng/archive/2013/02/21/2920968.html
- 极客时间_软件设计之美 笔记
极客时间_软件设计之美 笔记 1.软件设计是什么 写代码前应该有模型设计 比如mvc结构就是一种模型 代码应该有规范, 产品内部原则 避免每个开发按自己的想法实现,有人写rest 有人写mvc 代码模 ...
最新文章
- 怎么关闭微信微众银行账户服务器,微信微众银行要怎么关闭,微信微众银行注销方法...
- Eclipse的Git插件下载项目出现 No project found
- win10系统调用架构分析
- 使用jstat报告自定义JVM指标集
- Element Table 可以实现哪些常见的有用的功能
- 非递归分治法排序 MergeSort without recursion
- one list to muti list
- 材价看板(1)- 如何建立你的第一个kanban,看看这些暴露的问题你们有没有?...
- Inf and NaN cannot be JSON encoded
- 凤凰系统基于android x x86,凤凰系统(Phoenix OS)x86版1.0 beta官方版
- 隐马尔可夫模型(HMM)推导详解
- PHP是世界上最好的语言
- python interactive 清空内存_Python 进程内存增长解决方案
- 显卡上DirectX 9.0 是什么意思
- 微信图文美化编辑器试试构思编辑器
- Java基础语法之变量、运算符、流程控制、数组和方法等基础语法
- codeforces 897 D Ithea Plays With Chtholly(交互)
- k8s集群二进制部署 1.17.3
- 迎着冷眼和嘲笑?前进
- StringBuffer之间的比较、String和StringBuffer的比较
热门文章
- thrift java 对象_Apache Thrift,Java:对象数据类型
- mysql 处理文件函数_mysql的字符串处理函数
- 社区发现(六)--模块度
- 人脸检测(九)--检测器源码分析
- 目标检测(一)--Objectness算法总体理解,整理及总结
- html插入循环图片,javascript – HTML5在带有for循环的画布上绘制图片?
- 上海大学c语言程序设计,上海大学2009-2010年度C语言程序设计秋季学期试卷.doc
- 孪生再世代表数字几_能科股份:智能制造需求旺盛,中标多领域数字孪生项目
- 【汇编语言】指令寻址
- InnoDB如何实现多版本