收藏 分销(赏)

第4章-TMS320F2812系统控制及中断.ppt

上传人:精**** 文档编号:1922453 上传时间:2024-05-11 格式:PPT 页数:45 大小:1.08MB 下载积分:14 金币
下载 相关 举报
第4章-TMS320F2812系统控制及中断.ppt_第1页
第1页 / 共45页
第4章-TMS320F2812系统控制及中断.ppt_第2页
第2页 / 共45页


点击查看更多>>
资源描述
华东交通大学电气学院第4章 TMS320F2812系统控制及中断学习重点学习重点如何时能各种外设时钟。如何时能各种外设时钟。产生中断的流程。产生中断的流程。看门狗复位与看门狗中断的区别。看门狗复位与看门狗中断的区别。定时器寄存器配置及定时器中断程序设计。定时器寄存器配置及定时器中断程序设计。GPIO定时器配置及相关程序设计。定时器配置及相关程序设计。1精选精选华东交通大学电气学院课程内容4.1 存储空间;存储空间;4.2 时钟及系统控制;时钟及系统控制;4.3 振荡器及锁相环模块;振荡器及锁相环模块;4.4 功耗模式;功耗模式;4.5 F2812的外设结构;的外设结构;4.6 F2812外设中断扩展模块;外设中断扩展模块;4.7 看门狗模块看门狗模块4.8 32位位CPU定时器模块。定时器模块。2精选精选华东交通大学电气学院4.1 存储空间FLASH存储器:存储器:F2812具有具有128K的的FLASH存存储器,即可作为数据存储空间,也可作为程序储器,即可作为数据存储空间,也可作为程序存储空间。存储空间。OTP存储器:一次性编程存储器,存储器:一次性编程存储器,F2812有有1K的的OTP存储器,可存放数据或程序。存储器,可存放数据或程序。3精选精选华东交通大学电气学院4.2 时钟及系统控制4精选精选华东交通大学电气学院4.3 振荡器及锁相环模块2812 基于基于 PLL 的时钟模块可以采用两种模式,一种是的时钟模块可以采用两种模式,一种是 PLL 未被禁止的情况下(旁路未被禁止的情况下(旁路或使能),或使能),使用外部晶振给使用外部晶振给 2812 提供时钟信号,使用提供时钟信号,使用 X1/CLKIN 引脚和引脚和 X2 引脚;另外引脚;另外一种一种 PLL 被禁止的情况下,旁被禁止的情况下,旁 路片内振荡器,由外部时钟源提供时钟信号,即将外部振路片内振荡器,由外部时钟源提供时钟信号,即将外部振荡器的信号输入到荡器的信号输入到 X1/XCLKN 引脚,此时引脚,此时 X2 引脚引脚 不使用。通常情况下,我们都是采用不使用。通常情况下,我们都是采用前面的方式,由外部晶振通过片内前面的方式,由外部晶振通过片内 OSC 来产生时钟信号。来产生时钟信号。5精选精选华东交通大学电气学院各种 PLL 的配置模式 PLL 模式模式说明说明CLKINPLL 禁止禁止上电复位时通过将上电复位时通过将 XPLLDSIS(低电平有效)(低电平有效)引脚置低来进入该模式,引脚置低来进入该模式,PLL 模块完全不使能。模块完全不使能。此时,输入此时,输入 CPU 的时钟是由外部振荡器直接的时钟是由外部振荡器直接通通 过过 X1/XCLKIN 引脚输入的信号。引脚输入的信号。XCLKINPLL 旁路旁路如果如果 PLL 未处于不使能的状态,上电默认的未处于不使能的状态,上电默认的 PLL 配置(配置(PLLCR 的值为的值为 0)。)。PLL 自身被自身被旁路,从旁路,从 X1/XCLKIN 引脚输入的时钟信号先引脚输入的时钟信号先被被/2,然后再,然后再 送去送去 CPU。XCLKIN/2PLL 使能使能通过给通过给 PLLCR 寄存器写一个不为寄存器写一个不为 0 的值来实的值来实现现 PLL 的使能,时钟信号需要进入的使能,时钟信号需要进入 PLL 模块模块进行进行 n 倍频,然后再被倍频,然后再被/2,最后送至,最后送至 CPU。(XCLKIN*n)/26精选精选华东交通大学电气学院我们平常使用的是第我们平常使用的是第 3 种方式,即种方式,即 PLL 使能,从使能,从图图 中中 我们可以看到,通常采用我们可以看到,通常采用 30M 的晶振来给的晶振来给 2812提供时基。当提供时基。当 PLLCR 的的 DIV 位被设置成最位被设置成最大值,即大值,即 1010 的时候,的时候,CPU 的时钟将达到的时钟将达到 150MHZ,是,是 2812 所能支持的最大时钟频率。所能支持的最大时钟频率。时钟频率具体的计算如下面所示。时钟频率具体的计算如下面所示。晶振为晶振为 30M,PLLCR 的的 DIV 位被设置成位被设置成 1010 时的时钟频率时的时钟频率CLKIN=(OSCLKIN*10)/2=(XCLKIN*10)/2=(30M*10)/2=150M Hz7精选精选华东交通大学电气学院外设时钟的使能我们在使用我们在使用 2812 开发的时候,通常会用到一些外设,开发的时候,通常会用到一些外设,例如例如 SCI,EV,AD 等,要使得这些外设工作,首要的就等,要使得这些外设工作,首要的就是向其提供时钟信号,因此,我们在系统初始化的时是向其提供时钟信号,因此,我们在系统初始化的时候,就需要对使用到的各个外设的时钟进行使候,就需要对使用到的各个外设的时钟进行使 能,例能,例如项目里用到了如项目里用到了 EVA,SCIA 和和 AD 这这 3 个外设,那么个外设,那么我们就需要按照下面的程序对这个我们就需要按照下面的程序对这个 3 个外设个外设进行时钟的使能。和时钟使能相关的寄存器是外设时进行时钟的使能。和时钟使能相关的寄存器是外设时钟控制寄存器钟控制寄存器 PCLKCR。使能外设时钟使能外设时钟SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;8精选精选华东交通大学电气学院外设时钟频率的计算LSPCLK 计算公式计算公式LOSPCP=0,LSPCLK=SYSCLKOUT LOSPCP=17,LSPCLK=SYSCLKOUT/(2*LOSPCP)注:注:LOSPCP 表示的是表示的是 LOSPCP 寄存器中位寄存器中位 2-0 的值的值HSPCLK 计算公式计算公式HISPCP=0,HSPCLK=SYSCLKOUT HISPCP=17,HSPCLK=SYSCLKOUT/(2*HISPCP)注:注:HISPCP 表示的是表示的是 HISPCP 寄存器中位寄存器中位 2-0 的值的值9精选精选华东交通大学电气学院4.4 F2812的功耗模式IDLE模式:处理器可以通过被使能的中断或模式:处理器可以通过被使能的中断或NMI中断退出中断退出IDLE模式。模式。STANDBY模式:所有信号都能将模式:所有信号都能将CPU唤醒。唤醒。HALT模式:只有复位模式:只有复位XRS和和XNMI_XINT13外部中断信号能唤醒外部中断信号能唤醒CPU工作。工作。10精选精选华东交通大学电气学院4.5 F2812的外设结构11精选精选华东交通大学电气学院外设结构外设结构0:映射部分外设控制寄存器:映射部分外设控制寄存器,16位;位;外设结构外设结构1:eCAN专用控制寄存器,专用控制寄存器,32位;位;外设结构外设结构2:映射部分外设控制寄存器,:映射部分外设控制寄存器,16位;位;受受EALLOW保护的寄存器:保护的寄存器:此类寄存器必须在此类寄存器必须在EALLOW状态下才能被修改,修状态下才能被修改,修改后执行改后执行EDIS重新将受保护的寄存器保护起来,此时重新将受保护的寄存器保护起来,此时CPU不能对其进行修改,但通过不能对其进行修改,但通过JTAG接口可以进行接口可以进行修改。修改。12精选精选华东交通大学电气学院4.6 F2812外设中断扩展模块1.什么是中断?什么是中断?中断(中断(Interrupt)是硬件和软件驱动事件,它使得)是硬件和软件驱动事件,它使得 CPU 暂停当前的暂停当前的主程序,并转而去执行一个中断服务程序。主程序,并转而去执行一个中断服务程序。PIE 可以支持可以支持 96 个不同的中断,这些中断分成了个不同的中断,这些中断分成了 12 个组,个组,每个组有每个组有 8 个中断,而且每个组都被反馈到个中断,而且每个组都被反馈到 CPU 内核的内核的 12 条中断线中的某一条上(条中断线中的某一条上(INT1-INT12),我们平时用到的),我们平时用到的所有的外设中断都被归入了这所有的外设中断都被归入了这 96 个中断中,被分布在不同个中断中,被分布在不同的组里,使用多路复用的原理。的组里,使用多路复用的原理。PIE 目前只使用目前只使用 了了 96 个中个中断中的断中的 45 个,其他的等待将来的功能扩展。个,其他的等待将来的功能扩展。13精选精选华东交通大学电气学院F2812 所能支持的中断 14精选精选华东交通大学电气学院 F2812 的 PIE 内部的中断分布图 15精选精选华东交通大学电气学院 F2812 的中断是 3 级中断机制,分别是外设级,PIE 级以及 CPU 级,对于某一个具体的外 设中断请求,任意一级的不许可,CPU 最终都不会执行该外设中断。就像一个文件需要三级领导批示一样,任意一级领导的不同意,都不能被送至上一级领导,更不可能得到最终的批准,中断机制的原理也是如此。16精选精选华东交通大学电气学院外设中断请求流程17精选精选华东交通大学电气学院(1).外设级中断假如在程序的执行过程中,某一个外设产生了一个中假如在程序的执行过程中,某一个外设产生了一个中断事件,那么在这个外设的某个寄存器中与该中断事断事件,那么在这个外设的某个寄存器中与该中断事件相关的中断标志位(件相关的中断标志位(IF=Interrupt Flag)被置为)被置为 1。此时,如果该中断相应的中断使能位(此时,如果该中断相应的中断使能位(IE=Interrupt Flag)已经被置位,也就是为)已经被置位,也就是为 1,外设就会向,外设就会向 PIE 控控制器发出一个中断请求。相反的,如果虽然中断事件制器发出一个中断请求。相反的,如果虽然中断事件产生了,相应的中断标志位也被置产生了,相应的中断标志位也被置 1 了,但是该中断了,但是该中断没有被使能(相应的使能位为没有被使能(相应的使能位为 0),那),那 么外设就不会么外设就不会向向 PIE 发出中断请求,但是相应的中断标志位会一直发出中断请求,但是相应的中断标志位会一直保持置位状态,直到用保持置位状态,直到用 程序清除它为止。当然,在中程序清除它为止。当然,在中断标志位保持在断标志位保持在 1 的时候,一旦该中断被使能了,那的时候,一旦该中断被使能了,那么外设立马会向么外设立马会向 PIE 发发 出中断申请。出中断申请。18精选精选华东交通大学电气学院以以 T1PINT为例:当定时器为例:当定时器 T1 的计寄存器的计寄存器 T1CNT 计数到和计数到和 T1 周期周期寄存器寄存器 T1PINT 的值匹配时(相等时),就产生了一个的值匹配时(相等时),就产生了一个 T1PINT 事件,事件,即即 T1 的周期中断。这时候,事件管理器的周期中断。这时候,事件管理器 EVA 的中断标志寄存器的中断标志寄存器 A(EVAIFRA)中的第)中的第 7 位位 T1PINT FLAG 被置为被置为 1,这时候如果,这时候如果 EVA 的中断屏蔽寄存的中断屏蔽寄存 器器 A(EVAIMRA)中的第)中的第 7 位位 T1PINT 的使的使能位是能位是 1,则,则 EVA 就会向就会向 PIE 发出中断请求,当然,如果该位的发出中断请求,当然,如果该位的 值值是是 0,也就是该中断未被使能(被屏蔽),则,也就是该中断未被使能(被屏蔽),则 EVA 不会向不会向 PIE 发出发出中断请求,而且中断请求,而且 EVAIFRA 中中 T1PINT FLAG位将一直保持为位将一直保持为 1,除,除非通过程序将其清除。需要注意的是,不管在什么情况下,外设寄存非通过程序将其清除。需要注意的是,不管在什么情况下,外设寄存器中的中断标志位都必须手工清除。器中的中断标志位都必须手工清除。清除清除 T1PINT 标志位的语句标志位的语句EvaRegs.EVAIFRA.bit.T1PINT=1;(1)外设级中断举例:19精选精选华东交通大学电气学院(2)PIE 级 中断当外设把中断请求提交给当外设把中断请求提交给 PIE 模块。模块。PIE 控制器中的每组都有一个中断标志寄存器控制器中的每组都有一个中断标志寄存器 PIEIFRx 和中断使能寄存器和中断使能寄存器 PIEIERx。每个寄存器的低。每个寄存器的低 8 位对应于位对应于 8 个外设中断,高个外设中断,高 8 位保留。例如位保留。例如 T1PINT对应于对应于PIEIFR2 的第的第 4 位和位和 PIEIER2 的第的第 4 位。位。因为因为 PIE 模块是多路复用的,那么每一组同一时间应该只能是一个中断被响应,模块是多路复用的,那么每一组同一时间应该只能是一个中断被响应,PIE 是怎么做到的呢?是怎么做到的呢?PIE 除了每组具有除了每组具有 刚才的刚才的 PIEIERx,PIEIFRx 寄存器之寄存器之外,还有一个外,还有一个 PIEACK 寄存器,它的低寄存器,它的低 12 位分别对应着位分别对应着 12 个组,即个组,即 INT1-INT12,高位保留。假如,高位保留。假如 T1 的周期中断被响应了,则的周期中断被响应了,则 PIEACK 寄存器的第寄存器的第 2 位(对应于位(对应于 INT2)就会被置位,并且一直保持直到手动清除这个标志位。当)就会被置位,并且一直保持直到手动清除这个标志位。当 CPU 在响应在响应 T1PNT 的时候,的时候,PIEACK 的第的第 2 位一直是位一直是 1,这时候如果这时候如果 PIE2 组内发生其他的外设中断,则暂时不会被组内发生其他的外设中断,则暂时不会被 PIE 响应送给响应送给 CPU,必须等到,必须等到 PIEACK 的第的第 2 位被复位之后,如果该中断请求还存在,那么立马由位被复位之后,如果该中断请求还存在,那么立马由 PIE 控制控制块将中断请求送至块将中断请求送至 CPU。所以,每个外设中断被响应之后,一定要对。所以,每个外设中断被响应之后,一定要对 PIEACK 的相关位进行手动服务,否则同组内的其他中断都不会被响应。的相关位进行手动服务,否则同组内的其他中断都不会被响应。清除清除 PIE 中与中与 T1PINT 相关的应答位的语句相关的应答位的语句PieCtrl.PIEACK.bit.ACK2=1;20精选精选华东交通大学电气学院PIE中断需注意的问题将将 PIE 级的中断和外设级的中断相比较之后发现,外级的中断和外设级的中断相比较之后发现,外设中断的中断标志位是需要手工清除的,而设中断的中断标志位是需要手工清除的,而 PIE 级的级的中断标志位都是自动置位或者清除的。但是中断标志位都是自动置位或者清除的。但是 PIE 多了多了一个一个 PIEACK 寄存器,相当于一个同行的关卡,寄存器,相当于一个同行的关卡,同一同一时间只能放一个中断过去,只有等到这个中断被响应,时间只能放一个中断过去,只有等到这个中断被响应,给关卡一个放行命令之后,才能让同组的下一给关卡一个放行命令之后,才能让同组的下一 个中断个中断过去,被过去,被 CPU 响应。响应。21精选精选华东交通大学电气学院(3)CPU 级CPU 也有中断标志寄存器也有中断标志寄存器 IFR 和使能寄存器和使能寄存器 IER。当某一个外设中断请求。当某一个外设中断请求通过通过 PIE 发送到发送到 CPU 时,与时,与 INTx 相关的中断标志位就会被置位。相关的中断标志位就会被置位。例如,例如,T1 的周期中断的周期中断 T1PINT 的请求到达的请求到达CPU 这边时,与其相关的这边时,与其相关的 INT2 的标志位就会被置位,该标志位就会被锁存在的标志位就会被置位,该标志位就会被锁存在 IFR 中,这时候,如果中,这时候,如果 IER 中的相关位被置位了,并且中的相关位被置位了,并且 INTM 的值为的值为 0,则中断就会被,则中断就会被 CPU 响应。在响应。在 T1PINT 的例子里,当的例子里,当 IER 的第的第 2 位即位即 INT2 被置位,被置位,INTM 为为 0,则,则 CPU 就会响应定时器就会响应定时器 T1 的周期中断。的周期中断。CPU 接到了中断的请求,就得暂停正在执行的程序,转而去响应中断程序,接到了中断的请求,就得暂停正在执行的程序,转而去响应中断程序,但是此时,它必须得做一但是此时,它必须得做一 些准备工作,以便于执行完中断程序之后回过头些准备工作,以便于执行完中断程序之后回过头来还能找到原来的地方和原来的状态。来还能找到原来的地方和原来的状态。CPU 会将相应的会将相应的 IER 和和 IFR 位进位进行清除,行清除,EALLOW 也被清除,也被清除,INTM 被置位,就是不能响应其他中断了,被置位,就是不能响应其他中断了,CPU 向其他中断发出了通向其他中断发出了通 知,正在忙,没空来处理你们的请求了,得等到知,正在忙,没空来处理你们的请求了,得等到处理完手上的中断之后才能再来处理其他请求。然后,处理完手上的中断之后才能再来处理其他请求。然后,CPU 会存储返回地会存储返回地址并自动保存相关的信息,例如将正在处理的数据放入堆栈等等,做好这址并自动保存相关的信息,例如将正在处理的数据放入堆栈等等,做好这些准备工作之些准备工作之 后,后,CPU 会从会从 PIE 块中取出对应的中断向量块中取出对应的中断向量 ISR,从而转去,从而转去执行中断子程序。执行中断子程序。22精选精选华东交通大学电气学院TI 例程中与中断相关的几个文件 DSP28_PieCtrl.h,这个文件定义了和,这个文件定义了和 PIE 相关的寄存器的数据结相关的寄存器的数据结构,我们对应于相关寄存器的定义会发现,两者是一样的。构,我们对应于相关寄存器的定义会发现,两者是一样的。DSP28_PieVect.h,这个头文件定义了这个头文件定义了 PIE 的中断向量。的中断向量。DSP28_PieCtrl.c 文件里只有文件里只有 1 个函数,个函数,InitPieCtrl(),其作用是(),其作用是对对 PIE 模块进行初始化的,例如在程序开始的时候使能某些外设模块进行初始化的,例如在程序开始的时候使能某些外设中断。中断。DSP28_PieVect.c 文件是对文件是对 PIE 中断向量表进行初始化的。执行完中断向量表进行初始化的。执行完这个程序之后,各个中断函数都有了明确的入口地址了,这样这个程序之后,各个中断函数都有了明确的入口地址了,这样 CPU 执行起来就方便了。执行起来就方便了。DSP28_DefaultIsr.c 文件,文件,2812 所有的与外设相关的中断函数都在所有的与外设相关的中断函数都在这里定义,如这里定义,如 T1 周期中断周期中断 T1PINT。我们自己在写的时候,只要。我们自己在写的时候,只要将具体的函数内容写进去就可以了。将具体的函数内容写进去就可以了。23精选精选华东交通大学电气学院T1PINT中断处理函数24精选精选华东交通大学电气学院编写中断处理程序的一般步骤11.首先,是在主函数里需要注意一些步骤,不可缺少,以首先,是在主函数里需要注意一些步骤,不可缺少,以 T1 的周期中断为例:主函数中的周期中断为例:主函数中的处理的处理void main(void)./禁止和清除所有禁止和清除所有 CPU 中断中断DINT;IER=0 x0000;IFR=0 x0000;InitPieCtrl();/初始化中断向量初始化中断向量InitPieVectTable();/初始化中断向量表初始化中断向量表/使能使能 PIE 中断中断PieCtrlRegs.PIEIER2.bit.INTx4=1;/使能使能 T1 周期中断周期中断/开开 CPU 中断中断IER|=M_INT2;/开中断开中断 2EINT;/使能全局中断使能全局中断ERTM;/使能实时中断使能实时中断25精选精选华东交通大学电气学院2.在在 DSP28_DefaultIsr 中断函数中注意相应的一些步骤。中断函数中注意相应的一些步骤。interrupt void T1PINT_ISR(void).EvaRegs.EVAIFRA.bit.T1PINT=1;/清除中断标志位清除中断标志位 PieCtrlRegs.PIEACK.bit.ACK2=1;/响应同组中断响应同组中断 INT;/开全局中断开全局中断编写中断处理程序的一般步骤226精选精选华东交通大学电气学院4.7看门狗模块 看门狗看门狗,又叫又叫 watchdog timer,是一个定时器电路是一个定时器电路,一般一般有一个输入有一个输入,叫喂狗叫喂狗(kicking the dog or service the dog),一个输出到一个输出到 MCU 的的 RST 端端,MCU 正常工作的时候正常工作的时候,每每隔一端时间输出一个信号到喂狗端隔一端时间输出一个信号到喂狗端,给给 WDT 清零清零,如如果超过规定的时间不喂狗果超过规定的时间不喂狗,(一般在程序跑飞时一般在程序跑飞时),WDT 定时超过定时超过,就回给出一个复位信号到就回给出一个复位信号到MCU,是是MCU复位复位.防止防止MCU死机死机.看门狗的作用就是防止程序发生死循看门狗的作用就是防止程序发生死循环,或者说程序跑飞。环,或者说程序跑飞。27精选精选华东交通大学电气学院2812中的看门狗的作用是为中的看门狗的作用是为DSP 的运行情况进行的运行情况进行“把脉把脉”,一,一旦发现程序跑飞或者状态不正常,便立即使旦发现程序跑飞或者状态不正常,便立即使 DSP 复位。复位。2812 的看门狗电路有一个的看门狗电路有一个 8 位的看门狗加法计数器位的看门狗加法计数器 WDCNTR,无,无论什么时候,如果论什么时候,如果 WDCNTR 计数到最大值时,看门狗模块就计数到最大值时,看门狗模块就会产生一个输出脉冲,脉冲宽度为会产生一个输出脉冲,脉冲宽度为 512 个振荡器时钟宽度。为个振荡器时钟宽度。为了防止看门狗加法计数器了防止看门狗加法计数器WDCNTR溢出,我们通常可以采用溢出,我们通常可以采用两种方法:两种方法:一种是禁止看门狗,即使得计数器一种是禁止看门狗,即使得计数器WDCNTR无效;无效;另一种就是定期的另一种就是定期的“喂狗喂狗”,通过软件向负责复位看门狗计数,通过软件向负责复位看门狗计数器的看门狗密钥寄存器(器的看门狗密钥寄存器(8 位的位的 WDKEY)周期性的写入)周期性的写入 0 x55+0 xAA,紧跟着,紧跟着 0 x55 写入写入 0 xAA 能够清除能够清除WDCNTR。写。写任何其他的值都会使看门狗立即复位。任何其他的值都会使看门狗立即复位。28精选精选华东交通大学电气学院看门狗模块框图见:P102页看门狗计数寄存器看门狗计数寄存器(WDCNTR)看门狗复位寄存器看门狗复位寄存器(WKKEY)看门狗控制寄存器看门狗控制寄存器(WDCR)29精选精选华东交通大学电气学院看门狗初始化及喂狗函数void InitSysCtrl(void)/在在 系统初始化函数系统初始化函数 DSP281x_SysCtrl.c 文件。文件。DisableDog();/Disable the watchdogInitPll(0 xA);/Initialize the PLLCR to 0 xA-30M*10/2InitPeripheralClocks();/Initialize the peripheral clocks/禁止看门狗禁止看门狗void DisableDog(void)EALLOW;SysCtrlRegs.WDCR=0 x0068;EDIS;/喂狗函数喂狗函数void KickDog(void)EALLOW;SysCtrlRegs.WDKEY=0 x0055;SysCtrlRegs.WDKEY=0 x00AA;EDIS;30精选精选华东交通大学电气学院主定时器模块(由PRD和TIM组成)预定标器模块(由TCR的TDDR和PSC位组成)。4.8 32位位CPU定时器定时器31精选精选华东交通大学电气学院 TMS320F2812内部有三个32位CPU定时器(TIMER0/1/2)。其中保留CPU定时器1和CPU定 时器2用于DSP BIOS及实时操作系统(RTOS)。主要特点:(1)定时器是一个减法计数器。(2)由16位计数器和4位预分频计数器组成。16位计数器的触发脉冲由预分频计数器提供,预分频计数器由CPU工作时钟决定。(3)有复位功能。(4)可以选择调试断点时定时器的工作方式。32精选精选华东交通大学电气学院可编程定时器 定时器相关寄存器:定时器相关寄存器:1、定时器计数寄存器(、定时器计数寄存器(TIMERxTIM)每隔每隔(TDDRH:TDDR+1)个时钟周期,其减个时钟周期,其减1;2、定时器周期寄存器(TIMERxPRD)当定时器计数寄存器清零后自动装入周期寄存器的值;3、定时器的控制寄存器TCR 控制定时器的工作过程;4、定时器预定标寄存器(TIMERxTRP)设置定时器计数寄存器的预定标时钟;33精选精选华东交通大学电气学院可编程定时器 5、定时器的操作过程 PSC由CPU提供时钟,每个CPU时钟信号将使PSC减1。TDDR的内容重新加载到PSC。TIM由预定标器PSC提供时钟,每个来自预定标块的输出时钟使TIM减l。PRD中的内容重新加载到TIM。定时器的中断周期34精选精选华东交通大学电气学院可编程定时器 初始化定时器:(1)将TCR中的TSS位置1,停止定时器。(2)加载PRD。(3)重新加载TCR以初始化TDDR。(4)重新启动定时器。TSS位为0,TRB位为l,以重载定时器周期值,使能定时器。使能定时器中断(假定INTM=1):(1)将IFR中的TINT位置1,清除尚未处理完(挂起)的定时器中断。(2)将IMR中的TINT位置l,使能定时器中断。(3)可以将ST1中的INTM位清0,使能全局中断。35精选精选华东交通大学电气学院定时器程序设计,参见CPUTIMER源程序36精选精选华东交通大学电气学院4.9 通用输入输出口(GPIO)GPIO:通用输入输出;:通用输入输出;GPIO引脚是多功能复用的,即可作为数字引脚是多功能复用的,即可作为数字I/O口,口,也可作为特殊功能接口(如也可作为特殊功能接口(如SCI、SPI)。)。GPIO分分A、B、D、E、G五组,通过五组,通过GPIO Mux寄存器进行控制。寄存器进行控制。如果如果GPIO配置为数字配置为数字I/O:则可通过则可通过GPxSET、GPxCLEAR或或GPxTOGGLE寄存器对其引脚进行寄存器对其引脚进行操作。操作。37精选精选华东交通大学电气学院GPIO的重要寄存器GPxDAT:GPIO数据寄存器;数据寄存器;GPxSET:GPIO 置位寄存器;置位寄存器;GPxCLEAR:GPIO清楚寄存器;清楚寄存器;GPxTOGGLE:GPIO取反寄存器;取反寄存器;38精选精选华东交通大学电气学院GPxMux:GPIOx功能选择控制寄存器每各每各I/O口都有一个对应的功能选择寄存器位,口都有一个对应的功能选择寄存器位,控制该口位特殊功能口或通用数字控制该口位特殊功能口或通用数字I/O口;口;如:如:GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=0;/设置GPIO A0口为数字I/O口GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1;/设置GPIO A0口为特殊功能口(PWM1输出口)39精选精选华东交通大学电气学院GPxDIR:GPIOx方向控制寄存器每各每各I/O口都有一个对应的方向控制寄存器位,口都有一个对应的方向控制寄存器位,控制该口输入输出方向;控制该口输入输出方向;如:如:GpioMuxRegs.GPADIR.bit.GPIOA0=0;/设置GPIO A0口为数字输入口GpioMuxRegs.GPADIR.bit.GPIOA0=1;/设置GPIO A0口为数字输出口40精选精选华东交通大学电气学院GPxQUAL:GPIOx输入限制寄存器控制控制GPIO引脚输入信号的采样周期,目的是引脚输入信号的采样周期,目的是消除输入信号的噪声。消除输入信号的噪声。如:如:GpioMuxRegs.GPAQUAL.BIT.QUALPRD=5;/设置GPIO A组全部引脚输入信号采用周期为541精选精选华东交通大学电气学院GPxDAT:GPIO数据寄存器每各每各I/O口都有一个对应的数据寄存器位,控口都有一个对应的数据寄存器位,控制该口状态;制该口状态;如:如:GpioDataRegs.GPADAT.bit.GPIOA0=0;/设置GPIO A0口为低电平GpioDataRegs.GPADAT.bit.GPIOA0=0;/设置GPIO A0口为高电平42精选精选华东交通大学电气学院GPxSET:GPIO置位寄存器每各每各I/O口都有一个对应的置位寄存器位,控口都有一个对应的置位寄存器位,控制该口状态;制该口状态;GpioDataRegs.GPASET.bit.GPIOA0=0;/没影响GpioDataRegs.GPASET.bit.GPIOA0=1;/将A0引脚置位高电平43精选精选华东交通大学电气学院GPxCLEAR:GPIO清除寄存器每各每各I/O口都有一个对应的清除寄存器位,将该口清口都有一个对应的清除寄存器位,将该口清楚位低电平;楚位低电平;GpioDataRegs.GPACLEAR.bit.GPIOA0=0;/没影响GpioDataRegs.GPACLEAR.bit.GPIOA0=1;/将A0引脚置位低电平44精选精选华东交通大学电气学院GPxTOGGLE:GPIO取反寄存器每各每各I/O口都有一个对应的取反口都有一个对应的取反寄存器位,将该口寄存器位,将该口电平取反;电平取反;GpioDataRegs.GPATOGGLE.bit.GPIOA0=0;/没影响GpioDataRegs.GPATOGGLE.bit.GPIOA0=1;/将A0引脚置电平取反45精选精选
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服