[cpp] view plaincopy
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
/*************************************************************/
/* 初始化总线时钟PEE模式 */
/* 外部晶振频率为4MHz,总线频率16MHz */
/*************************************************************/
void INIT_MCG(void)
{
MCGC2=0x36;
while(!MCGSC_OSCINIT);
MCGC1=0xb8;
while(MCGSC_IREFST);
while(MCGSC_CLKST!=0b10);
MCGC2_LP = 1;
MCGC1 = 0x90;
MCGC3 = 0x48;
MCGC2_LP = 0;
while(!MCGSC_PLLST);
while(!MCGSC_LOCK);
MCGC1 = 0x10;
while(MCGSC_CLKST!=0b11);
}
/*************************************************************/
/* 初始化TPM1ch0 */
/*************************************************************/
void INIT_TPM1CH0(void)
{
TPM1SC = 0X0F;//TPM1时钟源为系统总线,中断溢出禁止,16M 128分频,脉冲周期8us
TPM1MOD = 62500 + + TPM1CNT; //工作模式为边缘对齐PWM输出,高有效,禁止中断?
TPM1C0SC = 0X28; //工作模式为边缘对齐PWM输出,高有效,禁止中断;
TPM1C0V = 12500; //有效部分占20%,占空比为20%? 12500/62500= 0.2
}
/*************************************************************/
/* 初始化TPM1ch1 */
/*************************************************************/
void INIT_TPM1ch1(void)
{
TPM1C1SC = 0X24; //工作模式为边缘对齐PWM输出,低有效,禁止中断
TPM1C1V = 50000; //有效部分占80%,占空比为20%
}
/*************************************************************/
/* 主函数 */
/*************************************************************/
void main(void) {
DisableInterrupts;
SOPT1=0; //关闭看门狗
INIT_MCG();
INIT_TPM1CH0();
INIT_TPM1ch1();
EnableInterrupts;
for(;;) {
}
}
|