当前位置:首页 > 联系方式 >

PIC16F1829 比较器初始化设置及应用

编辑:北京盛典时光文化传媒有限公司时间:2017-09-09 10:33:35阅读次数:2
PIC16F1829 比较器初始化设置及应用 //===比较器2设置=========== //比较器2 反向输入端 通道选择 #define CMP2_C2NCH(x) CM2CON1 = (CM2CON1&0xFC)|x #define CMP2_IE_ENB C2IE = 1 #define CMP2_IE_DIS C2IE = 0 #define CMP2_INTP_ENB C2INTP = 1 //允许产生正边沿中断标志 #define CMP2_INTP_DIS C2INTP = 0 //不允许产生正边沿中断标志 #define CMP2_INTN_ENB C2INTN = 1 //允许产生负边沿中断标志 #define CMP2_INTN_DIS C2INTN = 0 //不允许产生负边沿中断标志 #define CMP2_OUT C2OUT //比较器2输出位 //************************************* // 函数名称:Init_Cmp1BC // 函数功能:初始化比较器1设置 // 入口参数: // 出口参数:无 // //*************************************** void Init_Cmp2BC(void) (1<<4) ; //开启比较器 快速模式 比较器输出极性反相 // C2HYS = 1 ;//比较器滞后 CM2CON1 = 0X00 ; // C2OE = 1 ;//输出使能 // C2INTP = 1 ;//允许正向边沿 // C2INTN = 1 ;//允许负向边沿 //************************************* // 函数名称:SetCmpParam // 函数功能:设置比较器参数 // 入口参数:当前步1-6 // 出口参数: // 血液 : 此设置为BLDC 无感检测反电动势设置 //*************************************** void SetCmpParam(uint8 Invalue) { if(F_Direction == ZEN) { switch(Invalue)//取步 正转 case 1 : //AB CMP2_C2NCH(CPLC_CHANAL) ;//检测C点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; case 2 ://AC CMP2_C2NCH(CPLB_CHANAL) ;//检测B点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; case 3 : //BC CMP2_C2NCH(CPLA_CHANAL) ;//检测A点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; case 4 ://BA CMP2_C2NCH(CPLC_CHANAL) ;//检测C点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; case 5 ://CA CMP2_C2NCH(CPLB_CHANAL) ;//检测B点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; case 6 ://CB CMP2_C2NCH(CPLA_CHANAL) ;//检测A点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; default : return ; //霍尔信号不正确 直接退出 //break ; } else //反转 { switch(Invalue)//取步 反转 case 1 : //AB CMP2_C2NCH(CPLC_CHANAL) ;//检测C点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; case 2 ://AC CMP2_C2NCH(CPLB_CHANAL) ;//检测C点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; case 3 : //BC CMP2_C2NCH(CPLA_CHANAL) ;//检测C点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; case 4 ://BA CMP2_C2NCH(CPLC_CHANAL) ;//检测C点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; case 5 ://CA CMP2_C2NCH(CPLB_CHANAL) ;//检测C点电势 CMP2_INTN_DIS ; CMP2_INTP_ENB ; //检测上降沿 break ; case 6 ://CB CMP2_C2NCH(CPLA_CHANAL) ;//检测C点电势 CMP2_INTP_DIS ; CMP2_INTN_ENB ; //检测下降沿 break ; default : return ; //霍尔信号不正确 直接退出 //break ; } } //---应用实例---- //CMP2 初始化 Init_Cmp2BC() ; //初始化比较器2 //设置比较器参数 SetCmpParam(1) ;//

,站群系统,专题系统

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:孝感网站制作 http://xiaogan.666rj.com

上一篇:新站测试巧用系统hosts文件 下一篇:最后一页

相关阅读