34.6.4.2 中断 DAC有以下中断源: 。数据缓冲空(EMPTY):这是异步中断能用来从任何休眠模式中唤醒设备。 。Underrun(UNDERRUN):这是异步中断能用来从任何休眠模式中唤醒设备。 。同步好(SYNCRDY):这是异步中断能用来从任何休眠模式中唤醒设备。 每个中断源有一个与之相关中断标志。当中断状态发生在中断标志状态和清除寄存器中的中断标志(INTFLAG)被置位。每个中断能单独地向中断使能设置寄存器中的相应比特写1(INTENSET)来使能,通过向中断使能清除寄存器相应的位写1来失能(INTENCLR)。一个中断产生是在相应的中断标志置1并且相应的中断使能情况下产生。中断请求保持活动直到中断标志被清除,或中断失能,或DAC复位。见寄存器描述关于怎样清除中断标志。 DAC有一个通用的对所有中断源的中断请求线。用户必须读INTFLAG寄存器来检查哪个中断条件存在。 注意为了中断请求的产生中断必须写全局使能。参考”Nested Vector Interrupt Controller” 的描述。 34.6.4.3 事件 DAC能产生下列输出事件: 。数据缓冲空(EMPTY) 写一个1到事件控制寄存器的事件输出比特(EVCTRL.xxEO)使能相应的输出事件。写0到这些比特位失能相应的输出事件。参考”EVSYS-Event System”关于配置输入事件的描述。 DAC能在输入事件发生下列行为: 。开始转换(START) 写一个1到事件控制寄存器的事件输出比特(EVCTRL.xxEI)使能相应的输入事件行为。写一个0到这个比特失能相应的输入事件行为。注意如果几个事件连接到DAC,使能行为将发生在任何进入的事件。参考”EVSYS-Event System”关于配置输入事件的描述. 34.6.5 休眠模式操作 DAC的通用时钟在idle休眠模式中是运行的.如果运行在控制A寄存器的Standby比特是1(CTRLA.RUNSTDBY),DAC输出缓冲将在standby休眠模式中保持它的值.如果CTRLA.RUNSTDBY是0,DAC输出缓冲将在standby休眠模式中失能。 34.6.6 同步 处理CLK_DAC_APB和GCLK_DAC之间同步,当访问时一些寄存器必须被同步。寄存器能请求: 。当写时同步 。当读时同步 。当读写时同步 。不需要同步 当执行一个操作需要同步,在状态寄存器中的忙比特立刻置1,当同步完成时被清除。同步完成同步完成中断能被用作信号。 如果一个操作需要同步执行,而这时STATUS.SYNCBUSY是1,总线将被拖延。所有的操作将成功结束,但CPU将被拖延并且中断将被挂起同总线拖延一样长。 下列比特需要写时同步: 。控制A寄存器中的软件复位比特(CTRLA.SWRST) 。控制A寄存器中的使能比特(CTRLA.ENABLE) 。数据寄存器中所有比特位(DATA) 。数据缓冲寄存器中所有比特(DATABUF) 同步是通过寄存器描述中写同步属性指示的。 以下比特当读时需要同步。 。数据寄存器中所有比特位(DATA)
|