PCA捕获输入频率失败救助
下载器频率设置为30Mvoid PCA(void) interrupt 7using 1
{
if(CCF0 == 1)
{
CCF0 = 0;
if (CF && ((CCAP0H & 0x80) == 0))
{
CF = 0;
cnt++;
}
count0=count1;
((BYTE*)&count1)=CCAP0L;
((BYTE*)&count1)=CCAP0H;
((BYTE*)&count1)=cnt;
((BYTE*)&count1)=0;
length=count1-count0;
t5=(3000000000/length)/10000;
((BYTE *)&length) = 0;
cnt=0;
//over_count=0;
}
if(CF == 1)
{
CF = 0;
cnt++;
}
}
oid main()
{
P1M0 = 0x00; //1.01234567 power put
P1M1 = 0x00;
P3M0 = 0x7F; //3.23456 power put
P3M1 = 0x80;
P36 = 1;//CS
P33 = 1;// DATA
P32 = 1;// WR
P37 = 0; //TSS1
ACC = P_SW1;
ACC &= ~(CCP_S0 | CCP_S1); //CCP_S0=0 CCP_S1=0
P_SW1 = ACC; //(P1.2/ECI, P1.1/CCP0, P1.0/CCP1, P3.7/CCP2)
CCON = 0;
CMOD = 0x09;
CCAPM0 = 0x11;
CL = 0; //??PCA???
CH = 0;
CCAP0L = 0;
CCAP0H = 0;
cnt = 0;
count0 = 0;
count1 = 0;
CR = 1; //PCA???????
EA = 1;
while (OK)
{
displaydata(t5,0,0,0,0);
// delay6();
// delay6();
delay6();
}
}
本帖最后由 梁工 于 2023-5-5 14:15 编辑
帖子应该发在“PWM/144MHz时钟源的PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC”专栏,难怪我找不到。
捕捉测频,就是测量周期(上升沿或下降沿均可),然后计算频率,下面的例子是捕捉周期,自己计算一下倒数即可。
请参考“03-PCA-3路捕捉-串口1返回-C语言”
页:
[1]