CN102541643A - 嵌入式系统中逻辑信号的延时处理方法 - Google Patents
嵌入式系统中逻辑信号的延时处理方法 Download PDFInfo
- Publication number
- CN102541643A CN102541643A CN2011104531608A CN201110453160A CN102541643A CN 102541643 A CN102541643 A CN 102541643A CN 2011104531608 A CN2011104531608 A CN 2011104531608A CN 201110453160 A CN201110453160 A CN 201110453160A CN 102541643 A CN102541643 A CN 102541643A
- Authority
- CN
- China
- Prior art keywords
- signal
- signal processing
- processing function
- logical
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Pulse Circuits (AREA)
Abstract
本发明公开了一种嵌入式系统中逻辑信号的延时处理方法,包括以下步骤:建立一信号处理函数,将定时器变量、边沿触发条件及延时时间作为该信号处理函数的三个局部输入变量,将该信号处理函数的输出变量作为输出逻辑信号;由主函数调用该建立的信号处理函数,该主函数将逻辑信号作为边沿触发条件变量传送给信号处理函数,同时将要延时的延时时间变量传送给信号处理函数,通过该信号处理函数的信号处理,延时输出由边沿触发条件触发的输出逻辑信号。本发明由于采用定义局部变量的方法来定时和定时计数,降低了内存占用率,保证了内存的充分利用,并利于函数的运用和维护。
Description
技术领域
本发明涉及嵌入式软件中对逻辑信号的延时处理方法。
背景技术
嵌入式系统在工业和民用的诸多领域都得到了广泛地应用。嵌入式软件的开发与数字电路密不可分,经常要处理上升沿、下降沿等逻辑信号的响应时序,在外部逻辑信号输入后延时一定的时间来触发输出信号。大多数嵌入式软件处理的方法都是对每个逻辑信号定义一个定时器,在这个逻辑信号输入时触发定时器计时,当定时器计时达到所要延时值时,输出信号就响应。这种方法需要在软件设计中对逻辑信号定义一个全局延时变量,如果在软件中所处理的逻辑信号比较多,对每个逻辑信号都有单独的延时处理,则需要针对每个逻辑信号定义一个全局定时器变量和全局延时变量,并在中断函数中去添加其对应的逻辑关系来处理这个触发。当所要处理的逻辑信号越来越多时,增加的定时器全局变量和延时全局变量也越来越多,就会使得嵌入式CPU的可用寄存器数量变得紧张。并且,在中断函数中一直对这些逻辑信号做判断处理,还会影响到中断函数运行的效率,另外,对软件读取和维护也造成了不便。
发明内容
本发明所要解决的技术问题在于提供一种嵌入式系统中逻辑信号的延时处理方法,其能减少内存占用率。
本发明所采用的技术方案是:一种嵌入式系统中逻辑信号的延时处理方法,包括以下步骤:
建立一信号处理函数,将定时器变量、边沿触发条件及延时时间作为该信号处理函数的三个局部输入变量,将该信号处理函数的输出变量作为输出逻辑信号;
由主函数调用该建立的信号处理函数,该主函数将逻辑信号作为边沿触发条件变量传送给信号处理函数,同时将要延时的延时时间变量传送给信号处理函数,通过该信号处理函数的信号处理,延时输出由边沿触发条件触发的输出逻辑信号。
上述的延时处理方法,其中,该信号处理函数的信号处理包括以下步骤:
判断输入的逻辑信号是否满足边沿触发条件;
如果满足,则定时器变量开始计数;若不满足,定时器变量清零;
判断定时器变量的计数值是否达到延时时间,若未达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值为输入逻辑信号在触发前的逻辑值;若达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值与输入逻辑信号在触发前的逻辑值相反;一旦输入的逻辑信号不满足边沿触发条件,该信号处理函数输出的逻辑信号的逻辑值又变为输入逻辑信号在触发前的逻辑值。
上述的延时处理方法,其中,边沿触发条件为输入逻辑信号上升沿触发或下降沿触发。
本发明建立了用于处理逻辑信号的信号处理函数,在需要建立输出信号的时候用该信号处理函数来对输入的逻辑信号做延时处理,能对触发信号做及时的处理,便于调用并易于对程序的读取,同时,由于采用定义局部变量的方法来定时和定时计数,降低了内存占用率,保证了内存的充分利用,并利于函数的运用和维护。
附图说明
图1是本发明的信号处理函数的一个实施例的流程示意图。
图2是采用本发明延时处理方法的一个具体应用实施例的示意图。
图3是采用本发明延时处理方法的另一个具体应用实施例的示意图。
具体实施方式
下面结合附图对本发明做出进一步说明。
根据本发明一实施例的嵌入式系统中逻辑信号的延时处理方法,包括以下步骤:
建立一信号处理函数,将定时器变量、边沿触发条件及延时时间作为该信号处理函数的三个局部输入变量,将该信号处理函数的输出变量作为输出逻辑信号;
由主函数调用该建立的信号处理函数,该主函数将逻辑信号作为边沿触发条件变量传送给信号处理函数,同时将要延时的延时时间变量传送给信号处理函数,通过该信号处理函数的信号处理,延时输出由边沿触发条件触发的输出逻辑信号。
在一种优选实施方式中,在建立信号处理函数前,可对每个输入的逻辑信号分别用一数据类型来定义一定时器变量,该数据类型例如可以是无符号型整型变量。
如图1所示,上述信号处理函数的运算包括以下步骤:
步骤S1,判断输入的逻辑信号是否满足边沿触发条件;
步骤S2,如果满足,则定时器变量开始计数;
步骤S3,若不满足,定时器变量清零;
步骤S4,判断定时器变量的计数值是否达到延时时间;
步骤S5,若未达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值为输入逻辑信号在触发前的逻辑值;
步骤S6,若达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值与输入逻辑信号在触发前的逻辑值相反,一旦输入的逻辑信号不满足边沿触发条件,该信号处理函数输出的逻辑信号的逻辑值又变为输入逻辑信号在触发前的逻辑值。
图2是采用本发明延时处理方法的一个具体应用实施例的示意图。在对需要由上升沿逻辑信号触发输出信号的时候,建立一个局部定时器变量Timer,将上升沿逻辑信号signal_A作为边沿触发条件,再根据中断定时器时间和所需的延时时间输入一个时间常量,例如定时器中断周期为1ms,需要延时100ms,可以输入100作为延时量。主函数将上升沿逻辑信号signal_A作为边沿触发条件变量传送给信号处理函数,同时将100作为要延时的延时时间变量传送给信号处理函数,响应的输出信号为signal_A_ans。
于是在signal_A的上升沿到来时,就开始由定时器变量Timer计数,每一个时钟周期定时器变量Timer计数就加1,在计数未到延时时间值的时候整个信号处理函数始终输出逻辑“0”(即signal_A在触发前的逻辑值),当定时器变量Timer的值为100的时候信号处理函数输出逻辑“1”(即signal_A在触发后的逻辑值);当输入的逻辑信号signal_A由逻辑“1”变为逻辑“0”时,此时逻辑信号signal_A不满足边沿触发条件,整个信号处理函数立即输出逻辑“0”,这样就由三个所需的条件得到响应的触发电平。
图3是采用本发明延时处理方法的另一个具体应用实施例的示意图。在对需要由下降沿逻辑信号触发输出信号的时候,建立一个局部定时器变量Timer,将下降沿逻辑信号signal_B作为边沿触发条件。假设要触发后50ms输出,主函数将下降沿逻辑信号signal_B作为边沿触发条件变量传送给信号处理函数,同时将50作为要延时的延时时间变量传送给信号处理函数,响应的输出信号为signal_B_ans。
当signal_B的下降沿到来时,定时器变量Timer开始计数,在计数未到延时时间值的时候整个信号处理函数始终输出逻辑“1”(即signal_B在触发前的逻辑值),当定时器变量Timer的值为50的时候信号处理函数输出逻辑“0”(即signal_B在触发后的逻辑值);当输入的触发信号signal_B由逻辑“0”变为逻辑“1”时,此时逻辑信号signal_B不满足边沿触发条件,整个信号处理函数立即输出逻辑“1”。
综上所述,本发明由定时器、边沿触发条件及延时时间这个三个变量高效地输出响应信号的状态,不再用定义全局变量的方法来定时和定时计数,这种方法在实际运用中更便于运行和维护。
Claims (6)
1.一种嵌入式系统中逻辑信号的延时处理方法,其特征在于,包括以下步骤:
建立一信号处理函数,将定时器变量、边沿触发条件及延时时间作为该信号处理函数的三个局部输入变量,将该信号处理函数的输出变量作为输出逻辑信号;
由主函数调用该建立的信号处理函数,该主函数将逻辑信号作为边沿触发条件变量传送给信号处理函数,同时将要延时的延时时间变量传送给信号处理函数,通过该信号处理函数的信号处理,延时输出由边沿触发条件触发的输出逻辑信号。
2.如权利要求1所述的延时处理方法,其特征在于,该信号处理函数的信号处理包括以下步骤:
判断输入的逻辑信号是否满足边沿触发条件;
如果满足,则定时器变量开始计数;若不满足,定时器变量清零;
判断定时器变量的计数值是否达到延时时间,若未达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值为输入逻辑信号在触发前的逻辑值;若达到该延时时间,该信号处理函数输出的逻辑信号的逻辑值与输入逻辑信号在触发前的逻辑值相反;一旦输入的逻辑信号不满足边沿触发条件,该信号处理函数输出的逻辑信号的逻辑值又变为输入逻辑信号在触发前的逻辑值。
3.如权利要求1或2所述的延时处理方法,其特征在于,所述的边沿触发条件为输入逻辑信号上升沿触发。
4.如权利要求1或2所述的延时处理方法,其特征在于,所述的边沿触发条件为输入逻辑信号下降沿触发。
5.如权利要求1所述的延时处理方法,其特征在于,在建立信号处理函数前,对每个输入的逻辑信号分别用一数据类型来定义一定时器变量。
6.如权利要求5所述的延时处理方法,其特征在于,所述的数据类型为无符号型整型变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104531608A CN102541643A (zh) | 2011-12-30 | 2011-12-30 | 嵌入式系统中逻辑信号的延时处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104531608A CN102541643A (zh) | 2011-12-30 | 2011-12-30 | 嵌入式系统中逻辑信号的延时处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102541643A true CN102541643A (zh) | 2012-07-04 |
Family
ID=46348599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104531608A Pending CN102541643A (zh) | 2011-12-30 | 2011-12-30 | 嵌入式系统中逻辑信号的延时处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541643A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786598A (zh) * | 2014-12-19 | 2016-07-20 | 北汽福田汽车股份有限公司 | 任务调度方法及装置 |
CN115994008A (zh) * | 2022-10-17 | 2023-04-21 | 上海神玑医疗科技有限公司 | 一种按钮装置软件功能的实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127957A (zh) * | 1994-12-30 | 1996-07-31 | 周春生 | 多脉冲延时装置 |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
CN2606494Y (zh) * | 2003-03-07 | 2004-03-10 | 上海华虹集成电路有限责任公司 | 一种数字锁相环 |
CN2660787Y (zh) * | 2003-10-15 | 2004-12-01 | 中国电子科技集团公司第四十一研究所 | 精密延时器 |
CN1710508A (zh) * | 2004-06-17 | 2005-12-21 | 富士通株式会社 | 时钟调节装置及其方法 |
CN201035447Y (zh) * | 2007-05-11 | 2008-03-12 | 东南大学 | 时钟切换电路 |
CN101162865A (zh) * | 2006-10-13 | 2008-04-16 | 智宝科技股份有限公司 | 切换式电压转换器的工作频率产生方法与电路 |
US20080106314A1 (en) * | 2006-11-02 | 2008-05-08 | Redmere Technology Ltd. | Programmable high-speed cable with boost device |
CN102109875A (zh) * | 2009-12-28 | 2011-06-29 | 北京普源精电科技有限公司 | 具有脉冲信号产生功能的信号发生器和脉冲信号产生方法 |
-
2011
- 2011-12-30 CN CN2011104531608A patent/CN102541643A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127957A (zh) * | 1994-12-30 | 1996-07-31 | 周春生 | 多脉冲延时装置 |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
CN2606494Y (zh) * | 2003-03-07 | 2004-03-10 | 上海华虹集成电路有限责任公司 | 一种数字锁相环 |
CN2660787Y (zh) * | 2003-10-15 | 2004-12-01 | 中国电子科技集团公司第四十一研究所 | 精密延时器 |
CN1710508A (zh) * | 2004-06-17 | 2005-12-21 | 富士通株式会社 | 时钟调节装置及其方法 |
CN101162865A (zh) * | 2006-10-13 | 2008-04-16 | 智宝科技股份有限公司 | 切换式电压转换器的工作频率产生方法与电路 |
US20080106314A1 (en) * | 2006-11-02 | 2008-05-08 | Redmere Technology Ltd. | Programmable high-speed cable with boost device |
CN201035447Y (zh) * | 2007-05-11 | 2008-03-12 | 东南大学 | 时钟切换电路 |
CN102109875A (zh) * | 2009-12-28 | 2011-06-29 | 北京普源精电科技有限公司 | 具有脉冲信号产生功能的信号发生器和脉冲信号产生方法 |
Non-Patent Citations (1)
Title |
---|
程晓东等: "基于DDR SDRAM控制器时序分析的模型", 《计算机工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786598A (zh) * | 2014-12-19 | 2016-07-20 | 北汽福田汽车股份有限公司 | 任务调度方法及装置 |
CN115994008A (zh) * | 2022-10-17 | 2023-04-21 | 上海神玑医疗科技有限公司 | 一种按钮装置软件功能的实现方法 |
CN115994008B (zh) * | 2022-10-17 | 2023-08-01 | 上海神玑医疗科技有限公司 | 一种按钮装置软件功能的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103645794A (zh) | 一种通过边沿检测电路实现睡眠模式唤醒的芯片及方法 | |
CN103631360A (zh) | 一种支持睡眠模式的芯片及方法 | |
CN103324546A (zh) | 一种延时喂狗的方法及装置 | |
CN105677455A (zh) | 一种设备调度方法及任务管理器 | |
CN101924667B (zh) | 一种基于串口的modem异常侦测、断电重启控制方法 | |
CN102541942B (zh) | 一种数据批量转移系统及其方法 | |
CN103559045A (zh) | 一种硬件实时操作系统 | |
CN102270156A (zh) | 一种实时嵌入式系统定时器管理方法 | |
CN104145255A (zh) | 数据传输装置、数据传输方法及数据传输程序 | |
CN103823706A (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN101213534A (zh) | 对延时不敏感的fifo信令协议 | |
CN103092351A (zh) | 一种停止闹钟响铃方法、装置以及移动终端 | |
CN102541643A (zh) | 嵌入式系统中逻辑信号的延时处理方法 | |
CN102023625A (zh) | 一种基于cpld/fpga的旋变编码器用ssi数据发送器 | |
CN101488100B (zh) | 中断系统实现方法及装置 | |
CN103873031B (zh) | 非时钟触发寄存器 | |
CN102890445B (zh) | 一种多功能定时器 | |
CN102929714A (zh) | 基于uC/OS-II的硬件任务管理器 | |
CN101944056B (zh) | 一种多任务系统监控方法及装置 | |
CN105523210B (zh) | 一种流量灌装机的智能计数方法及实现该方法的装置 | |
CN103312307A (zh) | 时钟频偏检测方法及装置 | |
RU82968U1 (ru) | Счетчик джонсона | |
CN203376748U (zh) | 单总线接收逻辑结构 | |
US20140333353A1 (en) | Managing clock and recovery data | |
CN204480031U (zh) | 一种多路控制的皮带秤同步配料装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120704 |