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

📄 pwm_timer_b.c

📁 MSP430开发的使用PID算法温度控制程序 本程序通过485总线与上位机通信发送和接受命令
💻 C
字号:
/********
使用TIME_B进行PWM输出
**********/
#include <MSP430x14x.h>
#include "pwm_timer_b.h"
#include "Time_A.h"



float iFre;				//频率
float iScale;				//占空比


void InitTimeB()					//初始化
{
	//TBCTL = TBSSEL_2 | TBCLR | CNTL_0 | ID_3;		//时钟源为SMCLK
	TBCTL = TBSSEL_2 + TBCLR;

	TBCCTL1 = OUTMOD_7;   			//工作在复位/置位 7模式
    //TBCCTL2 = OUTMOD_7;
    TBCCTL3 = OUTMOD_7;
    TBCCTL4 = OUTMOD_7;
    TBCCTL5 = OUTMOD_7;
	
	PWM_SEL;			//选择输出端口的第二功能
	PWM_OUT;

}


void SetScale(float sc)		//设置占空比
{
	iScale=sc;
}
 

void SetFre(float fre)		//设置频率
{
	iFre=fre;
}



  
//float i=0;
//float j=0;
unsigned char GoPwm(unsigned char doit)			//控制PWM运行或者停止
{
	if(doit==1)
	{
	   TBCCR1=iScale;			//PWM1调节加热
	   //TBCCR2=0;
	   TBCCR0=PF;
		
	   TBCTL |= MC_1;		//打开定时器,计数模式1
	}
	//else if(doit==2)
	//{
	//			
	//   TBCCR1=0.3*iFre;			//PWM1调节制冷
	//   TBCCR2=0;
	//   TBCCR0=iFre;
 //       	
	//   TBCTL |= MC_1;

	//}
	else if (doit==2)
	{
	
		P4SEL&=~BIT1;
		P4DIR|=BIT1;
		
		
		//j=iScale;
		
		TimCh3 = GetMsValue(PF1*(1-iScale));
		
		//i=TimCh3;
		PWMFLAG = 1;
	}

	else
	{
		PWM_IN;
		PWMFLAG = 0;
	}
	return 0;
}




void CtrlPwm3(unsigned char doit)			//开关风扇
{	
	PWM3SEL;
	PWM3OUT;

	if(doit)
		P4SET;
		
	else
		P4CLR;
	
}


void CtrlPwm4(unsigned char doit,float SC1)			//开关电机,Sc为控制电压的占空比
{	
	PWM4SEL;
	PWM4OUT;

	if(doit)
	{
	   TBCCR4=SC1*PF/100;
	   //TBCCR4=PF*0.3f;

	   TBCCR0=PF;				//设置周期	  
	   TBCTL |= MC_1;		//打开定时器,计数模式1
	}
	else
	   PWM4IN;

}



void CtrlPwm5(unsigned char doit,float SC2)
{

	PWM5SEL;
	PWM5OUT;
	
	if(doit)
	{
	
		TBCCR5=SC2*PF/100;
		//TBCCR5=0.3f;
		TBCCR0=PF;
		TBCTL|=MC_1;
	}
	else
		PWM5IN;

}



unsigned char nAddress;


unsigned char Address()				//获取地址
{

	unsigned char Address=0;
	

	CHSSEL;
	CHSIN;
	
	Address = (~READIN & 0x0F) + 'C';

	

	return(Address);



}

⌨️ 快捷键说明

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