📄 2006222212916.c
字号:
#include<c8051f120.h>
#define uint unsigned int
#define uchar unsigned char
uchar num1 = 0;
//uint numr = 0;
xdata uint pcacap0[10];
bit isnewdata;
void pca0ini(){//PCA CEX0配置为正负边沿均捕捉
SFRPAGE=0x00;
PCA0CPM0 = 0x21; // 正负边沿触发模式,CEX0捕捉中断使能
PCA0CPL0 = 0x00;
PCA0CPH0 = 0x00;
}
void pcaini(){
SFRPAGE=0x00;
PCA0MD=0x00;//PCA采用系统时钟的12分频,且PCA溢出中断禁止
PCA0CN=0x40;//启动PCA计数器
EIE1|=0x08;//PCA中断使能
}
/*void Oscillator_Init()
{
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x83;
} */
void config(){
//看门狗禁止
WDTCN = 0x07;
WDTCN = 0xDE;
WDTCN = 0xAD;
SFRPAGE = 0x0F;
XBR0 = 0x08;
XBR2 = 0x40;
//Oscillator_Init();
}
void PCA_ISR(void) interrupt 9 using 1 {
static xdata uint tmpcnt=0;
static xdata uint PCA0CP0=0;
xdata uint tmpcnt0;
//numr++;
if(CCF0){
tmpcnt0 = PCA0CPH0;
tmpcnt0 = tmpcnt0<<8;
PCA0CP0 = tmpcnt0 + PCA0CPL0;
pcacap0[num1]=PCA0CP0-tmpcnt;
tmpcnt = PCA0CP0;
num1++;
CCF0=0;
}
isnewdata=1;
}
void main(void){
config();
EA=1;
num1=0;
isnewdata=0;
pca0ini();
pcaini();
while(1){
if(isnewdata){
isnewdata=0;
if(num1>=10)
num1=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -