29.6.4.2 中断
TC有以下中断源
。上溢/下溢:OVF。这个是非同步中断,能被用作从任何休眠模式中唤醒设备。
。比较或捕获通道:MCx。这个是非同步中断,能被用作从任何休眠模式中唤醒设备。
。捕获溢出错误:ERR。这个是非同步中断,能被用作从任何休眠模式中唤醒设备。
。同步准备好:SYNCRDY。这个是非同步中断,能被用作从任何休眠模式中唤醒设备。
每个中断源有一个中断标志与其相关。中断标志当中断条件发生时,在中断标志状态和清除寄存器
(INTFLAG)中被设置。每个中断源可以单独地通过向中断使能设置寄存器相应的位写1(INTENSET),并且中断
的失能是向中断使能清除寄存器相应的位写1(INTENCLR)。一个中断请求的产生是当中断标志置1并且相应的
中断使能。中断请求保持活动状态直到中断标志被清除,中断禁止或TC复位。见INTFLAG寄存器的描述关于怎
样清除中断标志。
TC有一个对所有中断源的通用的中断请求线。用户必须读INTFLAG寄存器来确定哪个中断状态存在。注
意全局中断必须被使能,为了中断请求的产生,请参考"Nested Vector Interrupt Controller"的描述。
29.6.4.3 事件
TC可以产生下列输出事件:
。上溢/下溢(OVF)
。匹配或捕获(MC)
向事件控制寄存器的事件输出比特写1使能相应的输出事件。写一个0到这个比特禁止相应的输出事件。
为了使能以下事件行为,写到事件行为比特组(EVCTRL.EVACT).
。开始记数器
。复新触发记数器
。增加或减少记数器
。捕获事件
。捕获周期
。捕获脉宽
写一个1到事件控制寄存器的TC事件输入位(EVCTRL.TCEI)使能输入事件到TC。
写一个0到这个位禁止输入事件到TC。参考"EVSYS-Event System"的描述关于配置事件系统。
29.6.5 休眠模式操作
TC能配置在任何休眠模式中操作。为了能运行在standby状态下,控制A寄存器的RUNSTDBY位必须被置1
。TC能用中断从任何休眠模式唤醒设备或通过事件系统执行动作。
29.6.6 同步
由于异步之间CLK——TCx_APB和GCLK_TCx,一些寄存器时必须同步访问。一个寄存器被需要:
。当写时同步
。当读时同步
。当读写时同步
。不需要同步
当执行一个需要同步的操作时,在状态寄存器同步忙比特(STATUS.SYNCBUSY)将立即被设置,并在同步
完成时清除。同步好中断被用来标记当同步完成。这个可以访问中断标志状态和清除寄存器中的同步准备好
中断(INTFLAG.SYNCRDY)。
如果一个需要同步的操作被执行,这时STATUS.SYNCBUSY是1,总线将被拖延。所有的操作将成功完成。
但是CPU将被拖延,中断将被挂起同总线拖延时间一样长。
以下位在写时需要同步
。控制A寄存器的软件复位位(CTRLA.SWRST)
。控制A寄存器的使能位(CTRLA.ENABLE)
写同步是通过寄存器描述写同步属性来指示的。
以下寄存器需要写同步:
。控制B清除寄存器(CTRLBCLR)
。控制B设置寄存器(CTRLBSET)
。控制C寄存器(CTRLC)
。记数值寄存器(COUNT)
。周期值寄存器(PERIOD)
。比较/捕获值寄存器(CCx)
以下寄存器需要读时同步:
。控制B清除寄存器(CTRLBCLR)
。控制B设置寄存器(CTRLBSET)
。控制C寄存器(CTRLC)
。记数值寄存器(COUNT)
。周期值寄存器(PERIOD)
。比较/捕获值寄存器(CCx)
读同步是通过寄存器描述读同步属性来指示的。
|