⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delay.c

📁 飞思卡尔U08开发平台下可以自由运行
💻 C
字号:
/*[头文件]*/
#include "GP32C.H"               //包含头文件
/*函数声明*/
void PWMconf(unsigned int);      //PWM设置
void PWMInit(unsigned int Period);

/*Delay_ms:毫秒级延时函数------------------------------*    
*功  能:延时函数                                       *
*参  数:i=延时时间(ms)     (i取值范围:1-255)           *
*返  回:无                                             *
*-----------------------------------------------------*/                            
void Delay_ms(unsigned char i)
  {  unsigned char j;
     unsigned char u;
     for(j=0;j<i;j++)
         for(u=0;u<=250;u++);
  }


void PWMconf(unsigned int Hz)
  {
     unsigned int Period,Duty;
     Period=2457600/64/Hz;
     PWMInit(Period);                              
     Duty=Period/1.2;
     T1SC|=(1<<5);        //停止定时器1计数器计数
     //[设置PWM脉宽]
     T1CH0H = (Duty>>8);  //设置高字节
     T1CH0L = Duty;       //设置低字节
     T1SC&=~(1<<5);       //允许定时器1计数器计数
     Delay_ms(2000);      //延时100ms
  }
  
  
/*PWMconf:PWM初始化设置--------------------------------*
* 功  能:PWM脉冲周期、占空比的设置                     *
* 参  数:rate=脉宽时钟数,cyc=脉冲周期时钟数            *
* 返  回:无                                            *
*-----------------------------------------------------*/
void PWMInit(unsigned int Period)
{    
    unsigned int Temp=Period;
    //不允许溢出中断,不启动计数,分频因子=64,置位TSTOP,TRST
    T1SC = 0x36;        
    //[设置PWM周期]
    T1MODH = (Temp>>8);     
    T1MODL = Period;      
    //[初始化设置PWM脉宽为0]
    T1CH0H = 0x00;
    T1CH0L = 0x00;
    //设为PWM模式,不允许输出比较中断,输出低电平,不带缓冲
    T1SC0  = 0x1E;      
    //允许定时器1计数寄存器计数           
    T1SC  &= 0xDF;      
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -