使用C语言操作事件管理器寄存器_第1页
使用C语言操作事件管理器寄存器_第2页
使用C语言操作事件管理器寄存器_第3页
使用C语言操作事件管理器寄存器_第4页
使用C语言操作事件管理器寄存器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、寄存器的一、寄存器的C C语言访问语言访问二、寄存器文件的空间分配二、寄存器文件的空间分配三、使用三、使用C C语言设置通用定时器语言设置通用定时器四、使用四、使用C C语言设置比较单元语言设置比较单元五、使用五、使用C C语言设置捕获单元与语言设置捕获单元与QEPQEP电路电路第六章第六章 使用使用C语言操作事件管理寄存器语言操作事件管理寄存器 F2812的寄存器能够实现对系统和外设功能的配置与控制,的寄存器能够实现对系统和外设功能的配置与控制,因此在因此在F2812的开发中对寄存器的操作是极为重要的的开发中对寄存器的操作是极为重要的,操作寄存操作寄存器常用的语言有两种器常用的语言有两种

2、,汇编和汇编和C语言语言,而采用而采用C语言语言更加形象更加形象,更更加有助于理解加有助于理解.本讲就以事件管理器寄存器的操作为例本讲就以事件管理器寄存器的操作为例,讲解如讲解如何使用何使用C语言对语言对F2812的寄存器进行操作的寄存器进行操作.一、寄存器的一、寄存器的C语言访问语言访问使用位定义的方法定义寄存器使用位定义的方法定义寄存器 什么是位域什么是位域 所谓位域所谓位域,就是将一个字节中的二进制位划分为几个不同的区域就是将一个字节中的二进制位划分为几个不同的区域,并并说明每个区域的位数说明每个区域的位数,每个域都有一个域名每个域都有一个域名,允许在程序中按域名进行操允许在程序中按域名

3、进行操作作.位域的定义和位域变量的说明同结构体定义和其成员说明类似位域的定义和位域变量的说明同结构体定义和其成员说明类似,其语其语法格式如图法格式如图: Struct 位域结构名位域结构名 类型说明符类型说明符 位域名位域名 1:位域长度:位域长度 类型说明符类型说明符 位域名位域名 2:位域长度:位域长度 类型说明符类型说明符 位域名位域名 n:位域长度:位域长度 使用位定义的方法定义寄存器使用位定义的方法定义寄存器 关于位域,需要注意以下几项关于位域,需要注意以下几项: 类型说明符就是基本的数据类型类型说明符就是基本的数据类型,一般取一般取Unit16,位域名一般根据寄存器功能取位域名一般

4、根据寄存器功能取,也也可以无域名可以无域名,作用起填充或调整位置作用起填充或调整位置;无名的位域不能使用。无名的位域不能使用。 位域的定义必须按照从右往左的顺序进行;位域的定义必须按照从右往左的顺序进行; 一个位域必须存储在同一个字节中一个位域必须存储在同一个字节中,不能跨两个字节不能跨两个字节,这样这样,位域的长度不能大过一位域的长度不能大过一个字节;个字节; 位域的长度不能大于一个字节的长度,也就是说一个位域不能超过位域的长度不能大于一个字节的长度,也就是说一个位域不能超过8位;位; Struct bs int a: 4; int :0; /空域空域 int b:5; /从第从第2个字节开

5、始存放个字节开始存放 int c: 3;; Struct bs int a: 4; int :2; /这这2位不能使用位不能使用 int b:2; /从第从第2个字节开始存放个字节开始存放 int c: 5; int d: 3;; cba 6位位 2位位 8位位位域定义实例位域定义实例struct bs /定义位域定义位域bs int a:8; int b:2; int c:6; /这里的分号不能省略这里的分号不能省略struct bs bs1;/声明声明bs型变量型变量bs1 定义一个位域定义一个位域bs EVA/B中通用定时器全局控制寄存器位域定义中通用定时器全局控制寄存器位域定义Rese

6、rvedT2STAT T1STATT2CTRIPET1CTRIPE T2TOADC T1TOADCT1TOADC TCMPOET2CMPOET1CMPOET2PINT1PIN D15 D14 D13 D12 D11 D10 D9 D8 R-0 R-1 R-1 R/W-1 R/W-1 R/W-0 R/W-0 D7 D6 D5 D4 D3 D2 D1 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0struct GPTCONA_BITS Uint16 T1PIN:2; Uint16 T2PIN:2; Uint16 T1CMPOE:1; Uint16 T2CMPOE:1;

