📄 lzkfunc.lst
字号:
774 if( EnterKeyPresCNT >= KeyPresEvtTime )// 20 times Key Press, 250mS.
775 {
776 if( EnterKeyPresEVT == 0 )
777 {
778 EnterKeyPresCNT = EnterKeyPresCNT - KeyPresEvtTime;
779 EnterKeyPresEVT = 1;
780 }
781 }
782 }
783 else
784 {
785 if( EnterKeyPresCNT >= KeyPresEvtTime )// 20 times Key Press, 250mS.
786 EnterKeyPresEVT = 1;
787 if( EnterKeyPresCNT >= KeyRelsEvtTime ) // 2 times Key Press, 25mS.
788 EnterKeyRelsEVT = 1;
789
790 EnterKeyPresCNT = 0;
791 } /* End of Enter Key */
792
793 KeyScanIntvlCNT = 0;
C51 COMPILER V7.20 LZKFUNC 09/04/2006 16:29:05 PAGE 14
794 }
795
796 /*****************************************************************
797 *** CanBUS数据收发
798 *****************************************************************/
799
800 }
801
802 /*****************************************************************
803 *** TIMER 0 SLOT 3
804 *** (1)直流励磁电压UF采样, 每周波32点(1.6kSPS);
805 *** (2)直流励磁电流IF采样,每周波32点(1.6kSPS);
806 *****************************************************************/
807 /*
808 uint8 xdata EmVoltSamCNT;
809 INTUC xdata EmVoltSamDATA[32];
810 uint16 xdata EmVoltDATA; // 励磁电压实测值
811
812 uint8 xdata EmCurrSamCNT;
813 INTUC xdata EmCurrSamDATA[32];
814 uint16 xdata EmCurrDATA; // 励磁电流实测值
815
816 EmVoltSamEN
817 EmVoltSamOVER
818 EmCurrSamEN
819 EmCurrSamOVER
820 */
821 if( TimSlotCNT == 3 ) // 32 * 0.625 = 20mS.
822 {
823 if( EmVoltSamEN == 1 )
824 {
825 ADC0_CH_Setting(0x02); // AIN02 for UF.
826 AD0INT = 0; // RST ADC Convert Complete Flag.
827 AD0INT = 0; // Delay.
828 AD0BUSY = 1; // Start ADC0
829 while( AD0INT == 0 ); // Wait for Convert Over
830
831 EmVoltSamDATA[EmVoltSamCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
832 EmVoltSamDATA[EmVoltSamCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
833 EmVoltSamDATA[EmVoltSamCNT].uiVAR = EmVoltSamDATA[EmVoltSamCNT].uiVAR >> 4;
834
835 EmVoltSamCNT++;
836 if( EmVoltSamCNT >= 32 )
837 {
838 EmVoltSamCNT = 0;
839 EmVoltSamEN = 0; // 等待程序重新使能
840 EmVoltSamOVER = 1; // 本轮采样结束标记,等待处理
841 }
842 }
843
844 if( EmCurrSamEN == 1 )
845 {
846 ADC0_CH_Setting(0x03); // AIN03 = IF or CurrRingEI.
847 AD0INT = 0; // RST ADC Convert Complete Flag.
848 AD0INT = 0; // Delay.
849 AD0BUSY = 1; // Start ADC0
850 while( AD0INT == 0 ); // Wait for Convert Over
851
852 EmCurrSamDATA[EmCurrSamCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
853 EmCurrSamDATA[EmCurrSamCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
854 EmCurrSamDATA[EmCurrSamCNT].uiVAR = EmCurrSamDATA[EmCurrSamCNT].uiVAR >> 4;
855
C51 COMPILER V7.20 LZKFUNC 09/04/2006 16:29:05 PAGE 15
856 EmCurrSamCNT++;
857 if( EmCurrSamCNT >= 32 )
858 {
859 EmCurrSamCNT = 0;
860 EmCurrSamEN = 0; // 等待程序重新使能
861 EmCurrSamOVER = 1; // 本轮采样结束标记,等待处理
862 }
863 }
864 else
865 {
866 if( EmCurr_CurrRingSamEN )
867 {
868 ADC0_CH_Setting(0x03); // AIN03 = CurrRingEI.
869 AD0INT = 0; // RST ADC Convert Complete Flag.
870 AD0INT = 0; // Delay.
871 AD0BUSY = 1; // Start ADC0
872 while( AD0INT == 0 ); // Wait for Convert Over
873
874 EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
875 EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
876 EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].uiVAR = EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamC
-NT].uiVAR >> 4;
877
878 EmCurr_CurrRingSamCNT++;
879 if( EmCurr_CurrRingSamCNT >= 32 )
880 {
881 EmCurr_CurrRingSamCNT = 0;
882 EmCurr_CurrRingSamEN = 0; // 等待程序重新使能
883 EmCurr_CurrRingSamOVER = 1; // 本轮采样结束标记,等待处理
884 }
885 }
886 }
887 }
888
889 /*****************************************************************
890 *** TIMER 0 SLOT 4
891 *** (1)采样定子电压或功率因数电流环电流;
892 *** (2)电流采样,用于计算功率因数
893 *****************************************************************/
894 /*
895 uint8 xdata DUxDIxSamCNT; // 采样计数
896 INTUC xdata DUxSamDATA[32]; //
897
898 INTUC xdata DIxSamDATA[32]; //
899 DUxDIxSamOVER //
900 */
901 if( TimSlotCNT == 4 ) //
902 {
903 /*****************************************************************
904 *** 功率因数电流环电流采样;
905 *****************************************************************/
906 if( PwrFact_CurrRingSamEN == 1 )
907 {
908 CurrRingEYSamTimSlotCNT++; // 采样间隔4 * 0.625uS = 2.5mS.
909 if( CurrRingEYSamTimSlotCNT >= 4 )
910 {
911 CurrRingEYSamTimSlotCNT = 0;
912
913 ADC0_CH_Setting(0x00); // AIN00 = AinDU or CurrRingEY.
914 AD0INT = 0; // RST ADC Convert Complete Flag.
915 AD0INT = 0; // Delay.
916 AD0BUSY = 1; // Start ADC0
C51 COMPILER V7.20 LZKFUNC 09/04/2006 16:29:05 PAGE 16
917 while( AD0INT == 0 ); // Wait for Convert Over
918 PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
919 PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
920 PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].uiVAR = CurrRingEYDATA[CurrRingEYSamTimCNT].u
-iVAR >> 4;
921
922 PwrFact_CurrRingSamTimCNT++;
923 if( PwrFact_CurrRingSamTimCNT >= 8 )
924 {
925 PwrFact_CurrRingSamTimCNT = 0;
926 PwrFact_CurrRingSamEN = 0;
927 PwrFact_CurrRingSamOVER = 1;
928 }
929 } // End of CurrRingEY Sampling.
930 }
931
932 /*****************************************************************
933 *** (1)采样定子电压;
934 *** (2)采样定子电流;
935 *** 说明:优先级低于功率因数电流环方式;
936 *****************************************************************/
937 else
938 {
939 if( PwrFact_DUxDIxSamEN == 1 )
940 {
941 ADC0_CH_Setting(0x00); // AIN00 = AinDU or CurrRingEY.
-
942 AD0INT = 0; // RST ADC Convert Complete Flag.
943 AD0INT = 0; // Delay.
944 AD0BUSY = 1; // Start ADC0
945 while( AD0INT == 0 ); // Wait for Convert Over
946 DUxSamDATA[DUxDIxSamCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
947 DUxSamDATA[DUxDIxSamCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
948 DUxSamDATA[DUxDIxSamCNT].uiVAR = DxSamDATA[DUxDIxSamCNT].uiVAR >> 4;
949
950 ADC0_CH_Setting(0x01); // AIN01 = AinDI.
951 AD0INT = 0; // RST ADC Convert Complete Flag.
952 AD0INT = 0; // Delay.
953 AD0BUSY = 1; // Start ADC0
954 while( AD0INT == 0 ); // Wait for Convert Over
955 DIxSamDATA[DUxDIxSamCNT].ucVAR[1] = ADC0H; // Get High 8 Byte.
956 DIxSamDATA[DUxDIxSamCNT].ucVAR[0] = ADC0L; // Get Low 8 Byte.
957 DIxSamDATA[DUxDIxSamCNT].uiVAR = DIxSamDATA[DUxDIxSamCNT].uiVAR >> 4;
958
959 DUxDIxSamCNT++;
960 if( DUxDIxSamCNT >= 32 )
961 {
962 DUxDIxSamCNT = 0;
963 PwrFact_DUxDIxSamEN = 0;
964
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -