程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> sh79f166a pwm模塊初始化及應用

sh79f166a pwm模塊初始化及應用

編輯:關於C
#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() ;

	}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved