#include "Pwm_Capture_value.h" INT8U OLD_PULSE1F; //�ɵ�ת�ٱ��ź������״̬ INT16U CSB_T01_HL; INT16U CSB_T10_HL; INT16U CSB_SJTime_HL; //ת�ٱ��¼��궨ʱ��(��λ60US) INT8U T1IMEB_CUNT; //��ʱ��(��ת�ٱ��������峬�����) INT16U CSB_TS_BUFF; //���ٱ� ʱ�仺�� INT8U CSB_Freq_FF; //=1��ʾ���Ե�Ƶ��ֵ INT8U CSB_TB_FF; //=0��ʾ��TBֵ INT16U CSB_TS_CC; INT8U CSB_PULS_BUFF; INT8U CSB_PUZUO_FF; //=0������,=1������ INT8U CSB_TB_FF; //=0��ʾ��TBֵ INT8U CSB_T01_FF; //=0��ʾ��T01ֵ INT16U CSB_TB_HL; INT8U CSB_PULS_N; INT16U CSB_SS_FrHL; //���ٱ�ʵʱ����Ƶ�� /********************************************************************************** * �������ƣ�BL_PWM_Duty_Cycle_Capture_CSB_ISR * ����˵��������Ƶ�ʻ�ȡ * ����Ƶ�� * * *******************************************************************************/ void BL_PWM_Duty_Cycle_Capture_CSB_ISR(void) { INT16U mTIME; CSB_SJTime_HL++; if( LINE_SPEED_IN ) //����Ƶ������ { if(!OLD_PULSE1F) //�ɵ� �ɵ�ת�ٱ��ź������״̬ { //0--->1 �͵�ƽ���ߵ�ƽ OLD_PULSE1F=1; CSB_T01_HL = CSB_SJTime_HL; // CSB_SJTime_HL ת�ٱ��¼��궨ʱ��(��λ60US) CSB_T01_FF = 1; //��ʾT01����ֵ if(CSB_PUZUO_FF) //������?,no ���������� //=0������,=1������ { if( (CSB_T01_HL-CSB_T10_HL) < 8 ) goto INT_CSB_END; T1IMEB_CUNT = 0; //�峬ʱ��ʱ�� CSB_PUZUO_FF = 0; //�������ر�־ //------------------------- mTIME=CSB_T01_HL-CSB_TB_HL; if( mTIME>=1875 ) //0.12s 1515 11Hz�� (1/11)*1000000/50=1818 { CSB_TS_BUFF = mTIME; CSB_PULS_BUFF = 1; CSB_Freq_FF=1; //�ò��Ե�Ƶ�ʱ�־ CSB_T01_HL=0; CSB_SJTime_HL=0; CSB_TB_FF=0; //����TB��־ CSB_TS_CC = CSB_PULS_N=0; } } } } else { if(OLD_PULSE1F) { //1--->0 OLD_PULSE1F=0; CSB_T10_HL = CSB_SJTime_HL; if(CSB_PUZUO_FF) //������?,no goto INT_CSB_END; if(CSB_T01_FF) //T01����ֵ?,YES { if( (CSB_T10_HL-CSB_T01_HL) < 8 ) goto INT_CSB_END; T1IMEB_CUNT = 0; //�峬ʱ��ʱ�� CSB_PUZUO_FF = 1; //�������ر�־ if(CSB_TB_FF) //��TBֵ?,YES { //��TBֵ CSB_PULS_N++; CSB_TS_CC=CSB_TS_CC+CSB_T01_HL-CSB_TB_HL; CSB_TB_HL=CSB_T01_HL; CSB_SJTime_HL=CSB_SJTime_HL-CSB_TB_HL; CSB_T10_HL=CSB_SJTime_HL; CSB_TB_HL=0; //--------------------------------- if((((INT8U)CSB_PULS_N)&((4)-1))==0)//CSB_PULS_NN��4��8��������?,YES { CSB_TS_BUFF=CSB_TS_CC; CSB_PULS_BUFF=CSB_PULS_N; if(CSB_TS_CC>=2344) //2500(0.15s) 1667(0.1S) 2000*0.05MS=0.1S { CSB_TS_CC=CSB_PULS_N=0; CSB_Freq_FF=1; //�ò��Ե�Ƶ�ʱ�־ } } else { if(CSB_TS_CC>=2344) //2500(0.15s) 1667(0.1S) 2000*0.05MS=0.1S { if(CSB_PULS_N< 4) { CSB_TS_BUFF=CSB_TS_CC; CSB_PULS_BUFF=CSB_PULS_N; CSB_TS_CC=CSB_PULS_N=0; CSB_Freq_FF=1; //�ò��Ե�Ƶ�ʱ�־ } else { CSB_TS_CC=CSB_PULS_N=0; CSB_Freq_FF=1; //�ò��Ե�Ƶ�ʱ�־ } } } } else { //��TBֵ CSB_TB_FF=1; CSB_TB_HL=CSB_T01_HL; } } } } INT_CSB_END : mTIME = 0 ; } INT16U Hyq_mPULS ; INT16U Hyq_mTIME ; INT16U GJ_T_JSCCSBF(INT8U mTYPE) { INT16U mPULS; INT16U mTIME; if(mTYPE) { cli(); //��ֹȫ���ж� mPULS=CSB_PULS_BUFF; mTIME=CSB_TS_BUFF; sei(); //��ȫ���ж� } //else //{ // cli(); //��ֹȫ���ж� // mPULS=ZSB_PULS_BUFF; // mTIME=ZSB_TS_BUFF; // sei(); //��ȫ���ж� // //} Hyq_mPULS = mPULS; Hyq_mTIME = mTIME; return (((INT32U)199897)*mPULS)/(mTIME); //64us-156170 50us-199897 } //================================================== //�������㳵�ٱ����ж��е�����Ƶ�ʵ�10��ֵ 2015-12-30 // //����:����1��ʾ������Ч����,��������CSB_SS_FrHL�� //================================================== INT8U ReadCSBPULESP(void) { T1IMEB_CUNT++; if(T1IMEB_CUNT==202) //300MS? 152*1.98=300.96MS { T1IMEB_CUNT=0; cli(); //��ֹȫ���ж� CSB_PUZUO_FF=0; CSB_T01_FF=0; CSB_SJTime_HL=0; sei(); //��ȫ���ж� CSB_TB_FF=0; CSB_TS_CC=CSB_PULS_N=0; CSB_Freq_FF=0; CSB_SS_FrHL=0; //��Ƶ��Ϊ0 return 1; } if(CSB_Freq_FF) //������CAR_N_CCC�����ٱ���������? { CSB_Freq_FF=0; CSB_SS_FrHL = GJ_T_JSCCSBF(1); //���ݳ�ת�ٱ����ж��е����ݼ���10��Ƶ�� if( CSB_SS_FrHL<=15 ) //30 CSB_SS_FrHL=0; return 1; } else { return 0; } }