使用C语言操作事件管理器的寄存器分解课件

上传人:壹****1 文档编号:568424566 上传时间:2024-07-24 格式:PPT 页数:25 大小:876KB
返回 下载 相关 举报
使用C语言操作事件管理器的寄存器分解课件_第1页
第1页 / 共25页
使用C语言操作事件管理器的寄存器分解课件_第2页
第2页 / 共25页
使用C语言操作事件管理器的寄存器分解课件_第3页
第3页 / 共25页
使用C语言操作事件管理器的寄存器分解课件_第4页
第4页 / 共25页
使用C语言操作事件管理器的寄存器分解课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《使用C语言操作事件管理器的寄存器分解课件》由会员分享,可在线阅读,更多相关《使用C语言操作事件管理器的寄存器分解课件(25页珍藏版)》请在金锄头文库上搜索。

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; Uint16 CMPR2; 定义了定义了EVA中所有寄存器的结构体中所有寄存器的结构体 Uint16 CMPR3; Uint16 rsvd56; union CAPCONA_REG CAPCON; Uint16 rsvd6; union CAPFIFOA_R

11、EG 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 EVAIFRC_REG EVAI

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

13、的方法将寄存器文件分配到数据空间中的某个数据段的方法将寄存器文件分配到数据空间中的某个数据段. 第二步第二步:在在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转换启动信号转换启动信号 提供上溢、下溢、比较匹配和提供上溢、下溢、比较匹配和周期匹配信号周期匹配信号 计数方向标识位计数方向标识位输入输出寄存器名寄存器名 地地 址址功能描述功能描述 T

16、xCNT0x0000 7401H /7405H /7501H /7505H 计数寄存器计数寄存器TxCMPR0x0000 7402H /7406H /7502H /7506H 比较寄存器比较寄存器TxPR0x0000 7403H /7407H /7503H /7507H周期寄存器周期寄存器TxCON0x0000 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为例) 具体各位的含义请参见手册的表格直接对下列寄存器赋值即可完成寄存器操作全局通用定时器全局通用定时器 控制寄存器控制寄存器 ( GPTCONA为例为例)ReservedT2STAT T1STATT2CTRIPET1CTRIPE T2TOADC T1TOADCT1TOADC TCMPOET2CMPOET1

19、CMPOET2PINT1PIN 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 定时器定时器2的计数状态的计数状态(只读只读) 定时器定时器1的计数状态的计数状态(只读只读) 事件事件2启动启动ADC转换转换 事件事件1启动启动ADC转换转换 定时器比较输出使能位定时器比较输出使能位 定时器定时器2比较输出使能位比较输出使能位 定时器定时器1比较输出使能位比较输出使能位 定时器定时器2比较输出

20、极性比较输出极性 定时器定时器1比较输出极性比较输出极性 实现功能C语言操作(EVA为例) 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格通用定时器比较寄存器通用定时器比较寄存器 TxCMPR R/W-xTxCMPR D15 D0定时器比较寄存器定时器比较寄存器 x = 1, 2, 3, 4比较寄存器中的值与通用定时器的计数值比较,当比较匹配时,产生:比较寄存器中的值与通用定时器的计数值比较,当比较匹配时,产生:由由GPTCONA/B位的设置决定相关的比较输出信号发生跳变;位的设置决定相关的比较输出信号发生跳变;相应的中断标志被置位;相应的中断标志被置位;若中断没有被屏蔽

21、,则产生一个外设中断请求。若中断没有被屏蔽,则产生一个外设中断请求。 通通过过设设置置TxCON的的相相关关位位,可可以以使使能能或或禁禁止止比比较较操操作作。无无论论在在哪哪种种定定时时器器工工作作模式(包括模式(包括QEP模式),比较和输出均可被使能或禁止。模式),比较和输出均可被使能或禁止。 C语言访问:语言访问: EvaReg.T1CMPR (以以EVA中的中的T1为例为例)通用定时器通用定时器 周期寄存器周期寄存器 TxPRTxPR D15 D0 R/W-x定时器比较寄存器定时器比较寄存器 x = 1, 2, 3, 4 周期寄存器的值决定定时器的定时周期。当周期定时器的值与计数器的值

22、匹配周期寄存器的值决定定时器的定时周期。当周期定时器的值与计数器的值匹配时,根据计数器的计数模式,通用定时器复位为时,根据计数器的计数模式,通用定时器复位为0或递减计数。或递减计数。 通通用用定定时时器器的的周周期期寄寄存存器器和和比比较较寄寄存存器器都都是是带带映映像像缓缓冲冲的的。在在一一个个周周期期的的任任何何时时刻刻,都都可可以以向向这这两两个个寄寄存存器器写写入入新新值值,实实际际上上,新新值值是是先先被被写写入入相相应应的的映映像像寄寄存存器器中中的的。对对于于比比较较寄寄存存器器,只只有有当当TxCON寄寄存存器器选选定定的的定定时时器器事事件件发发生生时时,映映像像寄寄存存器器

