⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.c

📁 SPMC75 CPU 
💻 C
字号:
#include "Spmc75_regs.h"
#include "unspmacro.h"
#include "SPMC75_SPWM_ISR.h"



	

    //设置MCP4定时器,实现三相六路PWM输出(Fsys=24MHz)
	void MCP4_T_PWM_init()				
	{	   
	
		P_IOC_Dir->W |= 0xFC00;      	// 将IOC[10]-IOC[15]设置为输出,不影响其它端口的设置      
		P_IOC_Attrib->W |= 0xFC00;	 	//将IOC[10]-IOC[15]设置为非反向 ,不影响其它端口的设置     
		P_IOC_SPE->W |= 0xFC00;	      	//只对IOC[10]-IOC[15]进行设置,不影响其它端口的设
				
		P_TPWM_Write->W |= 0x5A02;    //MCP4各控制寄存器写使能
				//TPR中断频率选择每个周期中断一次      PRDINT   =   "00"B
				//操作模式选择为中心PWM模式            MODE     =   "1010"B
				//定时清除源选择为TPR                  CCLS     =   "111"B
				//上升沿计数                           CKEGS    =   "00"B
				//定时器分频选择为Fck/1                TMRPS    =   "000"B	
		P_TMR4_Ctrl->W = 0x28E0;   		
				//PWM比较匹配输出模式设定 
				//初始输出为1,比较匹配输出为0   		
		P_TMR4_IOCtrl->W = 0x0222;	
		P_TMR4_INT->W |= 0x0010;  //定时器周期寄存器TPR比较中断使能
				//三相均插入死区时间
				//U相死区时间使能     DTUE  =  "1"B
				//V相死区时间使能     DTVE  =  "1"B
				//W相死区时间使能     DTWE  =  "1"B
		P_TMR4_DeadTime->W |= 0x7007;		
				//TIO4A输出使能     TMR4AOE  =   "1"B
				//TIO4B输出使能     TMR4BOE  =   "1"B
				//TIO4C输出使能     TMR4COE  =   "1"B
				//TIO4D输出使能     TMR4DOE  =   "1"B
				//TIO4E输出使能     TMR4EOE  =   "1"B
				//TIO4F输出使能     TMR4FOE  =   "1"B
	    P_TMR_Output->W = 0x3F00;   //使能TIO4A引脚输出			
				//占空模式选择:三相独立  DUTYMODE  =  "1"B		       
				//U相PWM波形输出使能         UPWM  =  "1"B
				//V相PWM波形输出使能         VPWM  =  "1"B
				//W相PWM波形输出使能         WPWM  =  "1"B		
		P_TMR4_OutputCtrl->W = 0xC73F;
	    P_TMR4_TPR->W = 800;    //设定计数值
	    P_TMR4_TGRA->W = 0;	   	//设定占空比 
	    P_TMR4_TGRB->W = 0;     //设定占空比
	    P_TMR4_TGRC->W = 0;     //设定占空比

		P_TMR_LDOK->W = 0x00AA;        			    
	    P_TMR_Start->B.TMR4ST = 1;	  //启动MCP4定时器
	 }	
	 

⌨️ 快捷键说明

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