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

📄 pwm.c.svn-base

📁 AVR单片机下
💻 SVN-BASE
字号:
/*                ****ROBOCON 2009 | BUPT TEAM******* * ------------------------------------------------------------------------ * FileName   : pwm.c * Version    : 1.0 * Brief      : * Code by    : Leaf * Date       : Tue Mar 31 00:05:05 2009 * Note       : * * * ------------------------------------------------------------------------ */
#include "lib_bupt.h"
#ifdef PWM_H_INCLUDED
const UINT16 PWM_MAX_CTR     =     0x3ff;

void inline pwm1_init(void)
{
	TCCR1B =  0x00; //stop
	TCNT1  =  0xfc01;
	OCR1A  =  0;
	OCR1B  =  0;
	OCR1C  =  0;
	ICR1   =  PWM_MAX_CTR;
	TCCR1A =  0xA8;
	TCCR1B =  0x12; //start Timer
	PORTB  &= 0x1f;
	DDRB   |= 0xe0;
}

void inline pwm_pb7(UINT16 duty){
	OCR1C = duty & PWM_MAX_CTR;
}

void inline pwm_pb6(UINT16 duty){
	OCR1B = duty & PWM_MAX_CTR;
}

void inline pwm_pb5(UINT16 duty){
	OCR1A = duty & PWM_MAX_CTR;
}


/* PWM Scale functions */

/* PWM Scale Generation Algorithm*/
UINT16 pwmScale(UINT8 scale){
	UINT32 pwmctr = (PWM_MAX_CTR - 1);	pwmctr *= scale;
	pwmctr /= 100;
	return (UINT16)pwmctr;
}

/* Set PB7 PWM scale */
void inline pwmscale_pb7(UINT8 scale){
	pwm_pb7(pwmScale(scale));
}

/* Set PB7 PWM scale */
void inline pwmscale_pb6(UINT8 scale){
	pwm_pb6(pwmScale(scale));
}

/* Set PB7 PWM scale */
void inline pwmscale_pb5(UINT8 scale){
	pwm_pb5(pwmScale(scale));
}
#endif

⌨️ 快捷键说明

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