📄 pwm_1.c
字号:
/* ------------------------------------------------------------------------ */
/* PWM test code for my2406/2407 board */
/* */
/* Copyleft(^^) Do-Yoon Kim */
/* PWM_1.c ver 2.0 */
/* 2002.7.10 */
/* 魂诀眉俊辑 腹捞 荤侩窍绰 30KHz 林扁狼 PWM 颇屈阑 父甸绢 焊磊. */
/* PWM1篮 positive duty啊 10%牢 颇屈阑, PWM2绰 捞 馆措 颇屈捞 唱坷档废 窍磊 */
/* CON1狼 1, 3锅捞 PWM1, PWM2啊 楷搬登绢 乐绰 巧捞促. */
/* 坷角肺胶内橇啊 乐促搁 流立 犬牢秦 焊档废 茄促. */
/* ------------------------------------------------------------------------ */
#include <util.h>
#include <SCI.h>
#define PWM_PERIOD 30000UL //30KHz
void bad_trap( void )
{
while(1) ;
}
void main( void )
{
UINT k,j;
DSPInit(PLLx4);
EVA_ENABLE; // PWM1,2绰 EVA俊 加秦乐栏骨肺 EVA 葛碘阑 劝己拳
T1DISABLE; // 老窜 timer甫 厚劝己拳
//-------------------------------------------------------------------------
// 1. setting PWM1 and 2, PWM 免仿 淬寸 巧阑 PWM 扁瓷栏肺 汲沥
SET_PWM1;
SET_PWM2;
// 2. Setting Timer1, PWM 林扁甫 搬沥茄促.
T1PR = (CPU_clk()/PWM_PERIOD);
//泅犁 CPU 悼累 林颇荐俊辑 荤侩窍绊磊窍绰 PWM 林颇荐甫 唱穿绢霖 蔼阑
// 鸥捞赣 悼累 林颇荐肺 汲沥窍搁 等促.
// 3. ACTRA = Compare Action Control Register A
ACTRA = 0x0009;
// bit3,2 are for PWM2 action mode : 10-active high, 01-active low
// bit1,0 are for PWM1 action mode : 10-active high, 01-active low
// 抛胶飘甫 困秦 PWM2绰 active high肺, PWM1篮 active low肺 汲沥
// 4. PWM duty 汲沥
CMPR1 = (unsigned int)(T1PR*0.1); // CMPR1 -> PWM1 & PWM2
// 10% duty甫 爱绰 PWM 颇屈阑 父甸绢 夯促.
// 5. COMCONA = Compare Control Register A
COMCONA = 0xC200;
// bit 15 is for Compare Enable
// bit 9 is for Compare Output enable
// 6. 鸥捞赣 悼累 葛靛 汲沥
T1CON = 0xD040;
// bit 12,11 are for Count Mode Selection:10-continuous Up count mode
// bit 10,9,8 are for Input Clock Prescaler 000 - x/1
// bit 6 is for Timer Enable
//-------------------------------------------------------------------------
SET_PC_OUT(BIT0); // for debugging
while(1)
{
for(j=0;j<65000;j++)
{
k++;
}
TOGGLE(PORTC,BIT0); // 悼累 犬牢 侩栏肺 LED 配臂
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -