xspwmdrv.c

来自「usb 检验程序」· C语言 代码 · 共 36 行

C
36
字号
#include "XsPwmDrv.h"
#include "XsClkMgrDrv.h"
#include "XsGpioDrv.h"

void XsPwmDrv_Init(volatile PwmCtrlRegsT* pPwm, PwmDeviceE Device)
{
	//set control register initial value 
	PWM_CTRL(Device) = 36;		//use (3.6864MHz/36=0.1024MHz) clock
	PWM_PERVAL(Device) = 1023;	//period is 10ms
	PWM_DUTY(Device) = 0;		//initial duty set to 0, PWM output is low
	
	if(Device == PWM0)
	{
		//set gpio pin direction and alt function
		ASSIGN_BIT_VAL(GPIO_GPDR0_ADDR, GXXR_GPIO16_OFS, XS_GPIO_DIR_OUT);	// PWM0/GP16 pin as output
		GPIO_SET_ALT_FUNC(GPIO_GROUP1, GAFR_AF16_OFS, XS_GPIO_ALT_FUNC_2);	// PWM0/GP16
		
	    //enable LCD clock		
		CLKMGR_ENABLE_CLK(CKEN_CK_PWM0_OFS);
	}
	else if(Device == PWM1)
	{
		//set gpio pin direction and alt function
		ASSIGN_BIT_VAL(GPIO_GPDR0_ADDR, GXXR_GPIO17_OFS, XS_GPIO_DIR_OUT);	// PWM1/GP17 pin as output
		GPIO_SET_ALT_FUNC(GPIO_GROUP1, GAFR_AF17_OFS, XS_GPIO_ALT_FUNC_2);	// PWM1/GP17		

	    //enable LCD clock	
		CLKMGR_ENABLE_CLK(CKEN_CK_PWM1_OFS);
	}
	


	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?