23、中中的的内内容容才才被被载载入入工工作作寄寄存存器器中中;对对于于周周期期寄寄存存器器,只只有有当当计计数数器器寄寄存存器器TxCNT为为0时时,映像寄存器的值才载入到工作寄存器中。映像寄存器的值才载入到工作寄存器中。周周期期寄寄存存器器和和比比较较寄寄存存器器的的双双缓缓冲冲特特点点允允许许应应用用代代码码在在一一个个周周期期的的任任意意时时刻刻更更新新周期和比较寄存器,从而可改变下一个定时器周期及周期和比较寄存器,从而可改变下一个定时器周期及PWM脉冲宽度。脉冲宽度。 C语言访问:语言访问: EvaReg.T1PR (以以EVA中的中的T1为例为例)四、使用四、使用C语言设置比较单元语言设

24、置比较单元全比较单元和全比较单元和PWM电路概述电路概述 每每一一个个事事件件管管理理器器可可以以同同时时产产生生8路路PWM信号,包括:信号,包括: 3对对由由完完全全比比较较单单元元产产生生的的带带有有可可编程死区的编程死区的PWM信号信号(如右图所示如右图所示) 由由定定时时器器比比较较器器产产生生的的2路路独独立立的的PWM信信号号(前前边边通通用用定定时时器器部部分分介介绍绍 ) 与与比比较较单单元元相相关关的的PWM电电路路,主主要包括四个功能单元:要包括四个功能单元: 非对称非对称/对称波形发生器对称波形发生器 可编程死区单元可编程死区单元 输出逻辑输出逻辑 空间矢量(空间矢量(

25、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 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比较器使能比较器使能比较寄存器

26、比较寄存器CMPRx重新装载条件重新装载条件使能空间向量使能空间向量PWM模式模式行为控制寄存器重新装载条件行为控制寄存器重新装载条件全比较输出使能全比较输出使能PDPINTA pin的当前状态的当前状态 实现功能C语言操作(EVA中T1为例)EvaRegs.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

27、-0 R/W-0 R/W-0 D7 D6 D5 D4 D3 D2 D1 D0CMP6ACT0CMP5ACT1CMP5ACT0CMP4ACT1CMP4ACT0CMP3ACT1CMP3ACT0CMP2ACT1CMP2ACT0CMP1ACT1CMP1ACT0 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上的输出极性上的输出极性比

28、较输出引脚比较输出引脚6上的输出极性上的输出极性空间矢量位空间矢量位空间矢量空间矢量PWM转动方向转动方向 实现功能C语言操作(EVA为例) 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格死区单元的输入和输出死区单元的输入和输出 防止防止在任何操作条件下,每个单元产生的两路在任何操作条件下,每个单元产生的两路PWM信号同时信号同时 打开被控功率桥的上、下臂。打开被控功率桥的上、下臂。 输入:输入:由比较单元由比较单元1、2和和3的对称的对称/非对称波形产生器产生的非对称波形产生器产生的PH1、PH2和和PH3; 输出:输出:为为DTPH1、DTPH1_;DTPH2、DTP

29、H2_及及DTPH3、DTPH3_。 对于每一个输入信号对于每一个输入信号PHx,产生两个输出信号,产生两个输出信号DTPHx和和DTPHx_ 当比较单元和其相关输出的死区未被使能时,这两个信号完全相同。当比较单元和其相关输出的死区未被使能时,这两个信号完全相同。当比较单元的死区使能时,两个信号的跳变沿被一段叫做死区的时间间隔分开。当比较单元的死区使能时,两个信号的跳变沿被一段叫做死区的时间间隔分开。 死区的值由死区的值由DBTCONA/B中的相应位来控制。中的相应位来控制。假设假设DBTCONA/B 的位的位118的值为的值为m,位,位42中相应的预定标参数为中相应的预定标参数为x/p,则死

30、区值为(,则死区值为(pm)个)个 CPU时钟周期。如时钟周期。如P178(P187)表和图所示。)表和图所示。死区定时器控制寄存器死区定时器控制寄存器ReservedDBT3DBT2DBT0EDBT3EDBT2 EDBT1 DBTPS2DBTPS1 D15 D12 D11 D10 D9 D8 R-0 R/W-0 R/W-0 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 R-0DBT1DBTPS0Reserved实现功能C语言操作(EVA为例)死区定时器周期死区定时器周期死区定时器死区定时器3使能

31、位使能位死区定时器死区定时器2使能位使能位死区定时器死区定时器1使能位使能位死区定时器预定标因子死区定时器预定标因子 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格捕获单元结构特征捕获单元结构特征 用于捕获输入引脚上的跳变用于捕获输入引脚上的跳变五、使用五、使用C语言设置捕获单元语言设置捕获单元EVA/B中的每个捕获单元均具有中的每个捕获单元均具有 1个个16位的捕获控制寄存器位的捕获控制寄存器CAPCONA/B 1个个16位的捕获位的捕获FIFO状态寄存器状态寄存器CAPFIFOA/B 1个个16位位2级深的级深的FIFO堆栈和堆栈和1个施密特触发的捕获输入引脚个施密特

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

33、VB模块的模块的CAP3/4必须共用一个定时器(必须共用一个定时器(3或或4),),CAP6单独使用一个定时器单独使用一个定时器 (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实

34、现功能C语言操作(EVA为例)捕获单元复位捕获单元复位捕获单元捕获单元1和和2使能使能捕获单元捕获单元3使能使能捕获单元捕获单元3选择定时器选择定时器捕获单元捕获单元1和和2选择定时器选择定时器捕获单元捕获单元3事件启动事件启动ADC捕获单元捕获单元1边沿检测控制位边沿检测控制位捕获单元捕获单元2边沿检测控制位边沿检测控制位捕获单元捕获单元3边沿检测控制位边沿检测控制位 直接对下列寄存器赋值即可完成寄存器操作具体各位的含义请参见手册的表格捕获单元捕获单元FIFO状态寄存器状态寄存器实现功能C语言操作(EVA为例)捕获单元捕获单元1FIFO状态状态捕获单元捕获单元2FIFO状态状态捕获单元捕获单

35、元3FIFO状态状态 Reserved CAP3FIFO CAP2FIFO CAP1FIFOD15 D14 D13 D12 D11 D10 D9 D8 D7 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0Reserved具体各位的含义请参见手册的表格正交编码脉冲(正交编码脉冲(QEP)电路)电路 正交编码脉冲(正交编码脉冲(QEP)是两个频率变化且正交的脉冲(相位差)是两个频率变化且正交的脉冲(相位差90度,即度,即1/4个周期)。个周期)。 每个每个EV模块都有一个模块都有一个QEP电路,如果电路,如果QEP电路被使能,可以对电路被使能,可以对CAP1/QEP1和和CAP2

36、/QEP2或或CAP4/QEP3和和CAP5/QEP4引脚上的正交编码脉冲进行解码和计数。引脚上的正交编码脉冲进行解码和计数。 应用:应用:QEP电路可用于连接一个广电编码器以获得旋转机器的位置和速率等信息电路可用于连接一个广电编码器以获得旋转机器的位置和速率等信息。QEP电路的工作原理电路的工作原理QEPQEP检检测测电电路路用用来来检检测测两两个个输输入入序序列列中中的的哪哪一一个个是是先先导导序序列列,从从而而产产生生方方向向信信号号作作为为所所选选定定时时器器的的方方向向输输入入。如如果果CAP1/QEP1CAP1/QEP1(EVBEVB模模块块是是CAP4/QEP3CAP4/QEP3

37、)引引脚脚的的脉脉冲冲输输入入是是先先导导序序列列(上上升升沿沿比比另另一一个个早早1/41/4周周期期),则则定定时时器器进进行行增增计计数数;反反之之,若若CAP2/QEP2CAP2/QEP2(EVBEVB模模块块是是CAP5/QEP4CAP5/QEP4)引引脚脚的的脉脉冲冲输输入入是是先先导导序序列列,则则定定时时器器进进行行减减计计数数。同同时时,QEPQEP电电路路对对这这两两个个正正交交脉脉冲冲输输入入信信号号的的上上升升沿沿和和下下降降沿沿都都进进行行计计数数,以以此此产产生生的的时时钟钟频频率率CLKCLK是是每每个个输输入入序序列列的的4 4倍倍,这这个个4 4倍倍频频的的CLKCLK就就作为定时器作为定时器2 2或或4 4的输入时钟。的输入时钟。 窗子和镜子都是玻璃做的窗子和镜子都是玻璃做的, ,区别在于镜子多了一层薄薄的银子区别在于镜子多了一层薄薄的银子, ,但就是因为这一点银子但就是因为这一点银子, ,便叫你只看到自己而看不到世界了便叫你只看到自己而看不到世界了生命是一团欲望生命是一团欲望, ,欲望不满足便痛苦欲望不满足便痛苦, ,满足便无聊满足便无聊. .人生就在痛苦和无聊之间摇摆人生就在痛苦和无聊之间摇摆

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号