单片机MSP430入门理论⑨--定时器模块-定时器A④

上期大概给大家汇总介绍了,定时器模块中定时器A的CCTLx捕获/比较控制寄存器,CCTLx是用来设置捕获模式,捕获的输入端,捕获模式,OUT输出,捕获标志等
本期将继续介绍定时器A最后一个中断向量寄存器,然后实践一下程序该怎么写
上图先简单说明下,TATV中断向量寄存器,看上图,TATV的值为0A(十进制的10)时,就表明目前触发的是溢出定时器中断标志TAIFG,属于优先级最低的中断,当TATV的值为02时,就说明目前触发的是最高等级的中断,比较捕获寄存器1
Timer_A有两个中断向量,一个单独分配给捕获比较寄存器CCR0,另一个作为共用的中断向量,用于定时器和其他捕获比较寄存器
CCR0中断向量具有最高的优先级,因为CCR0能用于定义是增计数和增减计数模式的周期。因此他需要最快速度的服务,CCIFG0在被中断服务时能自动复位
CCR1-CCRx和定时器共用另一个中断向量,属于多源中断,对应的中断标志CCIFG1-CCIFGx和TAIFG1在读中断向量字TAIV后,自动复位。如果不妨问TAIV寄存器,则不能自动复位,须用软件清除。如果相应的中断允许位复位(不允许中断),则将不会产生中断请求,但中断标志扔存在,这时须用软件清除。
关于中断挂起和返回不包括处理约需要11-16个时钟周期
实例1:定时器A自动溢出
利用TemerA直接计数产生溢出,然后中断处理。
时间关系没来的及验证,大家可以按照上面的试一下
在MSP430F149中TBCTL表示定时器B的控制寄存器。MCx是该寄存器的第5-4位,是定时器B的工作模式控制位,表示定时器的工作方式。
这是一个宏定义,MC_0的值即为:0*0x10u,它是一个无符号乘法运算,结果就是为0,即MC_0的值实际为:0x00(因为这个值比较特殊,所以现用MC_2举例)如果是#defineMC_2(2*0x10u),则MC_2=0x20,二进制为:00100000,正好第5位为1。
TBCTLMC_0是TBCTL与MC_0按位相与的运算,其作用就是判断MCx(TBCTL第5位和第4位的值)是否为0。
复制代码进行使用。msp430单片机display函数可通过复制代码的方式进行使用的,单片机(Single-Chipmicrocomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM。
理图