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

📄 #fc24.tmp

📁 单片机输出PWM波形电机驱动 mc338865
💻 TMP
字号:
/*******************************************************************************
文件名:pwm_timer_b.c

单片机 MSP430F1611 输出引脚P4.1

描述:使用定时器B进行PWM输出。输出的频率和占空比由串行口发送来的指令确定。

*******************************************************************************/
#include <MSP430x16x.h>
#include "pwm_timer_b.h"

#define PWM_DIR P4DIR
#define PWM_SEL P4SEL
#define PWM_OUT P4OUT
#define PWM_IN  P4IN

#define PWM_IO BIT1



/*****************************************************************************
初始化定时器B
*****************************************************************************/
void TimerBInit()
{
	TBCTL = TBSSEL_2 + TBCLR ; //时钟源为MCLK
	TBCCTL1 = OUTMOD_7;   	//工作在复位/置位 模式
        TBCCTL2 = OUTMOD_7;   	//工作在复位/置位 模式

	PWM_SEL |= PWM_IO;	//选择输出端口的第二功能
	PWM_DIR |= PWM_IO;
        P4SEL|=BIT2;
        P4DIR|=BIT2;
}



/*****************************************************************************
控制PWM运行或者停止
doit:0:停止  100:运行 
返回值:运行状态。 同doit的值
*****************************************************************************/
unsigned char GoPwm(unsigned char doit, unsigned int  s_iFre, unsigned int s_iScale)
{
	TBCTL &= ~(MC0+MC1);   //关闭定时器
	if(doit==100)
	{
	   TBCCR1=s_iFre;
            TBCCR2=s_iFre;
	   TBCCR0=s_iScale;
	   TBCTL |= MC_1;	//打开定时器,计数模式2
	}
	if((TBCTL&MC_3)==0)	//判断PWM是否停止
		return 0;
	else
		return 100;
}

⌨️ 快捷键说明

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