7、 Uint16 TCMPOE:1; Uint16 T1TOADC:2; Uint16 T2TOADC:2; Uint16 T1CTRIPE:1; Uint16 T2CTRIPE:1; Uint16 T1STAT:1; Uint16 T2STAT:1; Uint16 rsvd:1; ;使用位定义的方法定义寄存器可以方便地对寄存器功能使用位定义的方法定义寄存器可以方便地对寄存器功能位位进行操作进行操作,但是有但是有时候如果需要对时候如果需要对整个寄存器整个寄存器进行操作进行操作,就需要对寄存器整体进行共同体的定就需要对寄存器整体进行共同体的定义义.声明共同体声明共同体union GPTCONA_R

8、EG Uint16 all; /可实现对寄存器整体操作可实现对寄存器整体操作 struct GPTCONA_BITS bit; /可实现位操作可实现位操作;union GPTCONA_REG GPTCONA; /声明一个共同体变量声明一个共同体变量GPTCONA EVA/B中通用定时器全局控制寄存器结构体定义中通用定时器全局控制寄存器结构体定义对寄存器定义了共同体之后对寄存器定义了共同体之后,就可以对寄存器进行整体的或者按位就可以对寄存器进行整体的或者按位的操作的操作,这种二选一操作方式的实现正是定义共同体的优势所在这种二选一操作方式的实现正是定义共同体的优势所在. EVA/B中除了通用定时器

9、全局控制寄存器中除了通用定时器全局控制寄存器GPTCONA外外,还有许多其它的还有许多其它的寄存器寄存器,为了便于管理为了便于管理,需要创建一个结构体需要创建一个结构体,用来包含用来包含EV中的中的所有的寄存器所有的寄存器.创建结构体文件创建结构体文件struct EVA_REGS union GPTCONA_REG GPTCONA; Uint16 T1CNT; Uint16 T1CMPR; Uint16 T1PR; union TCONA_REG T1CON; Uint16 T2CNT; Uint16 T2CMPR; Uint16 T2PR; union TCONA_REG T2CON; u

10、nion EXTCONA_REG EXTCON; Uint16 rsvd17; union COMCONA_REG COMCONA; Uint16 rsvd2; union ACTRA_REG ACTR; Uint16 rsvd3; union DBTCON_REG DBTCONA; Uint16 rsvd4; Uint16 CMPR1; U i n t 1 6 C M P R 2 ; 定义了定义了EVA中所有寄存器的结构体中所有寄存器的结构体 Uint16 CMPR3; Uint16 rsvd56; union CAPCONA_REG CAPCON; Uint16 rsvd6; union

11、CAPFIFOA_REG CAPFIFO; Uint16 CAP1FIFO; Uint16 CAP2FIFO; Uint16 CAP3FIFO; Uint16 rsvd7; Uint16 CAP1FBOT; Uint16 CAP2FBOT; Uint16 CAP3FBOT; Uint16 rsvd82; union EVAIMRA_REG EVAIMRA; union EVAIMRB_REG EVAIMRB; union EVAIMRC_REG EVAIMRC; union EVAIFRA_REG EVAIFRA; union EVAIFRB_REG EVAIFRB; union EVAIFR

12、C_REG EVAIFRC; EVA的结构体的结构体EVA_REGS中中,有有的成员是的成员是union类类型的型的,有的是有的是Uint16类型的类型的,union的既的既可以实现整体操作可以实现整体操作,也可以按位操作也可以按位操作,而而Uint16的只能按的只能按位操作位操作. 前边对前边对F2812的寄存器按照的寄存器按照C语言中位域定义和寄存器结构体的方式组织语言中位域定义和寄存器结构体的方式组织了数据结构了数据结构,那么那么,编译器是编译器是 如何把这些变量分配到存储空间的呢如何把这些变量分配到存储空间的呢?这个工作需这个工作需要两步来完成要两步来完成: 第一步第一步:使用使用DA

