fix:修复调光时间BUG

解决调光时间一样的情况下,调光亮与调光灭的实际调光时间不一致问题
This commit is contained in:
caocong
2025-12-15 20:48:52 +08:00
commit 2dd675869a
41 changed files with 15313 additions and 0 deletions

534
PWM15bit.c Normal file
View File

@@ -0,0 +1,534 @@
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
/* --- QQ: 800003751 -------------------------------------------------*/
/* <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
/*---------------------------------------------------------------------*/
#include "PWM15bit.h"
u16 code PWMxCR[48] = {
0xff14, /* PWM00CR */
0xff1c, /* PWM01CR */
0xff24, /* PWM02CR */
0xff2c, /* PWM03CR */
0xff34, /* PWM04CR */
0xff3c, /* PWM05CR */
0xff44, /* PWM06CR */
0xff4c, /* PWM07CR */
0xff64, /* PWM10CR */
0xff6c, /* PWM11CR */
0xff74, /* PWM12CR */
0xff7c, /* PWM13CR */
0xff84, /* PWM14CR */
0xff8c, /* PWM15CR */
0xff94, /* PWM16CR */
0xff9c, /* PWM17CR */
0xffb4, /* PWM20CR */
0xffbc, /* PWM21CR */
0xffc4, /* PWM22CR */
0xffcc, /* PWM23CR */
0xffd4, /* PWM24CR */
0xffdc, /* PWM25CR */
0xffe4, /* PWM26CR */
0xffec, /* PWM27CR */
0xfc14, /* PWM30CR */
0xfc1c, /* PWM31CR */
0xfc24, /* PWM32CR */
0xfc2c, /* PWM33CR */
0xfc34, /* PWM34CR */
0xfc3c, /* PWM35CR */
0xfc44, /* PWM36CR */
0xfc4c, /* PWM37CR */
0xfc64, /* PWM40CR */
0xfc6c, /* PWM41CR */
0xfc74, /* PWM42CR */
0xfc7c, /* PWM43CR */
0xfc84, /* PWM44CR */
0xfc8c, /* PWM45CR */
0xfc94, /* PWM46CR */
0xfc9c, /* PWM47CR */
0xfcb4, /* PWM50CR */
0xfcbc, /* PWM51CR */
0xfcc4, /* PWM52CR */
0xfccc, /* PWM53CR */
0xfcd4, /* PWM54CR */
0xfcdc, /* PWM55CR */
0xfce4, /* PWM56CR */
0xfcec, /* PWM57CR */
};
u16 code PWMxT1[48] = {
0xff10, /* PWM00T1 */
0xff18, /* PWM01T1 */
0xff20, /* PWM02T1 */
0xff28, /* PWM03T1 */
0xff30, /* PWM04T1 */
0xff38, /* PWM05T1 */
0xff40, /* PWM06T1 */
0xff48, /* PWM07T1 */
0xff60, /* PWM10T1 */
0xff68, /* PWM11T1 */
0xff70, /* PWM12T1 */
0xff78, /* PWM13T1 */
0xff80, /* PWM14T1 */
0xff88, /* PWM15T1 */
0xff90, /* PWM16T1 */
0xff98, /* PWM17T1 */
0xffb0, /* PWM20T1 */
0xffb8, /* PWM21T1 */
0xffc0, /* PWM22T1 */
0xffc8, /* PWM23T1 */
0xffd0, /* PWM24T1 */
0xffd8, /* PWM25T1 */
0xffe0, /* PWM26T1 */
0xffe8, /* PWM27T1 */
0xfc10, /* PWM30T1 */
0xfc18, /* PWM31T1 */
0xfc20, /* PWM32T1 */
0xfc28, /* PWM33T1 */
0xfc30, /* PWM34T1 */
0xfc38, /* PWM35T1 */
0xfc40, /* PWM36T1 */
0xfc48, /* PWM37T1 */
0xfc60, /* PWM40T1 */
0xfc68, /* PWM41T1 */
0xfc70, /* PWM42T1 */
0xfc78, /* PWM43T1 */
0xfc80, /* PWM44T1 */
0xfc88, /* PWM45T1 */
0xfc90, /* PWM46T1 */
0xfc98, /* PWM47T1 */
0xfcb0, /* PWM50T1 */
0xfcb8, /* PWM51T1 */
0xfcc0, /* PWM52T1 */
0xfcc8, /* PWM53T1 */
0xfcd0, /* PWM54T1 */
0xfcd8, /* PWM55T1 */
0xfce0, /* PWM56T1 */
0xfce8, /* PWM57T1 */
};
u16 code PWMxT2[48] = {
0xff12, /* PWM00T2 */
0xff1a, /* PWM01T2 */
0xff22, /* PWM02T2 */
0xff2a, /* PWM03T2 */
0xff32, /* PWM04T2 */
0xff3a, /* PWM05T2 */
0xff42, /* PWM06T2 */
0xff4a, /* PWM07T2 */
0xff62, /* PWM10T2 */
0xff6a, /* PWM11T2 */
0xff72, /* PWM12T2 */
0xff7a, /* PWM13T2 */
0xff82, /* PWM14T2 */
0xff8a, /* PWM15T2 */
0xff92, /* PWM16T2 */
0xff9a, /* PWM17T2 */
0xffb2, /* PWM20T2 */
0xffba, /* PWM21T2 */
0xffc2, /* PWM22T2 */
0xffca, /* PWM23T2 */
0xffd2, /* PWM24T2 */
0xffda, /* PWM25T2 */
0xffe2, /* PWM26T2 */
0xffea, /* PWM27T2 */
0xfc12, /* PWM30T2 */
0xfc1a, /* PWM31T2 */
0xfc22, /* PWM32T2 */
0xfc2a, /* PWM33T2 */
0xfc32, /* PWM34T2 */
0xfc3a, /* PWM35T2 */
0xfc42, /* PWM36T2 */
0xfc4a, /* PWM37T2 */
0xfc62, /* PWM40T2 */
0xfc6a, /* PWM41T2 */
0xfc72, /* PWM42T2 */
0xfc7a, /* PWM43T2 */
0xfc82, /* PWM44T2 */
0xfc8a, /* PWM45T2 */
0xfc92, /* PWM46T2 */
0xfc9a, /* PWM47T2 */
0xfcb2, /* PWM50T2 */
0xfcba, /* PWM51T2 */
0xfcc2, /* PWM52T2 */
0xfcca, /* PWM53T2 */
0xfcd2, /* PWM54T2 */
0xfcda, /* PWM55T2 */
0xfce2, /* PWM56T2 */
0xfcea, /* PWM57T2 */
};
u16 code PWMxHLD[48] = {
0xff15, /* PWM00HLD */
0xff1d, /* PWM01HLD */
0xff25, /* PWM02HLD */
0xff2d, /* PWM03HLD */
0xff35, /* PWM04HLD */
0xff3d, /* PWM05HLD */
0xff45, /* PWM06HLD */
0xff4d, /* PWM07HLD */
0xff65, /* PWM10HLD */
0xff6d, /* PWM11HLD */
0xff75, /* PWM12HLD */
0xff7d, /* PWM13HLD */
0xff85, /* PWM14HLD */
0xff8d, /* PWM15HLD */
0xff95, /* PWM16HLD */
0xff9d, /* PWM17HLD */
0xffb5, /* PWM20HLD */
0xffbd, /* PWM21HLD */
0xffc5, /* PWM22HLD */
0xffcd, /* PWM23HLD */
0xffd5, /* PWM24HLD */
0xffdd, /* PWM25HLD */
0xffe5, /* PWM26HLD */
0xffed, /* PWM27HLD */
0xfc15, /* PWM30HLD */
0xfc1d, /* PWM31HLD */
0xfc25, /* PWM32HLD */
0xfc2d, /* PWM33HLD */
0xfc35, /* PWM34HLD */
0xfc3d, /* PWM35HLD */
0xfc45, /* PWM36HLD */
0xfc4d, /* PWM37HLD */
0xfc65, /* PWM40HLD */
0xfc6d, /* PWM41HLD */
0xfc75, /* PWM42HLD */
0xfc7d, /* PWM43HLD */
0xfc85, /* PWM44HLD */
0xfc8d, /* PWM45HLD */
0xfc95, /* PWM46HLD */
0xfc9d, /* PWM47HLD */
0xfcb5, /* PWM50HLD */
0xfcbd, /* PWM51HLD */
0xfcc5, /* PWM52HLD */
0xfccd, /* PWM53HLD */
0xfcd5, /* PWM54HLD */
0xfcdd, /* PWM55HLD */
0xfce5, /* PWM56HLD */
0xfced, /* PWM57HLD */
};
//========================================================================
// <20><><EFBFBD><EFBFBD>: u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
// <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
// pwm_eno: pwm<77><6D><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, 0<><30>ΪGPIO, 1<><31>ΪPWM<57><4D><EFBFBD><EFBFBD>.
// pwm_ini: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ, 0Ϊ<30>͵<EFBFBD>ƽ, 1Ϊ<31>ߵ<EFBFBD>ƽ.
// pwm_eni: pwmͨ<6D><CDA8><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ж<EFBFBD>.
// pwm_ent2i: pwmͨ<6D><CDA8><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
// pwm_ent1i: pwmͨ<6D><CDA8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
// <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
// <20>汾: V1.0, 2020-09-22
//========================================================================
u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
{
u8 xdata *pPWMxCR;
if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
if(pwm_eno > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
if(pwm_ini > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
if(pwm_eni > 1) return 2; //<2F>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
if(pwm_ent2i > 1) return 2; //<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
if(pwm_ent1i > 1) return 2; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
pPWMxCR = (u8 *)PWMxCR[PWM_id];
*pPWMxCR = (pwm_eno << 7) | (pwm_ini << 6) | (pwm_eni << 2)| (pwm_ent2i << 1)| pwm_ent1i;
EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
return 0;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: u8 PWMPeriodDuty(u8 PWM_id, u16 Period, u16 dutyL, u16 dutyH)
// <20><><EFBFBD><EFBFBD>: PWM<57><4D><EFBFBD><EFBFBD>, ռ<>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
// dutyL: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
// dutyH: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
// <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
// <20>汾: V1.0, 2020-09-22
//========================================================================
u8 PWM15Duty(u8 PWM_id,u16 dutyL)
{
u16 xdata *pPWMxT1;
u16 xdata *pPWMxT2;
if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
//if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
pPWMxT1 = (u16 *)PWMxT1[PWM_id];
*pPWMxT1 = dutyL & 0x7fff;
pPWMxT2 = (u16 *)PWMxT2[PWM_id];
*pPWMxT2 = 0x0000 & 0x7fff;
EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
return 0;
}
u8 qPWM15Duty(u8 PWM_id,u16 dutyL, u16 dutyH)
{
u16 xdata *pPWMxT1;
u16 xdata *pPWMxT2;
if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
pPWMxT1 = (u16 *)PWMxT1[PWM_id];
*pPWMxT1 = dutyL & 0x7fff;
pPWMxT2 = (u16 *)PWMxT2[PWM_id];
*pPWMxT2 = dutyH & 0x7fff;
EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
return 0;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: u8 PWMOutputSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
// <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
// pwm_hldl: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ.
// pwm_hldh: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ.
// <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
// <20>汾: V1.0, 2020-09-22
//========================================================================
u8 PWMLevelSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
{
u8 xdata *pPWMxHLD;
if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
if(pwm_hldh > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
if(pwm_hldl > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
pPWMxHLD = (u8 *)PWMxHLD[PWM_id];
*pPWMxHLD = (pwm_hldh << 1) | pwm_hldl;
EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
return 0;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
// <20><><EFBFBD><EFBFBD>: 15λ<35><CEBB>ǿ<EFBFBD><C7BF>PWM<57><4D>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: PWM_id: PWM<57><4D><EFBFBD><EFBFBD>. ȡֵ PWM0,PWM1,PWM2,PWM3,PWM4,PWM5
// PWMx: <20><EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-09-22
//========================================================================
void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
{
if(PWM_id > PWM5) return; //id<69><64><EFBFBD><EFBFBD>
EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
if(PWM_id == PWM0)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM0_Enable(); //ʹ<><CAB9>PWM0
else PWM15_PWM0_Disable(); //<2F>ر<EFBFBD>PWM0
PWM0_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM0C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter0_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter0_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM_id == PWM1)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM1_Enable(); //ʹ<><CAB9>PWM1
else PWM15_PWM1_Disable(); //<2F>ر<EFBFBD>PWM1
PWM1_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM1C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter1_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter1_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM_id == PWM2)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM2_Enable(); //ʹ<><CAB9>PWM2
else PWM15_PWM2_Disable(); //<2F>ر<EFBFBD>PWM2
PWM2_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM2C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter2_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter2_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM_id == PWM3)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM3_Enable(); //ʹ<><CAB9>PWM3
else PWM15_PWM3_Disable(); //<2F>ر<EFBFBD>PWM3
PWM3_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM3C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter3_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter3_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM_id == PWM4)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM4_Enable(); //ʹ<><CAB9>PWM4
else PWM15_PWM4_Disable(); //<2F>ر<EFBFBD>PWM4
PWM4_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM4C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter4_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter4_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM_id == PWM5)
{
if(PWMx->PWM_Enable == ENABLE) PWM15_PWM5_Enable(); //ʹ<><CAB9>PWM5
else PWM15_PWM5_Disable(); //<2F>ر<EFBFBD>PWM5
PWM5_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
PWM5C = PWMx->PWM_Period & 0x7fff;
if(PWMx->PWM_Counter == ENABLE) PWM15_Counter5_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
else PWM15_Counter5_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
}
EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM0_Handler (void) interrupt PWM0_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM0<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
void PWM0_Handler (void) interrupt PWM0_VECTOR
{
char store;
store = P_SW2;
P_SW2 |= 0x80;
if(PWMCFG01 & 0x08) //PWM0<4D>ж<EFBFBD>
{
PWMCFG01 &= ~0x08; //<2F><>PWM0<4D>жϱ<D0B6>־
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM0IF)
{
PWM0IF = 0;
P27 = ~P27;
}
P_SW2 = store;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM1_Handler (void) interrupt PWM1_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM1<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
void PWM1_Handler (void) interrupt PWM1_VECTOR
{
char store;
store = P_SW2;
P_SW2 |= 0x80;
if(PWMCFG01 & 0x80) //PWM1<4D>ж<EFBFBD>
{
PWMCFG01 &= ~0x80; //<2F><>PWM1<4D>жϱ<D0B6>־
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM1IF)
{
PWM1IF = 0;
P26 = ~P26;
}
P_SW2 = store;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM2_Handler (void) interrupt PWM2_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM2<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
void PWM2_Handler (void) interrupt PWM2_VECTOR
{
char store;
store = P_SW2;
P_SW2 |= 0x80;
if(PWMCFG23 & 0x08) //PWM2<4D>ж<EFBFBD>
{
PWMCFG23 &= ~0x08; //<2F><>PWM2<4D>жϱ<D0B6>־
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM2IF)
{
PWM2IF = 0;
P25 = ~P25;
}
P_SW2 = store;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM3_Handler (void) interrupt PWM3_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM3<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
void PWM3_Handler (void) interrupt PWM3_VECTOR
{
char store;
store = P_SW2;
P_SW2 |= 0x80;
if(PWMCFG23 & 0x80) //PWM3<4D>ж<EFBFBD>
{
PWMCFG23 &= ~0x80; //<2F><>PWM3<4D>жϱ<D0B6>־
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM3IF)
{
PWM3IF = 0;
P24 = ~P24;
}
P_SW2 = store;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM4_Handler (void) interrupt PWM4_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM4<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
void PWM4_Handler (void) interrupt PWM4_VECTOR
{
char store;
store = P_SW2;
P_SW2 |= 0x80;
if(PWMCFG45 & 0x08) //PWM4<4D>ж<EFBFBD>
{
PWMCFG45 &= ~0x08; //<2F><>PWM4<4D>жϱ<D0B6>־
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
}
if(PWM4IF)
{
PWM4IF = 0;
P23 = ~P23;
}
P_SW2 = store;
}
//========================================================================
// <20><><EFBFBD><EFBFBD>: void PWM5_Handler (void) interrupt PWM5_VECTOR
// <20><><EFBFBD><EFBFBD>: PWM5<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD>: None
// <20><><EFBFBD><EFBFBD>: none.
// <20>汾: V1.0, 2020-10-13
//========================================================================
//void PWM5_Handler (void) interrupt PWM5_VECTOR //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD>31<33><31><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//{
// if(PWMCFG45 & 0x80) //PWM5<4D>ж<EFBFBD>
// {
// PWMCFG45 &= ~0x80; //<2F><>PWM5<4D>жϱ<D0B6>־
// // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
// }
//}