STC12C2052AD做PCA捕获中断怎么就是不能进入中断呢
程序如下:#include<stc.h>
sbit LED_R = P1^3;
void main(void)
{
P1M0 = 0x00;
P1M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
CMOD = 0x10; //pca空闲模式下停止工作,时钟源FOSC/12,禁止PCA中断
CCON = 0x00;
CH = 0x00;
CL = 0x00; //清零CH CL
CCAPM1 = 0x31; //PCA1(P3.5)上跳变触发,使能CCF1中断
CCAP1H = 0x00;
CCAP1L = 0x00;
LED_R = 0;
// EPCA_LVD = 1;
EA = 1;
CR = 1;
while(1);
}
void PCA_LVD_Routine(void) interrupt 6
{
CR = 0;
LED_R = ~LED_R;
CCF1 = 0;
CR = 1;
}
我选型是用AT89S52寄存器位都有改过都正确,但就是不能进入中断,求解 // EPCA_LVD = 1;
这个干嘛消掉了 回复【1楼】xiaowu191 小屋
-----------------------------------------------------------------------
因为试过也没有用,这个是低压中断,所以就消掉了 要使能ECCF1,EPCA_LVD,EA,才能进入PCA1捕获中断,进入之后最好判断一下;
而且中断标志CCF1是必须要软件清零的 回复【2楼】jiongeyes书册糕
-----------------------------------------------------------------------
那个是低压检测和pca模块共用的 看了以前用12c54写的,没什么差别((CMOD = 0x10;)?CIDL是第7位,不是第4位);
只是我把端口配置为输入了,试一下P3M0|=0x20; 回复【5楼】xiaowu191 小屋
-----------------------------------------------------------------------
谢谢,我把端口改为输入就成功了 奇怪我不开EA就不会进入中断,但我不开CR还是会运行PCA,一样进入中断,这又是为什么
CR只是启动计数器阵列进行控制位,那是不是做为捕获模式就不用启动呢,而我现在这种情况(不开CR还是进入中断)是不是属于计数器溢出中断呢 jiongeyes 发表于 2011-3-25 09:53 static/image/common/back.gif
奇怪我不开EA就不会进入中断,但我不开CR还是会运行PCA,一样进入中断,这又是为什么
CR只是启动计数器阵列 ...
ea是总中断,不开当然不会进入。cr不开,会因为ccfn溢出中断,因为两个是公用一个中断序号6的
页:
[1]