keil MDK的信号函数

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)
{
	while(1)
	{
		PORT0 |=0x100;			//P0.8置高
		twatch(11059200*4/400);	//延时2.5ms(200HZ)
		PORT0 &=~0x100;			//P0.8置低
		twatch(11059200*4/400);	//延时2.5ms(200HZ)

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


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

	}
}
3.编译 

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

4. 调用信号函数

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

                              test()             

注:test为信号函数名。

5.查看空闲信号函数

使用signal state命令

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

signal kill test或者kill func test

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Keil MDK是一款非常受欢迎的嵌入式开发工具,拥有许多实用的插件增强功能。以下是对一些常用插件的描述: 1. 调试器插件:Keil MDK配备了强大的调试器插件,可以在开发过程中帮助开发人员进行代码调试和错误排除。通过插件,用户可以方便地查看变量、观察寄存器值、设置断点、单步执行等,提高调试效率。 2. 代码优化插件:Keil MDK中的代码优化插件可以帮助开发人员对代码进行优化,以提高程序的执行效率。通过插件,用户可以自动化地对代码进行分析、识别和调整,从而优化程序的性能和资源利用率。 3. 片上调试插件:Keil MDK还提供了片上调试插件,可以帮助开发人员通过连接板载仿真器或调试器与目标硬件进行交互。通过插件,用户可以监控芯片的状态、查看内存、查看寄存器值等,从而在硬件层面上进行调试和分析。 4. 扩展开发插件:Keil MDK还支持用户自定义插件开发,让用户可以根据自身需求添加或修改功能。通过插件开发,用户可以扩展和定制Keil MDK的功能,以满足特定的开发需求。 综上所述,Keil MDK提供了许多实用的插件功能,可以提高嵌入式开发的效率和质量。不仅可以帮助用户进行代码调试、优化和硬件调试,还支持自定义插件开发,具有很高的灵活性和可定制性。因此,Keil MDK是一款非常好用的开发工具。 ### 回答2: Keil MDK是一款用于嵌入式系统开发的集成开发环境(IDE),具有丰富的功能和强大的插件支持。以下是一些常用且好用的Keil MDK插件: 1. CMSIS-Pack插件:该插件允许用户从ARM官方库中下载和管理外设的软件包。通过CMSIS-Pack插件,用户可以方便地访问到各种外设的相关软件,并进行集成和配置。 2. uVision插件:uVision是Keil MDK的核心组件,提供了用于编写、调试和测试嵌入式应用程序的工具集。该插件支持多种编程语言,包括C、C++、Assembly等,为开发者提供了便捷的开发环境。 3. Debug Adapters插件:该插件为Keil MDK提供了多个不同品牌和型号的调试适配器支持,可以与各种硬件平台进行无缝集成和调试。 4. Trace插件:该插件用于在调试时记录和分析代码的执行轨迹,能够帮助用户解决复杂的调试问题。Trace插件可以实时显示程序的执行路径和函数调用关系,提供了强大的调试工具。 5. C166插件:该插件为Keil MDK添加了对Intel 8051系列微控制器的支持,包括编译器、调试器和仿真器。 6. MDK Middleware插件:该插件提供了一套丰富的中间件组件,包括TCP/IP协议栈、文件系统、USB驱动等。这些组件可以帮助开发者快速构建和集成各种功能模块,提高开发效率。 以上是一些常用且好用的Keil MDK插件,它们为开发者提供了丰富的功能和工具支持,使嵌入式系统开发更加方便和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值