?? main.c
字號:
/*****************頭文件****************************************/
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
/*********************變量和函數定義****************************/
void PWMInit(unsigned int i);
void Delay_ms(int i);
/*********************主函數************************************/
void main(){
unsigned int Period; //PWM周期
unsigned int Duty; //PWM占空比
Period =0x120;//變量初始化
PWMInit(Period);//PWM初始化
Duty = 0x90;
EnableInterrupts; //PWM占空比為0
while(1){
__RESET_WATCHDOG();
/*if(Duty<Period) //判斷脈寬是否達到周期的長度(占空比為100%)
Duty=Duty+1; //PWM占空比加1
else{
Delay_ms(1000);
Duty=0; //占空比達到100%,設置占空比為0%
}*/
TPM1SC=0X10;
TPM1C0VH = (Duty>>8); ////設置PWM脈寬,設置高字節
TPM1C0VL = Duty; //設置低字節
TPM1SC=0X10;
}
}
/************************PWM初始化設置**************************/
void PWMInit(unsigned int Period)
{
unsigned int Temp=Period;
TPM1SC=0X10; //不允許溢出中斷,不啟動計數,分頻因子=4
TPM1MODH = (Temp>>8); //設置PWM周期
TPM1MODL = Period;
TPM1C0VH = 0x00;//初始化設置PWM脈寬為0
TPM1C0VL = 0x00;
TPM1C0SC=0X28; //設為PWM模式,不允許輸出比較中斷,輸出低電平,不帶緩沖
}
/************************延時函數********************************/
void Delay_ms(int i) {
int k;
for(k=i;k<i;k--) {
;}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -