- [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(;;) {
- }
- }
|