91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 10KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-19
  • 語言: 其他
  • 標(biāo)簽: 28335??epwm??

資源簡介

利用28335的epwm模塊產(chǎn)生pwm波形,并觸發(fā)內(nèi)部的AD采樣。產(chǎn)生三相PWM波,并觸發(fā)三路AD采樣

資源截圖

代碼片段和文件信息


??#include?“DSP2833x_Device.h“
??#include?“DSP2833x_Examples.h“
??#include?“DSP2833x_EPwm.h“?

void?InitEPWM1(void);??
void?InitEPWM2(void);
void?InitEPWM3(void);
void?InitADC_init(void);
interrupt?void?epwm1_isr(void);

?Uint16?resultA;
?Uint16?resultB;
?Uint16?resultC;


#define?ADC_SHCLK??0xf???//?S/H?width?in?ADC?module?periods
#define?ADC_CKPS???0x1???//?ADC?module?clock?=?HSPCLK/2*ADC_CKPS???=?15MHz/(1*2)
#define?ADC_usDELAY??5000L
void?main(void)
{

?
??//第一步,初始化系統(tǒng)控制
??InitSysCtrl();

??EALLOW;
???#if?(CPU_FRQ_150MHZ)?????//?Default?-?150?MHz?SYSCLKOUT
?????#define?ADC_MODCLK?0x3?//?HSPCLK?=?SYSCLKOUT/2*ADC_MODCLK2?=?150/(2*3)???=?25.0?MHz
???#endif
???#if?(CPU_FRQ_100MHZ)
?????#define?ADC_MODCLK?0x2?//?HSPCLK?=?SYSCLKOUT/2*ADC_MODCLK2?=?100/(2*2)???=?25.0?MHz
???#endif
???EDIS;
??EALLOW;
??SysCtrlRegs.HISPCP.all?=?ADC_MODCLK; //?HSPCLK?=?SYSCLKOUT/(2*ADC_MODCLK)=15MHZ
??EDIS;
??//第二步,初始化GPIO為ePWM1,ePWM2,ePWM3
??InitEPwm1Gpio();
??InitEPwm2Gpio();
??InitEPwm3Gpio();

??//第三步,清所有中斷
??DINT;

??//初始化PIE控制
??InitPieCtrl();

??//禁止CPU中斷并清空所有CPU中斷標(biāo)志位
??IER?=?0x0000;
??IFR?=?0x0000;

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

??//將中斷指向中斷函數(shù)
??EALLOW;??
??PieVectTable.EPWM1_INT?=?&epwm1_isr;
??EDIS;

??//第四步,初始化片內(nèi)外設(shè),這里初始化ePWM1,2,3
???EALLOW;
???SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC?=?0;
???EDIS;

???InitEPWM1();
???InitEPWM2();
???InitEPWM3();

???EALLOW;
???SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC?=?1;
???EDIS;
???
???//使能連接到ePWM1,2,3的CPU中斷
???IER?|=?M_INT3;

???//使能ePWM在PIE的中斷:Group3,中斷1-3
???PieCtrlRegs.PIEIER3.bit.INTx1?=?1;
?

???EINT;?//使能全局中斷INTM
???ERTM;?//使能全局實(shí)時(shí)中斷DBGM
???InitAdc();
???InitADC_init();

???for(;;)
???{
???????asm(“??????????NOP“);
???}


}

void?InitADC_init(void)
{
??AdcRegs.ADCTRL1.bit.ACQ_PS?=?ADC_SHCLK;//設(shè)置采樣窗口時(shí)間:(15+1)*ADCCLK
??AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=1;//允許SEQ1被ePWMxSOCA觸發(fā)信號(hào)啟動(dòng)
??AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;?//在每一個(gè)SEQ1序列結(jié)束設(shè)置INT_SEQ1
??AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//SEQ1的中斷使能


??AdcRegs.ADCTRL3.bit.ADCCLKPS?=?ADC_CKPS;//ADC內(nèi)核時(shí)鐘分頻:HSPCLK/2=6.25MHZ
??AdcRegs.ADCTRL1.bit.SEQ_CASC?=?1;????????//?1選擇級(jí)聯(lián)模式
??
??AdcRegs.ADCTRL1.bit.CONT_RUN=0;?//啟動(dòng)-停止模式
??AdcRegs.ADCMAXCONV.bit.MAX_CONV1=2;//設(shè)置最大轉(zhuǎn)換通道為2+1=3次
??AdcRegs.ADCTRL3.bit.SMODE_SEL=0;//順序采樣
??
??AdcRegs.ADCCHSELSEQ1.bit.CONV00?=?0x0;??//通道選擇ADCAIN0
??AdcRegs.ADCCHSELSEQ1.bit.CONV01?=?0x1;??//通道選擇ADCAIN0
??AdcRegs.ADCCHSELSEQ1.bit.CONV02?=?0x2;??//通道選擇ADCAIN0
??
??AdcRegs.ADCTRL3.bit.ADCBGRFDN?=?3;?????//帶隙和參考電路上電
??DELAY_US(1);
??AdcRegs.ADCTRL3.bit.ADCPWDN?=?1;???????//模擬內(nèi)核的除帶隙和參考電路之外所有模擬電路上電
??DELAY_US(ADC_usDELAY);
??AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;???????//清除SEQ1中斷標(biāo)志位
??
}

interrupt?void?epwm1_isr(void)
{
??while?(AdcRegs.ADCST.bit.INT_SEQ1==?0)?{}
??AdcRegs.ADCTRL2.bit.RST_SEQ1?=?1;?//?Reset?SEQ1
??AdcRegs.ADCST.bit.INT_SEQ1_CLR?=?1;
??resultA?=?(AdcRegs.ADCRESULT0>>4);
??resultB?=?(AdcRegs.ADCRESULT1>>4);
??resultC?=?(AdcRegs.ADCR

評(píng)論

共有 條評(píng)論