STM32 keil MDK仿真测试.doc
8页1、信号函数当Vision3模拟执行目标程序时,信号函数可以在后台实现信号输入、脉冲输入等重复操作。信号函数可用于模拟和测试串行I/O、模拟I/O、端口通讯和其他一些重复发生的外部事件。因为当Vision3模拟目标程序时,信号函数是在后台执行。因此,信号函数必须在某些地方调用twatch函数来进行延迟,以便让Vision3能运行目标程序。若信号函数从不调用twatch,则Vision3会报告错误。Vision3提供了一部分能在信号函数中使用的系统变量。详情请参考 系统变量 。系统变量系统变量可在程序中任何位置的变量和其他表达式中使用,用于获取一些特殊功能值。下表列出了允许使用的系统变量,以及数据类型和使用方法。变量 类型 描述 $ unsigned long 表示当前程序计数器值。可以使用$表达和修改程序计数器。例如,$ = 0x4000可将当前程序计数器值设置为0x4000。 _break_ unsigned int 令目标程序中止运行。如果将 _break_ 设置为一个非零值,Vision将挂起目标程序的执行。在用户和信号函数中使用该变量可挂起目标程序的执行。 _traps_ unsi
2、gned int 若将_traps_ 设置为一个非零值,Vision将现实166个硬件陷阱:未定义的操作码,被保护指令错,非法字操作访问,非法指令访问,堆栈上溢,堆栈下溢等。 states unsigned long CPU指令状态计数器的当前值;当目标程序开始执行时,该计数器从0开始每执行一条就加1。注意states 是一个只读变量。 itrace unsigned int 表示目标程序执行时是否记录跟踪过程。若 itrace 为 0,则不记录跟踪过程;若itrace 是一个非0值,则记录跟踪过程。更多相关信息可参考 Trace Recording 。 radix unsigned int 设置显示数据的进制,radix 可为 10 或16,默认值为16 用于HEX输出.信号函数的定义由关键字SIGNAL开始,格式如下:SIGNAL void fname (parameter_list) statementsfname i函数名 parameter_list i传递给函数的参数表,每个参数必须包括一个类型声明和一个名字。如果没有参数,则用void代替参数表。多个参数之间用逗号间隔。
3、statements 函数体 函数起始标识。只有函数起始标识和函数结束标识(“”)保持平衡,函数才是完整的。 例如下面的例子表示一个信号函数每隔1,000,000个CPU周期将字符A传送至串行输入缓冲区一次。SIGNAL void StuffS0in (void) while (1) S1IN = A; twatch (1000000); 调用这个函数时,在控制窗口输入如下命令:StuffS0in()调用时StuffS0in信号函数会将字符A的ASCII值传送至串行输入缓冲区并延迟1,000,000 个CPU周期,不断重复。信号函数受到如下约束:函数的返回值类型必须为void。 函数最多只能有8个参数。 信号函数可以调用其他重定义函数和用户函数。信号函数之间不能相互调用。 信号函数可以被用户函数调用。 信号函数必须调用twatch至少一次。如果信号函数从不调用twatch,则目标程序将得不到时间执行。而且由于不能使用Ctrl+C中断信号函数,在这种情况下Vision3将进入死循环。 信号函数的管理一个信号函数要么处于空闲态,要么处于运行态。Vision3通过队列来保存被激活的信号函数。
4、处于空闲态的信号函数将被延迟,直到延迟完指定的CPU周期等待之后调用 twatch来唤醒她。运行态的信号函数则执行函数内的语句。当一个信号函数被调用时,Vision3将此函数加入队列中并将其状态标明为运行。一个信号函数只能被激活一次,如果要被激活的函数已经在队列中,则会发出警告。通过SIGNAL STATE命令可以查看信号函数的状态,SIGNAL KILL命令可以将信号函数从队列中消除掉。当信号函数调用twatch函数时,经过数个CPU周期处理完twatch函数之后信号函数将进入空闲态,直到用户程序执行指定数目个CPU周期后信号函数才从twatch函数之后的语句开始继续执行。当信号函数退出时,返回语句自动将该函数从队列中清除。下面的例子表示一个信号函数在C167上改变模拟输入的值。函数从0伏特开始以0.5伏为单位增加或减少输入电压,并且增加上限被设置。该信号函数不定期的重复,每次电压改变将延迟200,000个CPU周期。signal void analog0 (float limit) float volts;printf (Analog0 (%f) entered.n, limit)
《STM32 keil MDK仿真测试.doc》由会员飞****9分享,可在线阅读,更多相关《STM32 keil MDK仿真测试.doc》请在金锄头文库上搜索。
《论语》十二章全面解读
Web前端开发案例教程:12完整项目化妆品网站设计与实现
编程基础与实例教程-PHP
2019年抚顺市第六中学高考生物简单题专项训练(含解析)
2019年教科版八年级物理上册全册学案
2019年宝鸡晨光中学高考生物简单题专项训练(含解析)
2019年象山港书院高考生物简单题专项训练(含解析)
2019年一级建造师工程经济考点总结
2019年小学教育教学工作总结4篇
2019年浙江省金华市中考数学试卷(解析版)
2019年布拖县中学高考生物简单题专项训练(含解析)
2010年卫生系列中级职称内科学风湿及结缔组织病习题及参考答案
2019年信阳晨光中学高考生物简单题专项训练(含解析)
2018年一级建造师市政实务必考点
2019年和县第三中学高考生物简单题专项训练(含解析)
2018高考化学微题型微考点训练1--20
2019年大理市大理第二中学高考生物简单题专项训练(含解析)
2019年三中高考生物简单题专项训练(含解析)
2018检验检测机构质量手册
2019年衡南县第三中学高考生物简单题专项训练(含解析)
2024-03-12 4页
2024-03-12 6页
2024-03-12 15页
2024-03-12 7页
2024-03-12 5页
2024-03-12 13页
2024-03-12 5页
2024-03-12 5页
2024-03-12 5页
2024-03-12 7页