STC12C12C5410 PCA应用
/*PWM波频率=Fosc/2/256 */
void STC_PCA(void)
{
CMOD=0x00; //set PCA timer pca2
CL=0x00;
CH=0x00;
// 初始化 PCA
CCON = 0x04;// 启动 PCA2
CCAPM2 = 0x31;// PCA 的模块 0 正、负跳均捕获,允许中断,右侧码盘输入
// 初始化相关中断
IE = IE|0x40; // PCA 中断
IP = IP|0x40;// PCA置为优先级 1
CR=1; //开始PCA 定时器
//EA=1;
}
/********************************************/
/********************************************/
/* PCA 中断服务 */
/* 说明: CCF2、1 用于码盘输入*/
/**/
/********************************************/
void PCA_Int(void) interrupt 6
{
EA=0;
//Key_Beep();
if(CF == 1)
{
CF = 0;//如果有信号就进入扑捉中断
}
if(CCF2 == 1)
{
// 码盘信号输入
CCF2 = 0;
mapan_num++;// 每来一个脉冲 +1
pca_count_1s++; //用于计算速度用
}
EA=1;
}
评论