13、TA_SECTION的方法将寄存器文件分配到数据空间中的某个数据段的方法将寄存器文件分配到数据空间中的某个数据段. 第二步第二步:在在CMD文件文件中中,将这个数据段直接映射到这个外设寄存器所占的存储空间将这个数据段直接映射到这个外设寄存器所占的存储空间.二、寄存器文件的空间分配二、寄存器文件的空间分配在source目录中的DSP28_GlobalVariableDefs.c文件记录了所有寄存器的分配情况事件管理器结构框图通用定时器全比较单元捕获单元我们将按照这3块内容 介绍如何用C语言设置寄存器的方法通用定时器功能概述通用定时器功能概述三、使用三、使用C语言设置通用定时器语言设置通用定时器通

14、用定时器模块包含:通用定时器模块包含:一个一个16位可读位可读/写及增写及增/减的定时器计数减的定时器计数器器TxCNT(x=1,2,4)。)。一个一个16位可读位可读/写定时器比较寄存器写定时器比较寄存器(双缓冲)(双缓冲)TxCMPR;一个一个16位可读位可读/写定时器周期寄存器写定时器周期寄存器(双缓冲)(双缓冲)TxPR;一个一个16位可读位可读/写定时器控制寄存器写定时器控制寄存器TxCON;一个通用定时器比较输出引脚一个通用定时器比较输出引脚TxCMP;用于内部和外部时钟输入的可编程定标用于内部和外部时钟输入的可编程定标器;器;控制和中断逻辑,用于控制和中断逻辑,用于4个可屏蔽中断

15、个可屏蔽中断(上溢、下溢、比较和周期中断);(上溢、下溢、比较和周期中断);输出条件逻辑。输出条件逻辑。红色方框中的寄存器需要在使用中进行设置通用定时器输入与输出通用定时器输入与输出 内部高速外设时钟内部高速外设时钟 HSPCLKHSPCLK 外部时钟外部时钟TCLKINA/BTCLKINA/B 方向输入方向输入TDIRA/BTDIRA/B 复位信号复位信号RESETRESET 比较输出比较输出TxCMP TxCMP ADCADC转换启动信号转换启动信号 提供上溢、下溢、比较匹配提供上溢、下溢、比较匹配和周期匹配信号和周期匹配信号 计数方向标识位计数方向标识位输入输出寄存器名寄存器名 地地 址

16、址功能描述功能描述 TxCNT0 x0000 7401H /7405H /7501H /7505H 计数寄存器计数寄存器TxCMPR0 x0000 7402H /7406H /7502H /7506H 比较寄存器比较寄存器TxPR0 x0000 7403H /7407H /7503H /7507H周期寄存器周期寄存器TxCON0 x0000 7404H /7408H /7504H /7508H控制寄存器控制寄存器GPTCONA/B全局通用定时控制全局通用定时控制寄存器寄存器x = 1,2,3,4 红色表示红色表示的寄存器需要在使用中进行设置的寄存器需要在使用中进行设置通用定时器寄存器通用定时器

17、寄存器通用定时器通用定时器 控制寄存器控制寄存器 TxCON R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0FreeSoft Reserved TMODE1 TMODE0 TPS2 TPS1 TPS0T2SWT1/T4SWT3TENABLETCLKS1 TCLKS0 TCLD1TCLD0TECMPRSELT1PR/SELT3PR D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 选择选择4种计数

18、模式的一种种计数模式的一种 使用内部还是外部时钟使用内部还是外部时钟 确定输入时钟使用的预定标参数确定输入时钟使用的预定标参数 确定比较寄存器重新装载的条件确定比较寄存器重新装载的条件 使能或禁止通用定时器使能或禁止通用定时器 使能或禁止通用定时器的比较操作使能或禁止通用定时器的比较操作 实现功能C语言操作(EVA中T1为例) EvaReg.T1CON.bit.TMODE EvaReg.T1CON.bit.TCLKS10 EvaReg.T1CON.bit.TPS EvaReg.T1CON.bit.TCLD10 EvaReg.T1CON.bit.TENABLE EvaReg.T1CON.bit.

19、TECMPR 具体各位的含义请参见手册的表格直接对下列寄存器赋值即可完成寄存器操作全局通用定时器全局通用定时器 控制寄存器控制寄存器 ( GPTCONA为例为例)ReservedT2STAT T1STATT2CTRIPET1CTRIPE T2TOADC T1TOADCT1TOADC TCMPOET2CMPOET1CMPOET2PINT1PIN D15 D14 D13 D12 D11 D10 D9 D8 R-0 R-1 R-1 R/W-1 R/W-1 R/W-0 R/W-0 D7 D6 D5 D4 D3 D2 D1 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 定

20、时器定时器2的计数状态的计数状态(只读只读) 定时器定时器1的计数状态的计数状态(只读只读) 事件事件2启动启动ADC转换转换 事件事件1启动启动ADC转换转换 定时器比较输出使能位定时器比较输出使能位 定时器定时器2比较输出使能位比较输出使能位 定时器定时器1比较输出使能位比较输出使能位 定时器定时器2比较输出极性比较输出极性 定时器定时器1比较输出极性比较输出极性 实现功能C语言操作(EVA为例) EvaRegs.GPTCONA.bit.T2STAT EvaRegs.GPTCONA.bit.T1STAT EvaRegs.GPTCONA.bit.T2TOADC EvaRegs.GPTCONA

21、.bit.T1TOADC EvaRegs.GPTCONA.bit.TCMPOE EvaRegs.GPTCONA.bit.T2CMPOE EvaRegs.GPTCONA.bit.T1CMPOE EvaRegs.GPTCONA.bit.T2PIN EvaRegs.GPTCONA.bit.T1PIN 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格通用定时器比较寄存器通用定时器比较寄存器 TxCMPR R/W-xTxCMPR D15 D0定时器比较寄存器定时器比较寄存器 x = 1, 2, 3, 4比较寄存器中的值与通用定时器的计数值比较,当比较匹配时,产生:比较寄存器中的值与通

22、用定时器的计数值比较,当比较匹配时,产生:由由GPTCONA/B位的设置决定相关的比较输出信号发生跳变;位的设置决定相关的比较输出信号发生跳变;相应的中断标志被置位;相应的中断标志被置位;若中断没有被屏蔽,则产生一个外设中断请求。若中断没有被屏蔽,则产生一个外设中断请求。 通过设置通过设置TxCON的相关位,可以使能或禁止比较操作。无论在哪种定时器工作的相关位,可以使能或禁止比较操作。无论在哪种定时器工作模式(包括模式(包括QEP模式),比较和输出均可被使能或禁止。模式),比较和输出均可被使能或禁止。 C语言访问:语言访问: EvaReg.T1CMPR (以以EVA中的中的T1为例为例)通用定

23、时器通用定时器 周期寄存器周期寄存器 TxPRTxPR D15 D0 R/W-x定时器比较寄存器定时器比较寄存器 x = 1, 2, 3, 4 周期寄存器的值决定定时器的定时周期。当周期定时器的值与计数器的值匹配周期寄存器的值决定定时器的定时周期。当周期定时器的值与计数器的值匹配时,根据计数器的计数模式,通用定时器复位为时,根据计数器的计数模式,通用定时器复位为0或递减计数。或递减计数。 通用定时器的周期寄存器和比较寄存器都是带映像缓冲的。在一个周期的任何时通用定时器的周期寄存器和比较寄存器都是带映像缓冲的。在一个周期的任何时刻,都可以向这两个寄存器写入新值,实际上,新值是先被写入相应的映像寄

24、存器中刻,都可以向这两个寄存器写入新值,实际上,新值是先被写入相应的映像寄存器中的。对于比较寄存器,只有当的。对于比较寄存器,只有当TxCON寄存器选定的定时器事件发生时,映像寄存器中寄存器选定的定时器事件发生时,映像寄存器中的内容才被载入工作寄存器中;对于周期寄存器,只有当计数器寄存器的内容才被载入工作寄存器中;对于周期寄存器,只有当计数器寄存器TxCNT为为0时,时,映像寄存器的值才载入到工作寄存器中。映像寄存器的值才载入到工作寄存器中。周期寄存器和比较寄存器的双缓冲特点允许应用代码在一个周期的任意时刻更新周期寄存器和比较寄存器的双缓冲特点允许应用代码在一个周期的任意时刻更新周期和比较寄存

