设为首页 加入收藏

TOP

sh79f166a pwm模块初始化及应用
2014-11-23 21:34:15 来源: 作者: 【 】 浏览:7
Tags:sh79f166a pwm 模块 初始 应用
#ifndef _SH79F_PWM_H_
#define _SH79F_PWM_H_

//#include "sh79f_pwm.h"

#define		PWM_DIVI 	PWM_DIVI2	//12M/2	= 6M
#define		PWM_DIVI2	(0<<0) 
#define		PWM_DIVI4	(1<<0) 
#define		PWM_DIVI8	(2<<0) 
#define		PWM_DIVI16	(3<<0) 

//PWM频率值
#define		V_PWMCYC		1500   //6M/1500=4K
//PWM点空比 50%
#define		V_PWM			1500/2 //

#define		PWM_ENB		PWMEN1 &= ~0x01 ; //PWM 输出到IO
#define		PWM_DIS		PWMEN1 |= 0x01 ; //PWM 禁止输出到IO

//==============================
extern void Init_Pwm(void);


#endif


//文件sh79f_pwm.c

#include "global.h"
#include "sh79f_pwm.h"

//**************************************
// 函数名称:Init_Pwm
// 函数功能:PWM初始化
// 入口参数:无 
// 出口参数:无
//***************************************
void Init_Pwm(void)
{
	PWMLO = 0x55;  //允许修改其它PWM寄存器的值

	PWM0C = 0x00|PWM_DIVI ;	//12M/2=6M
	PWM0PL = (uint8)(V_PWMCYC & 0X00FF) ; //PWM频率设置
	PWM0PH = (uint8)(V_PWMCYC>>8) ;
	PWM0DL = (uint8)(V_PWM & 0X00FF) ;	//PWM占空比设置
	PWM0DH = (uint8)(V_PWM>>8) ;

	PWM0DT = 0x00 ;  //死区时间

	PWMEN = 0x01 ; //PWM模块使能 PWM0使能输出

	PWMEN1 = 0x01 ; //PWM 不输出到IO
	
	PWMLO = 0xAA ;  //禁止修改其它PWM寄存器的值

}


//应用实例
void main(void)
{
	//初始化PWM模块 频率为4K 占空比为50%
	Init_Pwm() ;
	
	while(1)
	{
		PWM_ENB ;	//PWM输出使能
		
		Delay() ;

		PWM_DIS ;	//PWM输出禁止

		Delay() ;

	}
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言函数参数入栈的汇编理解 下一篇C指针原理 (25)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: