8051-ELL库  beta 1.1.6
8051-ELL library API Document Center
STC8x_MPWM.c 文件参考
#include "STC8x_MPWM.h"
STC8x_MPWM.c 的引用(Include)关系图:

宏定义

#define clrBitENGLBSET()   PWMSET&=(~ENGLBSET)
 
#define setBitENGLBSET()   PWMSET|=( ENGLBSET)
 
#define clrBitPWMRST()   PWMSET&=(~PWMRST)
 
#define setBitPWMRST()   PWMSET|=( PWMRST)
 
#define PWM_ENABLE(PORT)   PWMSET|=(1<<PORT)
 
#define PWM_DISABLE(PORT)   PWMSET&=(~(1<<PORT))
 
#define clrBitPWMnCBIF(PORT)
 
#define clrBitEPWMnCBI(PORT)
 
#define setBitEPWMnCBI(PORT)
 
#define clrBitPWMnCEN(PORT)
 
#define setBitPWMnCEN(PORT)
 
#define clrBitENPWMnTA(PORT)
 
#define setBitENPWMnTA(PORT)
 
#define setRegPWMnFDCR(PORT, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x06))) = VALUE
 
#define setRegPWMnC(PORT, VALUE)   ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x00))) = VALUE
 
#define setRegPWMnCKS(PORT, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x02))) = VALUE
 
#define setRegPWMnTADC(PORT, VALUE)   ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x03))) = VALUE
 
#define setRegPWMniT1(PORT, CHANNEL, VALUE)   ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 0))) = VALUE
 
#define setRegPWMniT1H(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 0))) = VALUE
 
#define setRegPWMniT1L(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 1))) = VALUE
 
#define setRegPWMniT2(PORT, CHANNEL, VALUE)   ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 2))) = VALUE
 
#define setRegPWMniT2H(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 2))) = VALUE
 
#define setRegPWMniT2L(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 3))) = VALUE
 
#define setRegPWMniCR(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) = VALUE
 
#define setBitPWMniEnableOut(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENO)
 
#define clrBitPWMniEnableOut(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENO)
 
#define setBitPWMniStartLevel(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( INI)
 
#define clrBitPWMniStartLevel(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~INI)
 
#define setBitPWMniEnableIntrupt(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENI)
 
#define clrBitPWMniEnableIntrupt(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENI)
 
#define setBitPWMniEnableIntruptAtTrig2(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENT2I)
 
#define clrBitPWMniEnableIntruptAtTrig2(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENT2I)
 
#define setBitPWMniEnableIntruptAtTrig1(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENT1I)
 
#define clrBitPWMniEnableIntruptAtTrig1(PORT, CHANNEL)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENT1I)
 
#define setRegPWMniHLD(PORT, CHANNEL, VALUE)   ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 5))) = VALUE
 
#define clrBitPWMniIF(PORT, CHANNEL)   ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x05))) &= (~(1<<CHANNEL))
 

函数

FSCSTATE MPWMn_Port_Init (MPWMPort_Type port, MPWMCLKSrc_Type clkSrc, uint16_t period)
 PWM端口初始化函数。Init PWM port function. 更多...
 
FSCSTATE MPWMn_Channel_Init (MPWMPort_Type port, MPWMChannel_Type ch, MPWMStartLevel_Type level, uint16_t fValue, uint16_t sValue, BOOL run)
 PWM通道初始化函数。Init PWM channel function. 更多...
 
FSCSTATE MPWMn_Run (MPWMPort_Type port)
 指定PWM端口开始工作。Run specified PWM port. 更多...
 
FSCSTATE MPWMn_Stop (MPWMPort_Type port)
 指定PWM端口停止工作。Stop specified PWM port working. 更多...
 

变量

sfr PWMSET = PWMSET_ADDRESS
 

宏定义说明

◆ clrBitENGLBSET

#define clrBitENGLBSET ( )    PWMSET&=(~ENGLBSET)

◆ clrBitENPWMnTA

#define clrBitENPWMnTA (   PORT)
值:
{if(PORT==0){PWMCFG01&=(~ENPWMTA024);} \
else if(PORT==2){PWMCFG23&=(~ENPWMTA024);} \
else if(PORT==4){PWMCFG45&=(~ENPWMTA024);}}
sfr PWMCFG45
Definition: STC8Gx_REG.h:1389
#define ENPWMTA024
Definition: STC8Gx_REG.h:1355
sfr PWMCFG23
Definition: STC8Gx_REG.h:1388
sfr PWMCFG01
Definition: STC8Gx_REG.h:1387

◆ clrBitEPWMnCBI

