版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 如何构建一个完整的工程如何构建一个完整的工程 DSP原理及应用 打开已有的工程打开已有的工程 4.1 一个完整的工程由哪些文件构成 头文件头文件 .h文件,来自于文件,来自于Include文件夹。是文件夹。是 TMS320F2812工程的头文件,工程的头文件,头文件内定义头文件内定义 了内部寄存器的数据结构了内部寄存器的数据结构。一般不需要修改。一般不需要修改。 如果需要定义在整个工程内都具有作用域的全如果需要定义在整个工程内都具有作用域的全 局变量时,可以将这些变量定义在头文件里。局变量时,可以将这些变量定义在头文件里。 库文件库文件 .lib文件,来自于文件,来自于Libr
2、aries文件夹。文件夹。 源文件源文件 .c文件,来自于文件,来自于Source文件夹。工程文件夹。工程 的源文件,是构成工程的主要文件,软件开发的源文件,是构成工程的主要文件,软件开发 时编写的代码都是写在源文件内的。时编写的代码都是写在源文件内的。 CMD文件文件 .cmd文件,用来分配存储空间的。文件,用来分配存储空间的。 包含所有的头包含所有的头 文件,只要添文件,只要添 加了这个头文加了这个头文 件,其他的都件,其他的都 被添加到所建被添加到所建 工程下。工程下。 4.1.1头文件 头文件是以头文件是以.h为后缀的文件。为后缀的文件。 h即为即为“head”的缩写。的缩写。 F28
3、12的头文件主要定义了芯片内部的寄存器结构、终端服的头文件主要定义了芯片内部的寄存器结构、终端服 务程序等内容。务程序等内容。 创建新工程的时候,将表中所列头文件和新建的工程文件放创建新工程的时候,将表中所列头文件和新建的工程文件放 在同一个文件夹里,然后在使用到头文件的源文件内加入在同一个文件夹里,然后在使用到头文件的源文件内加入 代码代码“#include”DSP28_device.h”工程编译的时候,工程编译的时候,CCS 会自动扫描并将所有相关的头文件添加到工程中。会自动扫描并将所有相关的头文件添加到工程中。 序号序号文件名文件名主要内容主要内容 1 1DSP28_Adc.hDSP28
4、_Adc.h模数转换模数转换(ADC)(ADC)寄存器的相关定义寄存器的相关定义 2 2DSP28_CpuTimers.hDSP28_CpuTimers.h3232位位CPUCPU定时器寄存器的相关定义定时器寄存器的相关定义 3 3DSP28_DefaultISR.hDSP28_DefaultISR.hF2812F2812默认中断服务程序的定义默认中断服务程序的定义 4 4DSP28_DevEmu.hDSP28_DevEmu.hF2812F2812硬件仿真寄存器的相关定义硬件仿真寄存器的相关定义 5 5 DSP28_Device.hDSP28_Device.h 包含所有的头文件、目标包含所有的
5、头文件、目标CPUCPU类型的选择类型的选择(F2812(F2812或或 F2810)F2810)、常用标量的定义等内容、常用标量的定义等内容 6 6DSP28_Ecan.hDSP28_Ecan.h增强型增强型CANCAN寄存器的相关定义寄存器的相关定义 7 7DSP28_Ev.hDSP28_Ev.h事件管理器事件管理器(EV)(EV)寄存器的定义寄存器的定义 8 8 DSP28_GlobalPrototypes.hDSP28_GlobalPrototypes.h 全局函数的声明全局函数的声明 9 9 DSP28_Gpio.hDSP28_Gpio.h 通用输入输出通用输入输出(Gpio)(Gp
6、io)寄存器相关定义寄存器相关定义 1010 DSP28_McBsp.hDSP28_McBsp.h 多通道缓冲串行口(多通道缓冲串行口(McBspMcBsp)寄存器相关定义)寄存器相关定义 1111DSP28_PieCtrl.hDSP28_PieCtrl.hPIEPIE控制寄存器的相关定义控制寄存器的相关定义 1212DSP28_PieVect.hDSP28_PieVect.hPIEPIE中断向量表的定义中断向量表的定义 1313 DSP28_Sci.hDSP28_Sci.h 串行通信接口串行通信接口(SCI)(SCI)寄存器的相关定义寄存器的相关定义 1414 DSP28_Spi.hDSP2
7、8_Spi.h 串行外围设备接口串行外围设备接口(SPI)(SPI)寄存器的相关定义寄存器的相关定义 1515DSP28_SysCtrl.hDSP28_SysCtrl.h系统控制寄存器的相关定义系统控制寄存器的相关定义 1616DSP28_Xintf.hDSP28_Xintf.h外部接口寄存器的相关定义外部接口寄存器的相关定义 1717DSP28_XIntrupt.hDSP28_XIntrupt.h外部中断寄存器的相关定义外部中断寄存器的相关定义 自己创建头文件,主要用来定义一些变量能够在整个工程内使用,自己创建头文件,主要用来定义一些变量能够在整个工程内使用, 也就是作用域在整个工程的全局变
8、量。也就是作用域在整个工程的全局变量。 首先需要在某个头文件中进行定义,然后在源文件中进行声明。首先需要在某个头文件中进行定义,然后在源文件中进行声明。 然后添加到当前工程目录下。然后添加到当前工程目录下。 错误!错误! 正确!正确! 1, 1, 将所创建的头文件和其他头文件放在相同的路径下将所创建的头文件和其他头文件放在相同的路径下 2, 2, 在在DSP_Device.hDSP_Device.h中包含其他头文件的代码中加入语句中包含其他头文件的代码中加入语句 “#include#include“DSP28_Global-Variable.h”DSP28_Global-Variable.h”
9、 4.1.2 库文件 库文件是以库文件是以.lib为后缀的文件为后缀的文件 Lib即即“library”的缩写的缩写 CCS中库文件的默认路径为:中库文件的默认路径为: C:CCStudio_v3.3c2000cgtoolslib 库文件不仅包含了寄存器的地址与对应标示符库文件不仅包含了寄存器的地址与对应标示符 的定义,还包含了的定义,还包含了C/C+运行支持库函数,如运行支持库函数,如 系统启动函数系统启动函数_c_int00等。等。 C28xx相关的库文件有相关的库文件有4个:个:rts2800.lib、 rts2800_eh.lib、 rts2800_ml.lib和和 rts2800_m
10、l_eh.lib、 静态库与动态库的区别(1) 作用都是将函数封装在一起经过编译之后供自己作用都是将函数封装在一起经过编译之后供自己 或者他人调用。优点在于编译后的库文件是看或者他人调用。优点在于编译后的库文件是看 不到源码的,保密性很好,同时也不会因为不不到源码的,保密性很好,同时也不会因为不 小心修改了函数出问题,便于维护小心修改了函数出问题,便于维护 lib是编译时需要的,而是编译时需要的,而dll是运行时需要的。如果是运行时需要的。如果 要完成源代码的编译,有要完成源代码的编译,有lib就够了。如果要使就够了。如果要使 动态链接的程序运行起来,有动态链接的程序运行起来,有dll就够了。
11、当然,就够了。当然, 在开发和调试阶段,最好两者都有。在开发和调试阶段,最好两者都有。 .lib .dll 静态库与动态库的区别(2) 一般的动态库程序有一般的动态库程序有lib文件和文件和dll文件。文件。lib文件是文件是 必须在编译期就连接到应用程序中的,而必须在编译期就连接到应用程序中的,而dll文件文件 是运行期才会被调用的。是运行期才会被调用的。如果有如果有dll文件,那么对文件,那么对 应的应的lib文件一般是一些索引信息,具体的实现在文件一般是一些索引信息,具体的实现在 dll文件中文件中。如果只有。如果只有lib文件,那么这个文件,那么这个lib文件文件 是静态编译出来的,索
12、引和实现都在其中。静态是静态编译出来的,索引和实现都在其中。静态 编译的编译的lib文件优点是给用户安装时就不需要再挂文件优点是给用户安装时就不需要再挂 动态库了。但也有缺点,就是导致应用程序比较动态库了。但也有缺点,就是导致应用程序比较 大,而且失去了动态库的灵活性,在版本升级时,大,而且失去了动态库的灵活性,在版本升级时, 同时要发布新的应用程序才行。同时要发布新的应用程序才行。 静态库与动态库的区别(3) 在动态库的情况下,有两个文件,一个是引入在动态库的情况下,有两个文件,一个是引入 库(库(.lib)文件,一个是)文件,一个是dll文件,引入库文件文件,引入库文件 包含被包含被dll
13、导出的函数的名称和位置,导出的函数的名称和位置,dll包含包含 实际的函数和数据,应用程序使用实际的函数和数据,应用程序使用lib文件链接文件链接 到所需要使用的到所需要使用的dll文件,库中的函数和数据并文件,库中的函数和数据并 不复制到可执行文件中,因此在应用程序的可不复制到可执行文件中,因此在应用程序的可 执行文件中,执行文件中,存放的不是被调用的函数代码,存放的不是被调用的函数代码, 而是而是dll中所要调用的函数的内存地址,中所要调用的函数的内存地址,这样当这样当 一个或多个应用程序运行是再把程序代码和被一个或多个应用程序运行是再把程序代码和被 调用的函数代码链接起来,从而节省了内存
14、资调用的函数代码链接起来,从而节省了内存资 源。源。 在在DSP开发中,通常只须关注开发中,通常只须关注lib文件即可。四个文件即可。四个 库函数库函数TI并未给出详细说明,参考英文说明,实并未给出详细说明,参考英文说明,实 际使用时,编译错误就更换库函数重新尝试。际使用时,编译错误就更换库函数重新尝试。 4.1.3 源文件 源文件是以源文件是以.c为后缀的文件为后缀的文件 C即为即为“source”的缩写的缩写 源文件是整个工程的核心,包含了所有需源文件是整个工程的核心,包含了所有需 要实现的功能的代码要实现的功能的代码 TI为为F2812的开发已经准备好了很多源文的开发已经准备好了很多源文
15、 件,通常在里头添加代码实现期望的功能件,通常在里头添加代码实现期望的功能 但但main函数(主函数)文件需要开发者根函数(主函数)文件需要开发者根 据自己实际情况编写。据自己实际情况编写。 F2812常用的源文件 序号序号文件名文件名主要内容主要内容 1 1DSP28_Adc.cDSP28_Adc.cADAD初始化函数初始化函数 2 2DSP28_CpuTimers.cDSP28_CpuTimers.cCPUCPU定时器初始化函数定时器初始化函数 3 3DSP28_ECan.cDSP28_ECan.c增强型增强型CanCan初始化函数初始化函数 4 4DSP28_Ev.cDSP28_Ev.c
16、事件管理器事件管理器EvEv初始化函数初始化函数 5 5DSP28_Gpio.cDSP28_Gpio.c通用通用I/OI/O模块初始化函数模块初始化函数 6 6DSP28_Mcbsp.cDSP28_Mcbsp.c多通道缓冲串行口初始化函数多通道缓冲串行口初始化函数 7 7DSP28_Sci.cDSP28_Sci.c串行通信接口初始化函数串行通信接口初始化函数 8 8DSP28_Spi.cDSP28_Spi.c串行外围接口初始化函数串行外围接口初始化函数 9 9DSP28_SysCtrl.cDSP28_SysCtrl.c系统控制模块初始化函数系统控制模块初始化函数 1010DSP28_Xintf
17、.cDSP28_Xintf.c外部接口初始化函数外部接口初始化函数 1111DSP28_XIntruptDSP28_XIntrupt外部中断初始化函数外部中断初始化函数 1212DSP28_InitPeripherals.cDSP28_InitPeripherals.c包含了其他的外设初始化函数包含了其他的外设初始化函数 1313DSP28_PieCtrl.cDSP28_PieCtrl.cPIEPIE控制模块初始化函数控制模块初始化函数 1414DSP28_PieVect.cDSP28_PieVect.c对对PIEPIE中断向量进行初始化中断向量进行初始化 1515DSP28_DefaultI
18、sr.cDSP28_DefaultIsr.c包含了包含了F2812F2812所有外设中断函数所有外设中断函数 1616DSP28_GlobalVariableDefs.cDSP28_GlobalVariableDefs.c定义了定义了F2812F2812的全局变量和数据段程序的全局变量和数据段程序 CMD文件 CMD文件的作用是为代码和数据文件的作用是为代码和数据分配存储分配存储 空间空间 F2812工程中的工程中的CMD文件有两种:文件有两种: 一种是分配一种是分配RAM空间,用于将程序下载到空间,用于将程序下载到 RAM空间进行调试空间进行调试 一种是分配一种是分配FLASH空间,用于将程
19、序固化到空间,用于将程序固化到 FLASH空间空间 4.2 通用扩展语言GEL GEL是是General Extended Language的缩写,即的缩写,即通通 用扩展语言用扩展语言,是一种类似,是一种类似 于于C的解释性语言。用户的解释性语言。用户 可以通过在文件中使用可以通过在文件中使用 GEL语言来创建函数,从语言来创建函数,从 而扩展而扩展CCS的功能。通过的功能。通过 GEL,可以访问目标板的,可以访问目标板的 存储器,并为存储器,并为CCS的的GEL 菜单添加选项。菜单添加选项。 4.2.2-1 GEL函数的定义 GEL函数定义函数定义: funcName(parameter1
20、 ,parameter2 , parameter n) statements GEL函数名函数名有效的有效的GEL参数参数 有效的有效的GEL语句语句 4.2.1 GEL语法 GELGEL语法支持的语句类型语法支持的语句类型 序号序号 GELGEL语法支持的语句语法支持的语句 1 1GELGEL函数,包括函数的定义、参数、调用函数,包括函数的定义、参数、调用 2 2ReturnReturn语句语句 3 3If-elseIf-else语句语句 4 4WhileWhile语句语句 5 5GELGEL注释语句注释语句 6 6预处理语句预处理语句 GELGEL是是C C语言的一个子集。但语言的一个子集
21、。但GELGEL函数不需要指定函数返回值的函数不需要指定函数返回值的 类型,也不需要任何头信息来定义所要求的参数类型,该信息类型,也不需要任何头信息来定义所要求的参数类型,该信息 通过数据值自动获得。通过数据值自动获得。 定义平方函数 square(a) return a*a; square(1.5)=2.25; square(3)=9。 GEL函数名函数名 有效的有效的GEL参数参数 有效的有效的GEL语句语句 定义初始化对话框函数 dialog Init(filename “File to be Loaded”, CPUname “CPU Name”,initValue “Initiali
22、zation Value”) GEL_Load(filename, CPUname); a=initValue; 关键字,意思是关键字,意思是“对话框对话框”,调用函数,调用函数“Init” 时,会弹出对话框,且对话框有三个项,即三时,会弹出对话框,且对话框有三个项,即三 个参数个参数字符串是对该参数的描述字符串是对该参数的描述 调用调用CCS内部函数,这个函数要求内部函数,这个函数要求用一个用一个 字符串来标识第一个参数,也必须把一个字符串来标识第一个参数,也必须把一个 字符串传递给第一个参数字符串传递给第一个参数。CPUname是是 可选的可选的 必须在必须在DSP工程工程 中定义,否则出
23、错中定义,否则出错 对刚才定义的对刚才定义的InitInit函数的有效调用格式:函数的有效调用格式: Init(“C:CCStudio_v3.3MyProjectsgpiodebuggpio.out”, ”cpu_a”,0) 4.2.2-2 GEL函数的参数 可以通过在可以通过在GEL函数中定义参数来将自变量传递给函数中定义参数来将自变量传递给 一个一个GEL函数。与函数。与C函数参数不同的是,函数参数不同的是,GEL函数的函数的 参数类型并不需要定义,只要求参数名参数类型并不需要定义,只要求参数名。参数的类。参数的类 型由传递的自变量自动决定。型由传递的自变量自动决定。 GEL参数可以是以下
24、任意一种:参数可以是以下任意一种: (1)一个实际的)一个实际的/仿真的仿真的DSP目标板符号值。目标板符号值。 (2)一个数字常量,如果传递的是表达式或者常)一个数字常量,如果传递的是表达式或者常 数值。数值。 (3)一个字符串常量。)一个字符串常量。 分析GEL函数参数 Initialize(a,filename,b) targVar=b; a=0; GEL_Load(filename); return b*b; 下面是对函数Initialize的正确调用: Initialize(targetSymbol, “C:CCStudio_v3.3MyProjectsgpioDebuggpio.o
25、ut”, 28*4+2.52)。 参数参数a被确定为被确定为DSP的标识符的标识符targetSymbol,参数,参数filename初初 始化为字符串常量,参数始化为字符串常量,参数b通过计算称为常数通过计算称为常数114.52 如果不将如果不将DSPDSP标识符传递给参数标识符传递给参数a a,则执行第,则执行第 二个语句二个语句“a=0a=0”时就会产生一个运行错误。时就会产生一个运行错误。 还需保证在还需保证在GELGEL函数运行之前,这个标识符函数运行之前,这个标识符 的信息已经加载给了的信息已经加载给了CCSCCS调试器。调试器。 如果标识符如果标识符targetSymboltar
26、getSymbol已经被定义了,则上已经被定义了,则上 述函数的调用会将目标标识符赋值为述函数的调用会将目标标识符赋值为0 0 GELGEL函数的参数除了可以是函数的参数除了可以是DSPDSP目标板的标识目标板的标识 符外,还可以是数值或字符串,如符外,还可以是数值或字符串,如1 1、3.14153.1415、 “C:CCStudio_v3.3MyProjectsgpioDebC:CCStudio_v3.3MyProjectsgpioDeb uggpio.outuggpio.out”等。等。 对于数值参量,对于数值参量,GELGEL允许向其传递任何有效允许向其传递任何有效 的的C C表达式这个
27、表达式在传递给函数之前被计表达式这个表达式在传递给函数之前被计 算出来。如果结果包含有小数点或指数符号,算出来。如果结果包含有小数点或指数符号, 如如1.21.2或或1.34e41.34e4,它将被当做实型变量,否则就,它将被当做实型变量,否则就 是整型变量。是整型变量。 下面的格式均正确调用下面的格式均正确调用InitializeInitialize函数:函数: Initialize(targetSymbol, “C:CCStudio_v3.3MyProjectsgpioDebuggpio.out”,10) Initialize(targetSymbol, “C:CCStudio_v3.3M
28、yProjectsgpioDebuggpio.out”,1.2) 整型整型 实型实型 执行第一个语句执行第一个语句targVar=b时,如果目标变量时,如果目标变量targetVar是是 整型,而参数整型,而参数b为实型时,参数为实型时,参数b将会被截尾。将会被截尾。 4.2.2-3 GEL函数的调用 通常可以在可以输入通常可以在可以输入C表达式的任何地方调表达式的任何地方调 用一个用一个GEL函数;可以从任何能接受有效函数;可以从任何能接受有效C 表达式的对话框中调用一个表达式的对话框中调用一个GEL函数;还函数;还 可以在一个可以在一个GEL函数中调用另一个函数中调用另一个GEL函数。函数
29、。 GEL函数不支持递归调用函数不支持递归调用 当一个当一个GEL函数正在被执行时,不能运行它函数正在被执行时,不能运行它 自己的其他副本。自己的其他副本。 4.2.3 GEL语句 返回语句返回语句 If-else语句语句 While语句语句 注释语句注释语句 预处理语句预处理语句 GEL返回语句 GELGEL在一个函数里支持标准在一个函数里支持标准C C的返回语句,的返回语句, 其一般形式为:其一般形式为: return expressionreturn expression; 一个返回语句并不是一定需要返回一个值,一个没有一个返回语句并不是一定需要返回一个值,一个没有 表达式的返回语句将控
30、制返回到调用处,并不返回有表达式的返回语句将控制返回到调用处,并不返回有 用的值。用的值。 与标准与标准C C区别:区别:GELGEL函数定义不需指定返回值类型,函数定义不需指定返回值类型, 返回值类型在程序运行时决定。返回值类型在程序运行时决定。 GEL if-else语句 GEL支持标准支持标准C的的if-else语句。通用格式为:语句。通用格式为: if(expression) statement1 else statement2 GEL if-else语句 例:例: if(ab) C=a-b Else c=b-a; d=b+a; GEL while语句 GELGEL的的whilewhi
31、le语句类似于标准语句类似于标准C C的的whilewhile语句,语句, 但是但是GELGEL不支持标准不支持标准C C的的continuecontinue和和breakbreak语句。语句。 通用格式为:通用格式为: whilewhile(expressionexpression) statementstatement 例:例: while(a!=b)while(a!=b) c=a c=a* *b; b; a+; a+; GEL while语句 GEL注释 GEL支持标准支持标准C语言的注释。语言的注释。 GEL的注释,的注释,限用字符限用字符“/*”和和“*/”,可以跨越,可以跨越 若干
32、行。若干行。 while(a!=b)while(a!=b) c=a c=a* *b; b; a+; a+; / /* *此处需要改变自变量的值来控制循环此处需要改变自变量的值来控制循环* */ / GEL预处理语句 GELGEL支持标准支持标准C C的的#define#define预处理关键字,预处理关键字, 这也是唯一可用的预处理关键字。这也是唯一可用的预处理关键字。 下面的语句,使预处理器用给定的字符序列取代标识符,下面的语句,使预处理器用给定的字符序列取代标识符, 其中字符序列前后的空格都不要:其中字符序列前后的空格都不要: #define identifier token-sequen
33、ce#define identifier token-sequence 下面的语句(第一个标识符和括号之间没有空格)下面的语句(第一个标识符和括号之间没有空格) 是一个宏定义,其参数是标识符列表:是一个宏定义,其参数是标识符列表: #define identifier#define identifier( (identifier-listidentifier-list) ) token-sequence token-sequence 加载或卸载GEL函数 要将包含要将包含GELGEL函数的函数的GELGEL文件加载到文件加载到CCSCCS才才 能在文件中访问,驻留在能在文件中访问,驻留在CCS
34、CCS的存储器中,的存储器中, 随时执行,失效在移除文件之后。随时执行,失效在移除文件之后。 当加载的文件被修改,必须先将其卸载,然当加载的文件被修改,必须先将其卸载,然 后再修改生效后重新加载。后再修改生效后重新加载。 GELGEL加载器在加载时要检查加载器在加载时要检查GELGEL文件的语法文件的语法 错误,但不检查变量是否定义。错误,但不检查变量是否定义。 加载或卸载GEL函数 加载一个加载一个GEL步骤:步骤: 选择选择FileLoad GEL菜单项菜单项 在弹出的在弹出的Load GEL File对话框中,浏览找对话框中,浏览找 到包含到包含GEL函数的函数的GEL文件。(文件。(C
35、CS存放存放 GEL文件路径:文件路径:CCS安装路径安装路径ccgel) 双击文件名,或者单击文件名后点击双击文件名,或者单击文件名后点击“打开打开 ”按钮。按钮。 加载或卸载GEL函数 卸载一个卸载一个GEL步骤:步骤: 选择选择ViewProject菜单项菜单项 单击单击GEL文件夹旁边的文件夹旁边的“+”号,查看号,查看GEL文文 件件 右击需要卸载的右击需要卸载的GEL文件文件 在所弹出的快捷菜单中选择在所弹出的快捷菜单中选择Remove 4.2.5 使用关键字在GEL菜单中 添加GEL函数 4.2.5-1 关键字hotmenu 使用关键字使用关键字hotmenuhotmenu,将一
36、个,将一个GELGEL函数添加到函数添加到GELGEL菜单菜单 里,则该函数一旦被选中就立即执行,其语法如下:里,则该函数一旦被选中就立即执行,其语法如下: hotmenu funcnamehotmenu funcname statements statements 例: Menuitem “My Functions”; hotmenu InitTarget() *waitstate=0 x11; Hotmenu LoadMyProg() GEL_Load(“C:CCStudio_v3.3MyProjectsgpioDebuggpio.out”) 自动加载文件自动加载文件gpio.out 4.
37、2.5-2 关键字dialog 使用关键字使用关键字dialog,向,向GEL菜单添加菜单添加GEL函数,函数, 并为参数输入创建一个并为参数输入创建一个对话框对话框。从。从GEL菜单选择该函数时,菜单选择该函数时, 会出现一个对话窗口,并提示输入参数。会出现一个对话窗口,并提示输入参数。 函数定义时紧跟在参数后面的字符串用来在对话窗口里描述参数。函数定义时紧跟在参数后面的字符串用来在对话窗口里描述参数。 其语法如下:其语法如下: dialog funcName(paramName1 “param1 definition”, paramName2 “param2 definition”,) s
38、tatements Menuitem “My Functions”; dialog InitTarget(StartAddress ”Starting Address”, EndAddress” End Address”) statements; dialog RefreshTarget() statements; 例: 4.2.5-3 关键字slider 使用关键字使用关键字slider,向,向GEL菜单添加菜单添加GEL函数。函数。 当从当从GEL菜单执行该函数时,就会出现滑动条来控制传递给菜单执行该函数时,就会出现滑动条来控制传递给 GEL函数的值。函数的值。 每次移动滑动条,就用新的参数来调用每次移动滑动条,就用新的参数来调用GEL函数,函数, 该参数反映的是滑动条的位置。其格式如下:该参数反映的是滑动条的位置。其格式如下: Slider parma_definition(minVal,maxVal,increment, pageIncrement,paraName) statements; Memuitem ”My Functions”; Slider volumeControl (0,10,1,1,v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江宁能临高生物质发电有限公司招聘3人考试参考题库及答案解析
- 2026陕西西安高新区第五高级中学校园招聘考试参考题库及答案解析
- 2026贵州遵义市赤水市第一批就业见习招募45人考试备考题库及答案解析
- 2026金龄健康产业投资(山东)有限公司招聘考试参考试题及答案解析
- 2026年福建莆田市城厢区教师进修学校附属兴安小学代课教师招聘2人考试参考题库及答案解析
- 2026广西南宁市凤凰岭路幼儿园招聘2人考试备考题库及答案解析
- 2026西安市经开第一中学招聘高中语文教师考试备考题库及答案解析
- 2026年多功能全身按摩垫项目评估报告
- 2026河南焦作市第四中学招聘2人考试参考试题及答案解析
- 2026重庆市綦江区篆塘镇选聘公益性岗位人员1人笔试备考试题及答案解析
- (2026年)中华护理学会团体标准2024针刺伤预防与处理课件
- 2026版离婚协议书(官方标准版)
- 医患沟通学与医学的关系
- 非煤矿山复工安全培训
- 2026届广东省东莞市三校英语高三上期末学业质量监测模拟试题含解析
- 严厉的主奴协议书
- 2026年区块链基础培训课件与可信数据应用场景指南
- 《多元统计分析》(第6版)课件 第1章 多元正态分布及其抽样分布
- 2025年10月自考15040习概论试题及答案
- 2025年初级会计职称《经济法基础》精讲课件第1-4章
- 不良事件上报流程及处理
评论
0/150
提交评论