定时器启动AD转换的问题
时间:10-02
整理:3721RD
点击:
LF2407A,利用定时器定时读取AD转换值,为什么在中断处理程序中去掉将IFR清零的语句仍然可以不断的进入AD中断程序读取AD值呢?不是IFR如果不人工清零的话,对于以后的中断就不处理吗?谁能解释一下?好奇怪
IFR只是中断标志寄存器,不管你的中断是否使能,该标志位都会被置位的,如果你想关闭中断,可以设置定时器的中断使能寄存器(EVAIMRA之类的),或者是IMR寄存器,IFR我记不清是系统自动清除的还是自己手动清除的,你可以自己做个程序试一下,我记得好像是进入中断以后自动清除的
现在是利用定时器自动启动AD转换,奇怪了,我在AD中断的处理程序中设置的断点,可是IFR一直都是0啊,好像在AD中断处理程序之前已经被清零了,不知道IFR什么时候被置1?
你可以仔细看看芯片手册中关于中断处理的那部分,应该是当中断源发出中断请求的时候,置位IFR寄存器,如果相应的中断被使能的话,就会传入中断处理程序,一旦开始响应中断,ifr应该就被清掉了,为了验证,你也可以不使能中断,靠查询ifr寄存器来进入中断服务程序
哦,原来是这样啊,3ks!