#define clrBitEPWMnCBI (   PORT)
值:
{if(PORT==0){PWMCFG01&=(~EPWMCBI024);} \
else if(PORT==1){PWMCFG01&=(~EPWMCBI135);} \
else if(PORT==2){PWMCFG23&=(~EPWMCBI024);} \
else if(PORT==3){PWMCFG23&=(~EPWMCBI135);} \
else if(PORT==4){PWMCFG45&=(~EPWMCBI024);} \
else if(PORT==5){PWMCFG45&=(~EPWMCBI135);}}
#define EPWMCBI135
Definition: STC8Gx_REG.h:1350
#define EPWMCBI024
Definition: STC8Gx_REG.h:1354

◆ clrBitPWMnCBIF

#define clrBitPWMnCBIF (   PORT)
值:
{if(PORT==0){PWMCFG01&=(~PWMCBIF024);} \
else if(PORT==1){PWMCFG01&=(~PWMCBIF135);} \
else if(PORT==2){PWMCFG23&=(~PWMCBIF024);} \
else if(PORT==3){PWMCFG23&=(~PWMCBIF135);} \
else if(PORT==4){PWMCFG45&=(~PWMCBIF024);} \
else if(PORT==5){PWMCFG45&=(~PWMCBIF135);}}
#define PWMCBIF024
Definition: STC8Gx_REG.h:1353
#define PWMCBIF135
Definition: STC8Gx_REG.h:1349

◆ clrBitPWMnCEN

#define clrBitPWMnCEN (   PORT)
值:
{if(PORT==0){PWMCFG01&=(~PWMCEN024);} \
else if(PORT==1){PWMCFG01&=(~PWMCEN135);} \
else if(PORT==2){PWMCFG23&=(~PWMCEN024);} \
else if(PORT==3){PWMCFG23&=(~PWMCEN135);} \
else if(PORT==4){PWMCFG45&=(~PWMCEN024);} \
else if(PORT==5){PWMCFG45&=(~PWMCEN135);}}
#define PWMCEN135
Definition: STC8Gx_REG.h:1352
#define PWMCEN024
Definition: STC8Gx_REG.h:1356

◆ clrBitPWMniEnableIntrupt

#define clrBitPWMniEnableIntrupt (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENI)

◆ clrBitPWMniEnableIntruptAtTrig1

#define clrBitPWMniEnableIntruptAtTrig1 (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENT1I)

◆ clrBitPWMniEnableIntruptAtTrig2

#define clrBitPWMniEnableIntruptAtTrig2 (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENT2I)

◆ clrBitPWMniEnableOut

#define clrBitPWMniEnableOut (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~ENO)

◆ clrBitPWMniIF

#define clrBitPWMniIF (   PORT,
  CHANNEL 
)    ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x05))) &= (~(1<<CHANNEL))

◆ clrBitPWMniStartLevel

#define clrBitPWMniStartLevel (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) &=(~INI)

◆ clrBitPWMRST

#define clrBitPWMRST ( )    PWMSET&=(~PWMRST)

◆ PWM_DISABLE

#define PWM_DISABLE (   PORT)    PWMSET&=(~(1<<PORT))

◆ PWM_ENABLE

#define PWM_ENABLE (   PORT)    PWMSET|=(1<<PORT)

◆ setBitENGLBSET

#define setBitENGLBSET ( )    PWMSET|=( ENGLBSET)

◆ setBitENPWMnTA

#define setBitENPWMnTA (   PORT)
值:
{if(PORT==0){PWMCFG01|=( ENPWMTA024);} \
else if(PORT==2){PWMCFG23|=( ENPWMTA024);} \
else if(PORT==4){PWMCFG45|=( ENPWMTA024);}}

◆ setBitEPWMnCBI

#define setBitEPWMnCBI (   PORT)
值:
{if(PORT==0){PWMCFG01|=( EPWMCBI024);} \
else if(PORT==1){PWMCFG01|=( EPWMCBI135);} \
else if(PORT==2){PWMCFG23|=( EPWMCBI024);} \
else if(PORT==3){PWMCFG23|=( EPWMCBI135);} \
else if(PORT==4){PWMCFG45|=( EPWMCBI024);} \
else if(PORT==5){PWMCFG45|=( EPWMCBI135);}}

◆ setBitPWMnCEN

#define setBitPWMnCEN (   PORT)
值:
{if(PORT==0){PWMCFG01|=( PWMCEN024);} \
else if(PORT==1){PWMCFG01|=( PWMCEN135);} \
else if(PORT==2){PWMCFG23|=( PWMCEN024);} \
else if(PORT==3){PWMCFG23|=( PWMCEN135);} \
else if(PORT==4){PWMCFG45|=( PWMCEN024);} \
else if(PORT==5){PWMCFG45|=( PWMCEN135);}}

◆ setBitPWMniEnableIntrupt

#define setBitPWMniEnableIntrupt (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENI)

◆ setBitPWMniEnableIntruptAtTrig1

