//-------------------------------------------------------------------------*
//工 程 名: PWM                                                            *
//硬件连接: (1)PTD.0接指示灯                                               *
//          (2)PTE.2即定时器1通道0接小灯                                   *
//程序描述: 通过对PWM占空比的调节,实现小灯的渐亮的功能,当占空比为100％时   *
//          再从0％逐渐增加.PWM的周期一定要足够的快,否则其输出电压的波动   *
//          范围很大,且测不出一个稳定的电压值,这样通过就观察不到小灯渐亮   *
//          效果. 另外,在改变PWM的周期和占空比之前和之后要分别禁止使用     *
//          TPM1,否则改变不起作用.                                         *
//目    的: 学习JM60 PWM功能.                                              *
//说    明: 无                                                             *
//----------------苏州大学飞思卡尔嵌入式系统实验室2010年-------------------*
#include "Includes.h"

//主函数
void main(void) 
{
    uint8 i;  
    uint16 mRuncount=0;            //运行计数器
    uint32 k=0;
    
    
    DisableMCUint();     //禁止总中断
    
    //1. 芯片初始化
    MCUInit();
    
    //2. 模块初始化
    Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //指示灯初始化
    PWM(TPM_NUM_1,TPM1_CH_0,0x0138, 0);        //定时器1通道0初始化,定时器1通道0初
    
    //总循环
    while (1)
    {       
      //1 主循环计数到一定的值，使小灯的亮、暗状态切换
      mRuncount++;
      if (mRuncount>=50000) 
      {
        mRuncount=0;
        Light_Change(Light_Run_PORT,Light_Run);    //指示灯的亮、暗状态切换
      }
      //2 主循环执行的任务
      //输出占空比逐渐变化的PWM波
      k++;
      if(k>=1500)
      {
        i++;
        if(i>100) i=0;
        else PWM(TPM_NUM_1,TPM1_CH_0,0x0138, i);
        k=0; 
      } 
    }
}