1 / 144

第 9 章 F2812 事件管理器( EVA/B )

第 9 章 F2812 事件管理器( EVA/B ). 张云洲 2010.11.26. 章节结构. 9.1 事件管理器概述 9.2 通用定时器 9.3 比较单元及 PWM 输出 9.4 捕获单元 9.5 正交编码脉冲单元 9.6 事件管理器中断. 9.1 事件管理器概述. F281x 包含两个事件管理器 EVA 和 EVB ,每个事件管理器包括通用定时器( GP )、比较器、 PWM 单元,捕获单元以及正交编码脉冲电路( QEP )。

fayre
Download Presentation

第 9 章 F2812 事件管理器( EVA/B )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第9章 F2812事件管理器(EVA/B) 张云洲 2010.11.26

  2. 章节结构 9.1 事件管理器概述 9.2 通用定时器 9.3 比较单元及PWM输出 9.4 捕获单元 9.5 正交编码脉冲单元 9.6 事件管理器中断

  3. 9.1 事件管理器概述 • F281x 包含两个事件管理器EVA 和EVB,每个事件管理器包括通用定时器(GP)、比较器、PWM 单元,捕获单元以及正交编码脉冲电路(QEP)。 • PWM 单元主要应用: (1) 产生脉宽调制信号控制数字电机;(2) 直接用PWM输出作为数模转换使用。事件管理器的捕获单元用来对外部硬件信号的时间测量,利用6个边沿检测单元测量外部信号的时间差,从而可以确定电机转子的转速。 • 正交编码脉冲电路(QEP)根据增量编码器信号获得电机转子的速度和方向信息。 • 事件管理器EVA 和EVB 有相同的外设寄存器,EVA 的起始地址是7400H,EVB 的起始地址为7500H。功能基本相同,只是模块的外部接口和信号有所不同。

  4. 事件管理器概述(续) • 每个事件管理器都有自己的控制逻辑模块,逻辑模块能够响应来自C28x 的外设中断扩展单元的中断请求,从而实现事件管理器的各种操作模式。 • 在特定操作模式下,事件管理器可以利用两个外部信号“TCLKINA”和“TDIRA”进行控制;还可以根据内部事件自动的启动ADC 转换,而不像其他通用的微处理器需要专门的中断服务程序完成。 • 通用定时器1 和2 是2个带有可配置输出信号(T1PWM /T1CMP 和T2PWM/T2CMP)的16 位定时器,也可以直接在DSP内部使用。比较单元1 ~3 以通用定时器1 作为时钟基准,产生6 路PWM 输出控制信号。3 个独立的捕获单元CAP1,2 和3 可以用来进行时间和速度估计。光电编码脉冲电路重新定义了捕获单元CAP1,2 和3 的输入功能,可以直接检测脉冲的边沿。

  5. / TCLKINA / TDIRA PWM Circuits Output Logic PWM Circuits Output Logic PWM Circuits Output Logic GP Timer 2 Compare Compare Unit 1 GP Timer 1 Compare GP Timer 2 Compare Unit 2 GP Timer 1 QEP Circuit CLK Compare Unit 3 DIR MUX CAP1/QEP1 CAP2/QEP2 CAP3/QEPI1 事件管理器功能框图 (EVA) Reset PIE 2 EV Control Registers / Logic ADC Start Output Logic T1PWM_T1CMP PWM1 PWM2 PWM3 Data Bus PWM4 PWM5 PWM6 Output Logic T2PWM_T2CMP • Capture Units • •

  6. 9.2 通用定时器 • 每个事件管理器有两个通用定时器,EVA使用GP1,GP2定时器,EVB使用GP3,GP4定时器。通用定时器可以独立使用,其比较寄存可以产生PWM波形。当定时器工作在增或增减模式时,有3种连续工作方式。通用定时器还为事件管理器的子模块提供基准时钟。 • 全局控制寄存器GPTCONA/B确定通用定时器实现具体的定时器任务需要采取的操作方式,并设置定时器的计数方向。 • 定时器的时钟源可以取自外部输入信号,QEP单元或者内部时钟。当选择内部时钟时,定时器采用HSPCLK作为输入,计算定时器的周期时必须考虑高速外设时钟预定标寄存器的设置。

  7. TCLKS 1-0 M U X TxCON . 5 - 4 Shadowed Compare Register Clock Prescaler Compare Logic TPS 2-0 TxCON . 10 - 8 Period Register Shadowed 通用定时器GP的功能框图 Internal (HSPCLK) TxCMPR . 15 - 0 TxCNT . 15 - 0 GPTCONA TxPWM_ TxCMP Output Logic 16 - Bit Timer Counter External (1/4) QEP Note: x = 1 or 2 TxPR . 15 - 0

  8. 无延迟计数 • 计数值= TxPR+1 GP 连续增计数模式 (Used for Asymmetric PWM Waveforms) This example: TxCON.3-2 = 00 (下溢时 TxCMPR重载) TxPR = 3 TxCMPR = 1 (initially) Prescale = 1 CPU writes a 2 to compare reg. buffer anytime here TxCMPR=2 3 3 3 2 1 1 0 0 0 TxCNT Reg. TxPWM/TxCMP (active high) CPUCLK

  9. 无延迟增减 • 增减计数周期 is 2*TxPR TxCMPR =2 TxCMPR =1 TxCMPR =1 GP 连续增/减计数模式 (Used for Symmetric PWM Waveforms) This example: TxCON.3-2 = 01 (==00/PR.reg) TxPR = 3 TxCMPR = 1 (initially) Prescale = 1 PR.reg PR.reg 3 3 2 2 2 2 1 1 1 1 00 0 0 0 TxCNT Reg. 00 TxPWM/TxCMP (active high) CPUCLK

  10. 后台功能 • C28x的定时器提供后台功能,定时器1和定时器2都有各自的比较寄存器和周期寄存器。 • 后台寄存器(类似于双缓冲)的优点就是能够在当前周期为下一个周期设置相应的寄存器值,下一个定时周期会将后台寄存器的值自动的装载到相应的寄存器中。 • 如果没有后台寄存器,需要更新寄存器的值时就必须等待当前周期结束,然后触发高优先级的中断调整寄存器的值,这样就会影响定时器的运行。

  11. 9.2.1 通用定时器计数模式 • 每一个通用定时器支持停止/保持、连续递增计数、双向增/减计数和连续增/减计数4种操作模式,可以通过控制寄存器TxCON中的MODE1-TMODE0位设置通用定时器的计数模式。 • 可以通过定时器使能位TENABLE使能或禁止定时器的计数操作。当定时器被禁止时,定时器的计数器操作也被禁止,并且定时器的预定标器被复位为x/1。当使能定时器时,定时器按照寄存器TxCON中的TMODE1-TMODE0位确定的计数模式工作并开始计数。

  12. 9.2.2 定时器的比较操作 每一个通用定时器有1个比较寄存器TxCMPR和1个PWM 输出引脚TxPWM,当定时器计数器的值与比较寄存器的 值相等时,就产生比较匹配。可通过TxCON[1]位使能比 较操作,如果被使能,产生比较匹配后将会: • 匹配一个时钟周期后,定时器比较中断标志位置位。 • 匹配一个CPU时钟周期后,根据寄存器GPTCONA/B相应位的配置情况,PWM的输出将产生跳变。 • 如果比较中断标志位已通过设置寄存器GPTCONA/B中的相应位启动AD转换器,则比较中断位置位的同时产生模数转换启动信号。 • 如果比较中断未被屏蔽,将产生一个外设中断申请。

  13. 通用定时器比较操作功能框图

  14. PR。reg= Comp1 PR。reg= Comp2 PWM比较输出和中断 PWM周期 #2 新周期自动加载 TxCON.3-2= 00 PR=Comp1 2T PWM周期 #1 定时器计数值 T T T Comp2 Comp1 TxCMP/TxPWM (active high) TxCMP/TxPWM (active low) 比较中断 周期中断 下溢中断

  15. Register Address Description GPTCONA 0x007400 GP 控制寄存器A T1CNT 0x007401 定时器1计数寄存器 T1CMPR 0x007402 定时器1比较寄存器 T1PR 0x007403 定时器1周期寄存器 T1CON 0x007404 定时器1控制寄存器 T2CNT 0x007405 定时器2计数寄存器 T2CMPR 0x007406 定时器2比较寄存器 T2PR 0x007407 定时器2比较寄存器 T2CON 0x007408 定时器2控制寄存器 GPTCONB 0x007500 GP 控制寄存器B T3CNT 0x007501 定时器3计数寄存器 T3CMPR 0x007502 定时器3比较寄存器 T3PR 0x007503 定时器3周期寄存器 T3CON 0x007504 寄存器3控制寄存器 T4CNT 0x007505 定时器4计数寄存器 T4CMPR 0x007506 定时器4比较寄存器 T4PR 0x007507 定时器4周期寄存器 T4CON 0x007508 定时器4控制寄存器 EVA EVB GP 定时器寄存器 EXTCONA 0x007409 / EXTCONB 0x007509 ;外部控制寄存器

  16. GP Timer 2 Compare Compare Unit 1 GP Timer 2 Compare Unit 2 QEP Circuit Compare Unit 3 MUX EVA全比较单元 Reset PIE 2 / TCLKINA / TDIRA EV Control Registers / Logic ADC Start Output Logic GP Timer 1 Compare T1PWM_T1CMP GP Timer 1 • PWM1 PWM Circuits Output Logic PWM2 PWM3 PWM Circuits Output Logic Data Bus PWM4 PWM5 PWM Circuits Output Logic PWM6 Output Logic T2PWM_T2CMP CLK DIR • CAP1/QEP1 Capture Units • CAP2/QEP2 • CAP3/QEPI1

  17. 什么是PWM ? • PWM (脉宽幅度调制) • 固定的载波频率 • 固定的放大系数 • 脉冲宽度正比于瞬时放大系数 • 能量损失趋于0 • PAM(脉冲幅度调制) • 固定的宽度,变化的幅值

  18. t Original Signal t t T T PWM PAM PWM 信号调制 same areas (energy)

  19. PWM Motor控制的优势 • 功率转换器件是晶体管 • 在线性区难以控制 • 在饱和区容易控制 • PWM是数字信号,容易在DSP实现 DC Supply DC Supply ? PWM Desired signal to motor phase PWM approx. of desired signal Unknown Gate Signal Gate Signal Known with PWM

  20. 9.2.2.3 TxPWM输出非对称波形 • 根据通用定时器使用的计数模式,非对称/对称波形发生器产生一个非对称或对称的PWM波形。当通用定时器处于连续递增计数模式时,产生非对称波形。在这种模式下,波形发生器产生的波形输出根据下面情况有所变化: • 计数操作开始前为0; • 直到匹配发生时保持不变; • 在比较匹配时PWM输出信号反转; • 保持不变直到周期结束; • 若下一周期新的比较寄存器值不是0,则在匹配周期结束的周期复位清零。 • 在周期开始时如果比较器周期寄存器的值是0,则整个计数周期内输出为1保持不变;如果下一周期新的比较值为0,则输出不会被复位为0。如果比较值大于周期寄存器中的值,则整个周期内输出为0。如果比较等于周期寄存器的值,对一个定标时钟输入来说输出是1。 • 对于非对称PWM波形,改变比较寄存器的值仅仅影响PWM脉冲的一侧。

  21. TPWM 非对称 PWM 波形 Period Compare Counter Tpwm / Tcmp Pin (active high) Caused by Period match (toggle output in Asym mode only) Caused by Compare match

  22. 9.2.2.4 TxPWM输出对称波形 • 当通用定时器处于连续递增/递减计数模式时,产生对称波形。在这种计数模式下,波形发生器的输出状态与下列状态有关: • 计数操作开始前为0; • 第一次比较匹配前保持不变; • 第一次比较匹配时PWM输出信号反转; • 第二次比较匹配前保持不变; • 第二次比较匹配时PWM输出信号反转; • 周期结束前保持不变; • 如果没有第二次匹配且下一周期新的比较值不为0,则在周期结束后复位为0。 • 如果比较值在周期开始时为0,则周期开始时输出为1,直到第二次比较匹配发生后一直保持不变。如果比较值在后半周期是0,在第一次跳变后,直到周期结束将输出保持1。在这种情况下,如果下一周期新的比较值仍然为0,则输出不会复位为0。这会重复出现以保证能够产生占空比从0%到100%的无毛刺的PWM脉冲。如果前半周期的比较值大于等于周期寄存器的值,则不会产生第一次跳变。然而在后半周期发生比较匹配时,输出仍将跳变。这种错误的输出跳变经常是由应用程序计算不正确引起的,它将会在周期结束时被纠正,因为除非下一周期的比较值为0,输出才会被复位为0,否则输出将保持1,这将把波形发生器的输出重新置为正确的状态。

  23. General Purpose Timer Full Compare Units PWM1 Compare Compare Compare Period Compare Counter PWM2 PWM3 TPWM/TCMP Pin PWM4 PWM5 PWM6 对称PWM 波形 TPWM Period Compare Counter TPWM /TCMP Pin (active high) Interrupts

  24. 9.2.2.1 定时器PWM 输出(TxPWM)逻辑控制 • 输出逻辑进一步对PWM波形进行设置,适当配置GPTCONA/B寄存器,可以设定PWM的输出为高电平有效、低电平有效、强制低或强制高。 • 当PWM输出为高电平有效时,它的极性与相关的非对称/对称波形发生器的极性相同。当PWM输出为低电平有效时,它的极性与相关的非对称/对称波形发生器的极性相反。如果GPTCONA/B相应的控制位规定PWM输出为强制高(或低)后,PWM输出就会立即置1(或清0)。 • 总之,在正常的计数模式下,如果比较已经被使能,则通用定时器的PWM输出就会发生变化。

  25. 通用定时器比较输出

  26. 高阻状态 • 基于定时器计数模式和输出逻辑的非对称/对称波形发生器同样适用于比较单元。当出现下列情况之一时,所有通用定时器的PWM输出都被置成高阻状态: • 软件将GPTCONA/B[6]清零; • PDPINTx引脚被拉低而且没有屏蔽; • 任何一个复位信号发生; • 软件将TxCON[1] 清零。

  27. 连续增计数模式下的通用定时器比较PWM输出

  28. 9.2.2.5 通用定时器应用举例 • 一般的通用定时器可以提供周期测量、脉冲宽度测量、产生脉冲等多种工作模式,C28x • 的事件管理器模块提供的定时器基本上也可以实现这几种工作模式。定时器在定时计数过程 • 中可以利用处理器内部的可编程时钟,也可以通过外部TCLKINA(B)作为计数时钟。定 • 时器在产生PWM信号输出时,可以结合比较单元产生电机控制系统需要的脉宽调制信号, • 也可以独立使用控制定时器本身的PWM信号输出(T1PWM_T1CMP和T2PWM_T2CMP)。 • 用通用定时器产生PWM输出,可以采用连续递增或连续增/减计数模式,当选用连续递 • 增计数模式时,可产生边沿触发或非对称PWM波形;当选用连续增/减计数模式时,可产生 • 对称PWM波形,可以通过下列操作产生PWM信号: • 􀁺 根据所需的PWM(载波)周期设置TxPR; • 􀁺 设置TxCON寄存器,确定计数器模式和时钟源,并启动PWM输出操作; • 􀁺 将软件计算出来的PWM脉冲宽度(占空比)装载到TxCMPR寄存器中。 • 如果选用连续递增计数模式来产生非对称PWM波形,把所需的PWM周期除以通用定时 • 器输入时钟的周期然后减1便得出定时器的周期。如果选用连续增/减计数模式产生非对称 • PWM波形,把所需的PWM周期除以2倍的通用定时器输入时钟周期就得出定时器的周期。 • 在程序运行的过程中,软件可以计算PWM的占空比,适时的刷新比较寄存器的设置。 • 在F2812信号处理板上将T1PWM经过简单的运放电路后输出,可以直接将其输出连接 • 到扬声器,然后通过改变定时器的周期输出8种频率的信号方波信号模拟8种电子音效。实际 • 上,在实际生活中音频信号是多种频率的正弦波信号合成的结果,当然也可以利用PWM输 • 出产生正弦波信号。在本实验中利用定时器0产生50ms的定时中断,在每次CPU响应定时器 • 中断过程中,装载下一个周期的定时器1的比较和周期寄存器值。通过这种方式轮回的产生 • 几种不同频率的PWM波。

  29. //************************************************************//************************************************************ • // • // 文件名称:Playatune.c • // • // 主要功能:DSP28 T1PWM—输出PWM, • // CPU 定时器0中断时间50 ms • // 使能看门狗,并在主程序中复位看门狗计数寄存器 • // • //*************************************************************// • #include "DSP281x_Device.h" • // 函数原型声明 • void Gpio_select(void); • void SpeedUpRevA(void); • void InitSystem(void); • interrupt void cpu_timer0_isr(void); // 定时器0中断服务程序 • void main(void) • { • unsigned int i; • unsigned long time_stamp; • int frequency[8]={2219,1973,1776,1665,1480,1332,1184,1110};

  30. InitSystem(); // 初始化DSP内核寄存器 • Gpio_select(); // 设置GPIO引脚功能 • InitPieCtrl(); // 初始化外设中断扩展单元 ( 代码在: DSP281x_PieCtrl.c) • InitPieVectTable(); // 初始化外设中断扩展向量表( 代码在:DSP281x_PieVect.c ) • 重新映射定时器0(Timer 0)的中断入口 • EALLOW; // 允许更改保护的寄存器 • PieVectTable.TINT0 = &cpu_timer0_isr; • EDIS; // 禁止更改保护的寄存器 • InitCpuTimers(); • 配置CPU定时器0,计数周期为50 ms: • CPU工作频率150MHz CPU , 50000微秒的中断周期 • ConfigCpuTimer(&CpuTimer0, 150, 50000); • 使能外设中断扩展的中断TINT0 • PieCtrlRegs.PIEIER1.bit.INTx7 = 1; • 使能CPU的INT1,CPU定时器0的中断连接到该CPU中断上 • IER = 1;

  31. // 全局中断使能,并使能具有更高优先级的适时调试方式 • EINT; // 使能全局中断 INTM • ERTM; // 使能全局适时中断DBGM • 配置事件管理器EVA • 假定事件管理器EVA的时钟在系统初始化函数InitSysCtrl()内已经被使能; • T1/T2的控制逻辑驱动T1PWM / T2PWM • EvaRegs.GPTCONA.bit.TCMPOE = 1; • 通用定时器1 比较 = 低电平有效 • EvaRegs.GPTCONA.bit.T1PIN = 1; • EvaRegs.T1CON.all = 0x1702; // 配置T1递增计数模式

  32. CpuTimer0Regs.TCR.bit.TSS = 0; • i = 0; • time_stamp = 0; • while(1) • { • if ((CpuTimer0.InterruptCount%4)==0) • { • EALLOW; • SysCtrlRegs.WDKEY = 0xAA; // 看门狗 • EDIS; • } • if ((CpuTimer0.InterruptCount - time_stamp)>10) • { • time_stamp = CpuTimer0.InterruptCount; • if(i<7) EvaRegs.T1PR = frequency[i++]; • else EvaRegs.T1PR = frequency[14-i++]; • EvaRegs.T1CMPR = EvaRegs.T1PR/2; • EvaRegs.T1CON.bit.TENABLE = 1; • if (i>=14) i=0; • } • } • }

  33. // 通用IO选择 • void Gpio_select(void) • { • EALLOW; • GpioMuxRegs.GPAMUX.all = 0x0; // 所有GPIO端口配置成I/O方式 • GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 1; // T1PWM 有效 • GpioMuxRegs.GPBMUX.all = 0x0; • GpioMuxRegs.GPDMUX.all = 0x0; • GpioMuxRegs.GPFMUX.all = 0x0; • GpioMuxRegs.GPEMUX.all = 0x0; • GpioMuxRegs.GPGMUX.all = 0x0; • GpioMuxRegs.GPADIR.all = 0x0; // GPIO PORT 作为输入 • GpioMuxRegs.GPBDIR.all = 0x00FF; // GPIO Port B15-B8 输入 , B7-B0 输出 • GpioMuxRegs.GPDDIR.all = 0x0; // GPIO PORT 作为输入 • GpioMuxRegs.GPEDIR.all = 0x0; // GPIO PORT 作为输入 • GpioMuxRegs.GPFDIR.all = 0x0; // GPIO PORT 作为输入 • GpioMuxRegs.GPGDIR.all = 0x0; // GPIO PORT 作为输入 • GpioMuxRegs.GPAQUAL.all = 0x0; // 设置GPIO量化值为0 • GpioMuxRegs.GPBQUAL.all = 0x0; • GpioMuxRegs.GPDQUAL.all = 0x0; • GpioMuxRegs.GPEQUAL.all = 0x0; • EDIS; • }

  34. // 系统初始化 • void InitSystem(void) • { • EALLOW; • SysCtrlRegs.WDCR= 0x00AF; // 配置看门狗 • // 0x00E8 禁止看门狗,预定标系数Prescaler = 1 • // 0x00AF 使能看门狗,预定标系数Prescaler = 64 • SysCtrlRegs.SCSR = 0; // 看门狗产生RESET • SysCtrlRegs.PLLCR.bit.DIV = 10; // 设置系统锁相环倍频系数5 • SysCtrlRegs.HISPCP.all = 0x1; // 配置高速外设时钟预定标系数:除以2 • SysCtrlRegs.LOSPCP.all = 0x2; // 配置低速外设时钟预定标系数:除以4 • // 使能本应用程序使用的外设时钟 • SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; • SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; • SysCtrlRegs.PCLKCR.bit.SCIAENCLK=0; • SysCtrlRegs.PCLKCR.bit.SCIBENCLK=0; • SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0; • SysCtrlRegs.PCLKCR.bit.SPIENCLK=0; • SysCtrlRegs.PCLKCR.bit.ECANENCLK=0; • SysCtrlRegs.PCLKCR.bit.ADCENCLK=0; • EDIS; • }

  35. // CPU定时器0中断服务子程序 • interrupt void cpu_timer0_isr(void) • { • CpuTimer0.InterruptCount++; • // 每次定时器中断,清除看门狗定时器计数器 • EALLOW; • SysCtrlRegs.WDKEY = 0x55; // Serve watchdog #1 • EDIS; • // 响应该中断并允许接收更多的中断 • PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; • }

  36. 9.2.3 通用定时器寄存器 • 为了正确使用事件管理器的定时器必须配置相关定时器的5个寄存器,如果使用中断方式需要配置更多的寄存器。

  37. 9.2.3.1 通用定时器全局控制寄存器 • 全局控制寄存器GPTCONA/B确定通用定时器实现具体的定时器任务需要采取的操作方式,并指明通用定时器的计数方向。全局通用定时器控制寄存器B(GTPCONB)同GTPCONA功能相同,只是控制的定时器不同。GTPCONA控制定时器1和2,GTPCONB控制定时器3和4。

  38. 如果定时器设置为递增或递减计数模式,位14和13指示定时器的计数方式;位10到7确如果定时器设置为递增或递减计数模式,位14和13指示定时器的计数方式;位10到7确 • 定具体的定时事件触发ADC自动转换的操作方式;位6用来使能定时器1和定时器2同时输 • 出。每一位的详细定义参见表9.4。

  39. 9.2.3.2 通用定时器计数寄存器(TxCNT,其中x=1,2,3,4)

  40. 9.2.3.3 通用定时器比较寄存器(TxCMPR,其中x=1,2,3,4)

  41. 9.2.3.4 通用定时器周期寄存器(TxPR,其中x=1,2,3,4)

  42. 9.2.3.5 通用定时器控制寄存器(TxCON) • 定时器控制寄存器是每个定时器的独立设置寄存器。位15和14负责设置定时器和JTAG仿真器之间的工作关系,在某些情况下这两个位对于程序的执行非常重要,比如程序运行到断点处定时器的计数模式。有其实在适时系统中,停止定时器计数使定时器处于随机工作状态是非常危险的。因此,这两位的设置必须根据硬件的实际操作需求合理的配置。

  43. 位12~11选择操作模式,在前面的章节中已经做了详细的介绍。位10到8定义输入时钟位12~11选择操作模式,在前面的章节中已经做了详细的介绍。位10到8定义输入时钟 • 的分频的预定标参数,定时器的计数频率主要由以下参数确定: • 􀁺 外部晶振(30MHz) • 􀁺 内部PLL状态寄存器(PLLCR:乘以10/2 = 150 MHz) • 􀁺 高速时钟预定标(HISPCP = 除以2= 75 MHz) • 􀁺 定时器时钟预定标系数(1到128) • 同时可以根据上述设置和参数确定期望的定时器周期,例如希望设置100ms的定时器周 • 期可以采用如下设置: • 定时器输入脉冲=(1/外部时钟频率)*1/PLL*HISPCP*定时器预定标系数 • 1,7067 μs =(1/ 30 MHz )*1/5 * 2 * 128 • 100 ms / 1,7067 μs = 58593. • 因此可以设置周期寄存器TxPR的值58593,此时定时器的输出脉冲即为100ms。 • 位6使能定时器操作,在定时器一系列初始化操作完成后必须将该位置1启动定时器。 • 位5和4选择定时器的时钟信号源;位3和2定义将缓冲值装载到比较寄存器的时间;位1用来 • 使能比较操作;位7和0是定时器2的专用控制位,在T1CON中两位不起作用,在位7的控制 • 下用户可以同时启动定时器1和定时器2。关于控制寄存器的详细说明参见表9.8所示。

More Related