📄 pwm.c.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 + -