#define setBitPWMniEnableIntruptAtTrig1 (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENT1I)

◆ setBitPWMniEnableIntruptAtTrig2

#define setBitPWMniEnableIntruptAtTrig2 (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENT2I)

◆ setBitPWMniEnableOut

#define setBitPWMniEnableOut (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( ENO)

◆ setBitPWMniStartLevel

#define setBitPWMniStartLevel (   PORT,
  CHANNEL 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) |=( INI)

◆ setBitPWMRST

#define setBitPWMRST ( )    PWMSET|=( PWMRST)

◆ setRegPWMnC

#define setRegPWMnC (   PORT,
  VALUE 
)    ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x00))) = VALUE

◆ setRegPWMnCKS

#define setRegPWMnCKS (   PORT,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x02))) = VALUE

◆ setRegPWMnFDCR

#define setRegPWMnFDCR (   PORT,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x06))) = VALUE

◆ setRegPWMniCR

#define setRegPWMniCR (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x14) + 0))) = VALUE

◆ setRegPWMniHLD

#define setRegPWMniHLD (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 5))) = VALUE

◆ setRegPWMniT1

#define setRegPWMniT1 (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 0))) = VALUE

◆ setRegPWMniT1H

#define setRegPWMniT1H (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 0))) = VALUE

◆ setRegPWMniT1L

#define setRegPWMniT1L (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 1))) = VALUE

◆ setRegPWMniT2

#define setRegPWMniT2 (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 2))) = VALUE

◆ setRegPWMniT2H

#define setRegPWMniT2H (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 2))) = VALUE

◆ setRegPWMniT2L

#define setRegPWMniT2L (   PORT,
  CHANNEL,
  VALUE 
)    ( *(__IO uint8_t xdata *) ((0xFF-(PORT/3*3))<<8 | ((CHANNEL*0x08+PORT%3*0x50+0x10) + 3))) = VALUE

◆ setRegPWMnTADC

#define setRegPWMnTADC (   PORT,
  VALUE 
)    ( *(__IO uint16_t xdata *) ((0xFF-(PORT/3*3))<<8 | (PORT%3*0x50+0x03))) = VALUE

函数说明

◆ MPWMn_Channel_Init()

FSCSTATE MPWMn_Channel_Init ( MPWMPort_Type  port,
MPWMChannel_Type  ch,
MPWMStartLevel_Type  level,
uint16_t  fValue,
uint16_t  sValue,
BOOL  run 
)

PWM通道初始化函数。Init PWM channel function.

初始化指定端口(0-5)的指定通道(0-7)。Init the specified port's channel (port from 0 to 5, channel from 0 to 7)

参数
[in]portPWM端口枚举体。PWM port enumerator.
[in]chPWM通道枚举体。PWM channel enumerator.
[in]levelPWM开始电平。PWM start level.
[in]fValue第一个电平翻转点。The value of the first reversal point.
[in]sValue第二个电平翻转点。The value of the second reversal point.
[in]run运行控制位。Run control bit.
返回
FSC_SUCCESS 返回成功。Return to success.
FSC_FAIL 返回失败。Return to fail.

◆ MPWMn_Port_Init()

FSCSTATE MPWMn_Port_Init ( MPWMPort_Type  port,
MPWMCLKSrc_Type  clkSrc,
uint16_t  period 
)

PWM端口初始化函数。Init PWM port function.

初始化指定端口(0-5)。Init the specified PWM port. (from 0 to 5)

参数
[in]portPWM端口枚举体。PWM port enumerator.
[in]clkSrcPWM时钟源。PWM clock source.
[in]periodPWM周期值(计数器重装载值)。PWM period value (counter reload value)
返回
FSC_SUCCESS 返回成功。Return to success.
FSC_FAIL 返回失败。Return to fail.

◆ MPWMn_Run()

FSCSTATE MPWMn_Run ( MPWMPort_Type  port)

指定PWM端口开始工作。Run specified PWM port.

指定PWM端口开始工作,输出PWM波形。Run specified PWM port. (Start PWM signal outputs)

参数
[in]portPWM端口枚举体。PWM port enumerator.
返回
FSC_SUCCESS 返回成功。Return to success.
FSC_FAIL 返回失败。Return to fail.

◆ MPWMn_Stop()

FSCSTATE MPWMn_Stop ( MPWMPort_Type  port)

指定PWM端口停止工作。Stop specified PWM port working.

指定PWM端口停止工作,停止输出PWM波形。Stop specified PWM port. (Stop PWM signal outputs)

参数
[in]portPWM端口枚举体。PWM port enumerator.
返回
FSC_SUCCESS 返回成功。Return to success.
FSC_FAIL 返回失败。Return to fail.

变量说明

◆ PWMSET

sfr PWMSET = PWMSET_ADDRESS