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

#include "Includes.h"

//在此添加全局变量定义

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