- [cpp] view plaincopy
- #include <hidef.h> /* for EnableInterrupts macro */
- #include "derivative.h" /* include peripheral declarations */
-
-
-
- //TPM1通道0(与PTD2连接第三个LED灯? 产生周期为0.5s占空比为50%的PWM波
- //利用TPM2通道0(与PTD0连接第一个LED灯)对这个PWM波的上升沿进行捕捉
-
-
- /*************************************************************/
- /* 初始化总线时钟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);
- }
-
-
- //TPM1的通道0与PTD2(连接第三个LED灯)
- void INIT_TPM1_CH0(void)
- {
-
- TPM1SC = 0X0F;// 总线时钟128分频。
- TPM1MOD = 62500 + TPM1CNT;//周期为0.5s
-
- TPM1C0SC = 0X28;//边沿脉冲
- TPM1C0V = 32500;//设置有效脉冲宽度为32500?50%
-
-
-
- }
-
-
- //TPM2的通道0对上升沿进行捕捉
- void INIT_TPM2_CH0(void)
- {
- TPM2SC = 0X0F;// 总线时钟128分频
- TPM2C0V = 0X44;//开中断,输入捕捉,上升沿
-
- }
-
-
-
-
-
- void main(void) {
-
-
- DisableInterrupts;
- SOPT1 = 0;
- EnableInterrupts;
-
- INIT_TPM1_CH0();
- INIT_TPM2_CH0();
-
- while(1);
-
- }
|