[资料分享与下载] 飞思卡尔单片机DZ60---边沿对齐PWM

[复制链接]
niuyaliang 发表于 2015-2-27 19:33 | 显示全部楼层 |阅读模式
  1. [cpp] view plaincopy
  2. #include <hidef.h> /* for EnableInterrupts macro */  
  3. #include "derivative.h" /* include peripheral declarations */  
  4.   
  5.   
  6. /*************************************************************/  
  7. /*                  初始化总线时钟PEE模式                    */  
  8. /*              外部晶振频率为4MHz,总线频率16MHz            */  
  9. /*************************************************************/  
  10. void INIT_MCG(void)   
  11. {  
  12.   MCGC2=0x36;         
  13.   while(!MCGSC_OSCINIT);      
  14.   MCGC1=0xb8;  
  15.   while(MCGSC_IREFST);  
  16.   while(MCGSC_CLKST!=0b10);  
  17.   MCGC2_LP = 1;  
  18.   MCGC1 = 0x90;  
  19.   MCGC3 = 0x48;      
  20.   MCGC2_LP = 0;  
  21.   while(!MCGSC_PLLST);  
  22.   while(!MCGSC_LOCK);  
  23.   MCGC1 = 0x10;  
  24.   while(MCGSC_CLKST!=0b11);  
  25. }   
  26.   
  27. /*************************************************************/  
  28. /*                      初始化TPM1ch0                        */  
  29. /*************************************************************/  
  30. void INIT_TPM1CH0(void)   
  31. {  
  32.   TPM1SC = 0X0F;//TPM1时钟源为系统总线,中断溢出禁止,16M 128分频,脉冲周期8us  
  33.   TPM1MOD  =  62500 + + TPM1CNT; //工作模式为边缘对齐PWM输出,高有效,禁止中断?  
  34.   TPM1C0SC = 0X28;   //工作模式为边缘对齐PWM输出,高有效,禁止中断;  
  35.   TPM1C0V = 12500;   //有效部分占20%,占空比为20%?  12500/62500= 0.2  
  36.    
  37.    
  38. }  
  39.   
  40.   
  41. /*************************************************************/  
  42. /*                      初始化TPM1ch1                        */  
  43. /*************************************************************/  
  44. void INIT_TPM1ch1(void)  
  45. {  
  46.   TPM1C1SC = 0X24;   //工作模式为边缘对齐PWM输出,低有效,禁止中断  
  47.   TPM1C1V = 50000;   //有效部分占80%,占空比为20%  
  48. }  
  49.   
  50.   
  51.   
  52. /*************************************************************/  
  53. /*                          主函数                           */  
  54. /*************************************************************/  
  55. void main(void) {  
  56.   DisableInterrupts;   
  57.   SOPT1=0;    //关闭看门狗  
  58.   INIT_MCG();  
  59.   INIT_TPM1CH0();  
  60.   INIT_TPM1ch1();  
  61.   EnableInterrupts;   
  62.   
  63.   for(;;) {  
  64.   }  
  65. }  


ccw1986 发表于 2015-2-28 08:43 | 显示全部楼层
顶,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部