keil的信号函数用于模拟和测试串行IO,模拟IO,端口通讯等重复发生的外部事件。

信号函数以关键字signal开头。在函数中必须调用twatch用于延时,不然keil会陷入死循环。twatch函数的参数表示要延时的CPU执行周期,比如twatch(1000000)表示一个信号函数延时1000000个CPU周期。

信号函数受到如下约束:

  • 函数的返回值类型必须为void
  • 函数最多只能有8个参数。
  • 信号函数可以调用其他重定义函数和用户函数。
  • 信号函数之间不能相互调用。
  • 信号函数可以被用户函数调用。
  • 信号函数必须调用twatch至少一次。如果信号函数从不调用twatch,则目标程序将得不到时间执行。而且由于不能使用Ctrl+C中断信号函数,在这种情况下µVision3将进入死循环。

1.建立函数

keil中有内建的函数编辑器,通过Debug--Function Editor来打开。打开函数编辑器时需要输入一个文件名或者打开一个由Options for Target--Debug Initialization File指定的文件。

2. 编辑例子。

下面的例子在LPC2114的P0.8引脚上输入一个如下图所示的方波。

// 在200HZ的方波的低半周期中增加两个频率为1K的波
//
//
signal void test(void)
{
    )
    {
        PORT0 |=0x100;            //P0.8置高
        twatch(*/);    //延时2.5ms(200HZ)
        PORT0 &=~0x100;            //P0.8置低
        twatch(*/);    //延时2.5ms(200HZ)

        PORT0 |=0x100;            //P0.8置高
        twatch(*/);    //延时2.5ms(200HZ)
        PORT0 &=~0x100;            //P0.8置低
        twatch(*/);    //延时2.5ms(200HZ)

        PORT0 |=0x100;            //P0.8置高
        twatch(*/);    //延时2.5ms(200HZ)
        PORT0 &=~0x100;            //P0.8置低
        twatch(*/);    //延时ms(800HZ)
        PORT0 |=0x100;            //P0.8置高
        twatch(*/);    //延时2.5ms(400HZ)
        PORT0 &=~0x100;            //P0.8置低
        twatch(*/);    //延时2.5ms(800HZ)
        PORT0 |=0x100;            //P0.8置高
        twatch(*/);    //延时2.5ms(400HZ)
        PORT0 &=~0x100;            //P0.8置低
        twatch(*/);    //延时2.5ms(800HZ)    

    }
}

3.编译

在信号函数编辑界面上,点击Compile按钮,编译通过与否都会有相应提示。

4. 调用信号函数

编译通过后,在软件仿真时,在控制窗口(Command窗口)中输入如下命令: test()

注:test为信号函数名。

5.查看空闲信号函数

使用signal state命令

6. 删除信号函数(以test()为例)

signal kill test或者kill func test

最新文章

  1. Win10/UWP新特性—Drag&Drop 拖出元素到其他App
  2. NOIP2016 D2T1 組合數問題(problem)
  3. Java之JUC系列:外部Tools
  4. 【学习笔记】Xcode常见设置
  5. CentOS搭建GIT服务器【一】-仓库搭建以及基于gitosis的SSH方式访问
  6. Asp.Net Identity自定义user类的运用,ClaimsIdentity
  7. vlan trunk vtp端口聚合
  8. HDU 4815 背包
  9. The app references non-public selectors in payload With Xcode6.1
  10. 隐藏Nginx版本号的安全性与方法
  11. 学习笔记:javascript body常用事件
  12. Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
  13. R语言︱基本函数、统计量、常用操作函数
  14. PHP方法实现1-9数列中添加‘+’,‘-’或'',使和为100,并输出数列
  15. 笔记:Spring Cloud Ribbon 客户端配置详解
  16. 文本编辑器 EditPlus 的激活与设置
  17. MySQL api
  18. commons-beanutils使用介绍
  19. Windows入侵问题排查
  20. Olivia Palermo & Johannes Huebl 模范情侣

热门文章

  1. CentOS查看CPU、内存、网络流量和磁盘 I/O
  2. join函数——Gevent源码分析
  3. 03-树2. Tree Traversals Again (25)
  4. python操作redis-hash
  5. SQL Server 备份的 8 种方法。
  6. Linux文件系统学习笔记-1
  7. JVM的体系结构——JVM之三
  8. SD卡在单片机上的应用
  9. inet address example(socket)
  10. OC基础5:继承