當前位置:編程學習大全網 - 源碼下載 - 求DSP產生可變占空比PWM波程序

求DSP產生可變占空比PWM波程序

用EVA事件管理器產生 重點看哈那張的內容 占空比有公式計算 自己動手做了才知道是怎麽回事

/****************************************************************************

*

*文件名:EvPwm02.c

*

*功 能:PWM1和PWM2輸出頻率為1KHz的PWM波形。波形的占空比每隔1s變化5%,範圍在10%

* 到90%之間。

*

*說 明:EVA下面的通用定時器T1工作於連續增/減計數模式,產生對稱的PWM波形。通過

* T1的周期中斷來計時,每隔1s鐘改變1次占空比。死區時間為4.27us。

*

****************************************************************************/

#include "DSP28_Device.h"

#include "DSP28_Globalprototypes.h"

Uint32 intcount;

int increase;

int decrease;

/****************************************************************************

*

*名 稱:main()

*

*功 能:初始化系統和各個外設

*

*入口參數:無

*

*出口參數:無

*

****************************************************************************/

void main(void)

{

InitSysCtrl(); //初始化系統函數

DINT;

IER = 0x0000; //禁止CPU中斷

IFR = 0x0000; //清除CPU中斷標誌

InitPieCtrl(); //初始化PIE控制寄存器

InitPieVectTable(); //初始化PIE中斷向量表

InitGpio(); //初始化Gpio口

InitEv(); //初始化EV

intcount=0; //T1定時器周期中斷計數器

increase=0; //占空比逐漸變小的變化趨勢標誌位

decrease=1; //占空比逐漸變大的變化趨勢標誌位

PieCtrl.PIEIER2.bit.INTx4=1; //使能PIE中斷,T1定時器中斷位於INT2.4

IER|=M_INT2;

EINT; //開全局中斷

ERTM; //開實時中斷

EvaRegs.T1CON.bit.TENABLE=1; //使能定時器T1計數操作

while(1)

{

}

}

  • 上一篇:延遲任務的幾種高效解決方案
  • 下一篇:區塊鏈中的代幣是什麽?
  • copyright 2024編程學習大全網