打印
[资料分享与下载]

飞思卡尔单片机DZ60---输入捕捉

[复制链接]
1332|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
niuyaliang|  楼主 | 2015-2-27 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[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);  
   
}  


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