25、器,从而可改变下一个定时器周期及周期和比较寄存器,从而可改变下一个定时器周期及PWM脉冲宽度。脉冲宽度。 C语言访问:语言访问: EvaReg.T1PR (以以EVA中的中的T1为例为例)四、使用四、使用C语言设置比较单元语言设置比较单元全比较单元和全比较单元和PWM电路概述电路概述 每一个事件管理器可以同时产生每一个事件管理器可以同时产生8路路PWM信号,包括:信号,包括: 3对由完全比较单元产生的带有可对由完全比较单元产生的带有可编程死区的编程死区的PWM信号信号(如右图所示如右图所示) 由定时器比较器产生的由定时器比较器产生的2路独立的路独立的PWM信号信号(前边通用定时器部分介前边通用

26、定时器部分介绍绍 ) 与比较单元相关的与比较单元相关的PWM电路,主电路,主要包括四个功能单元:要包括四个功能单元: 非对称非对称/对称波形发生器对称波形发生器 可编程死区单元可编程死区单元 输出逻辑输出逻辑 空间矢量(空间矢量(SV)PWM状态机状态机 比较控制寄存器比较控制寄存器COMCONA CENABLECLD1 CLD0SVENABLEACTRLD1ACTRD0PDINTAStatusFCMP3OE FCMP2OE FCMP1OE Reserved C3TRIPE D15 D14 D13 D12 D11 D10 D9 D8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

27、R/W-0 R/W-0 R-0 D7 D6 D5 D4 D3 D2 D1 D0 R/W-0 R/W-0 R/W-0 R-0 R/W-1 R/W-1 R/W-1FCMPOEC2TRIPE C1TRIPE比较器使能比较器使能比较寄存器比较寄存器CMPRx重新装载条件重新装载条件使能空间向量使能空间向量PWM模式模式行为控制寄存器重新装载条件行为控制寄存器重新装载条件全比较输出使能全比较输出使能PDPINTA pin的当前状态的当前状态 实现功能C语言操作(EVA中T1为例)EvaRegs.COMCONA.bit.CENABLEEvaRegs.COMCONA.bit.CLDEvaRegs.COMCO

28、NA.bit.SVENABLEEvaRegs.COMCONA.bit.ACTRLDEvaRegs.COMCONA.bit.FCOMPOEEvaRegs.COMCONA.bit.PDPINTA STATUS 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格比较方式控制寄存器比较方式控制寄存器ACTRA SVRDIRD2D1D0 CMP6ACT1 D15 D14 D13 D12 D11 D10 D9 D8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 D7 D6 D5 D4 D3 D2 D1 D0CMP6ACT0CMP5ACT1

29、CMP5ACT0CMP4ACT1CMP4ACT0CMP3ACT1CMP3ACT0CMP2ACT1CMP2ACT0CMP1ACT1CMP1ACT0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0比较输出引脚比较输出引脚1上的输出极性上的输出极性比较输出引脚比较输出引脚2上的输出极性上的输出极性比较输出引脚比较输出引脚3上的输出极性上的输出极性比较输出引脚比较输出引脚4上的输出极性上的输出极性比较输出引脚比较输出引脚5上的输出极性上的输出极性比较输出引脚比较输出引脚6上的输出极性上的输出极性空间矢量位空间矢量位空间矢量空间矢量PWM转动方向转动方向

30、实现功能C语言操作(EVA为例)EvaRegs.ACTR.bit.CMP1ACTEvaRegs.ACTR.bit.CMP2ACTEvaRegs.ACTR.bit.CMP3ACTEvaRegs.ACTR.bit.CMP4ACTEvaRegs.ACTR.bit.CMP5ACTEvaRegs.ACTR.bit.CMP6ACTEvaRegs.ACTR.bit.DEvaRegs.ACTR.bit.SVRDIR 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格死区单元的输入和输出死区单元的输入和输出 防止防止在任何操作条件下,每个单元产生的两路在任何操作条件下,每个单元产生的两路PWM

31、信号同时信号同时 打开被控功率桥的上、下臂。打开被控功率桥的上、下臂。 输入:输入:由比较单元由比较单元1、2和和3的对称的对称/非对称波形产生器产生的非对称波形产生器产生的PH1、PH2和和PH3; 输出:输出:为为DTPH1、DTPH1_;DTPH2、DTPH2_及及DTPH3、DTPH3_。 对于每一个输入信号对于每一个输入信号PHx,产生两个输出信号,产生两个输出信号DTPHx和和DTPHx_ 当比较单元和其相关输出的死区未被使能时,这两个信号完全相同。当比较单元和其相关输出的死区未被使能时,这两个信号完全相同。当比较单元的死区使能时,两个信号的跳变沿被一段叫做死区的时间间隔分开。当比

32、较单元的死区使能时,两个信号的跳变沿被一段叫做死区的时间间隔分开。 死区的值由死区的值由DBTCONA/B中的相应位来控制。中的相应位来控制。假设假设DBTCONA/B 的位的位118的值为的值为m,位,位42中相应的预定标参数为中相应的预定标参数为x/p,则死区值为(,则死区值为(pm)个)个 CPU时钟周期。如时钟周期。如P178(P187)表和图所示。)表和图所示。死区定时器控制寄存器死区定时器控制寄存器ReservedDBT3DBT2DBT0EDBT3EDBT2 EDBT1 DBTPS2DBTPS1 D15 D12 D11 D10 D9 D8 R-0 R/W-0 R/W-0 R/W-0

33、 R/W-0 D7 D6 D5 D4 D3 D2 D1 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0DBT1DBTPS0Reserved实现功能C语言操作(EVA为例)死区定时器周期死区定时器周期死区定时器死区定时器3使能位使能位死区定时器死区定时器2使能位使能位死区定时器死区定时器1使能位使能位死区定时器预定标因子死区定时器预定标因子 EvaRegs.DBTCONA.bit.DBTEvaRegs.DBTCONA.bit.EDBT3EvaRegs.DBTCONA.bit.EDBT2EvaRegs.DBTCONA.bit.EDBT1 EvaRegs.DBT

34、CONA.bit.DBTPS 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格捕获单元结构特征捕获单元结构特征 用于捕获输入引脚上的跳变用于捕获输入引脚上的跳变五、使用五、使用C语言设置捕获单元语言设置捕获单元EVA/B中的每个捕获单元均具有中的每个捕获单元均具有 1个个16位的捕获控制寄存器位的捕获控制寄存器CAPCONA/B 1个个16位的捕获位的捕获FIFO状态寄存器状态寄存器CAPFIFOA/B 1个个16位位2级深的级深的FIFO堆栈和堆栈和1个施密特触发的捕获输入引脚个施密特触发的捕获输入引脚CAPx(所有的输入(所有的输入 引脚都由引脚都由CPU时钟同步,为了

35、捕获到输入跳变信号,输入的当前电平必须保持两时钟同步,为了捕获到输入跳变信号,输入的当前电平必须保持两 个个CPU时钟周期。)时钟周期。)输入引脚输入引脚CAP1/2,CAP3/4也可用作也可用作QEP电路的输入引脚电路的输入引脚通用定时器通用定时器1和和2(EVA),通用定时器),通用定时器3和和4(EVB)可选择作为捕获单元时基)可选择作为捕获单元时基EVA模块的模块的CAP1/2必须共用一个定时器(必须共用一个定时器(1或或2),),CAP3单独使用一个定时器单独使用一个定时器 (2或或1);); EVB模块的模块的CAP3/4必须共用一个定时器(必须共用一个定时器(3或或4),),CA

36、P6单独使用一个定时器单独使用一个定时器 (4或或3)。)。 捕获单元控制寄存器捕获单元控制寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0CAPRESCAP12ENCAP3EN Reserved D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0CAP3TSELCAP12TSELCAP3TOADCCAP1EDGECAP2EDGECAP3EDGEReserved R/W-0 R/W-0 R/W-0 R/W-0实现功能C语言操作(EVA为例)捕获单元复位捕获单元复位捕获单元捕获单元1和和2使能使能捕

37、获单元捕获单元3使能使能捕获单元捕获单元3选择定时器选择定时器捕获单元捕获单元1和和2选择定时器选择定时器捕获单元捕获单元3事件启动事件启动ADC捕获单元捕获单元1边沿检测控制位边沿检测控制位捕获单元捕获单元2边沿检测控制位边沿检测控制位捕获单元捕获单元3边沿检测控制位边沿检测控制位 EvaRegs.CAPCON.bit.CAPRES EvaRegs.CAPCON.bit.CAP12EN EvaRegs.CAPCON.bit.CAP3EN EvaRegs.CAPCON.bit.CAP3TSEL EvaRegs.CAPCON.bit.CAP12TSEL EvaRegs.CAPCON.bit.CAP3TOADC EvaRe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论