Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

CCS/TMS320F28379D: "warning: creating output section "IQmath" without a SECTIONS specification" .

$
0
0

Part Number:TMS320F28379D

Tool/software: Code Composer Studio

I am trying to produce spwm waveform using epwmregs.

Epwm1interrupt  doesn't seem to be responding . I am not sure whether it is due to the IQmath section warning or the interrupts syntax is  wrong.

PFA the code below:

/**
* Generating 3 phase 50% duty cycle square wave
*/
#include "F28x_Project.h" // Device Header File and Examples Include File

#define MATH_TYPE 1
#include "IQmathLib.h"
static unsigned int index;
#pragma DATA_SECTION(sine_table, "IQmathTables");
_iq30 sine_table[512];

void initepwm(void);
interrupt void epwm1_isr(void);

void main(void)
{
index = 0;
InitSysCtrl();
DINT;


InitGpio();
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;
GpioCtrlRegs.GPAGMUX1.bit.GPIO0 = 0;
GpioCtrlRegs.GPAGMUX2.bit.GPIO31 = 0;
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
EDIS;


InitPieCtrl();

CpuSysRegs.PCLKCR2.bit.EPWM1 = 1;

InitPieVectTable();

EALLOW;
PieVectTable.EPWM1_INT = &epwm1_isr;
EDIS;

IER |= M_INT3;
PieCtrlRegs.PIEIER3.bit.INTx1 = 1;


EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

EPwm1Regs.ETSEL.bit.INTEN = 1;
EPwm1Regs.ETSEL.bit.INTSEL = 5;
//EPwm1Regs.ETPS.bit.INTCNT = 1;
EPwm1Regs.ETPS.bit.INTPRD = 1;
initepwm();

EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;


EINT;
ERTM;

while(1);
}

interrupt void epwm1_isr()
{
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

initepwm();

EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;

GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;
index +=1;
if( index > 511) index = 0;

//EPwm1Regs.ETFLG.bit.INT = 0;
EPwm1Regs.ETCLR.bit.INT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

void initepwm()
{

EALLOW;
// ---------------------------------------------
// | 1 100 MHz | f_sw = 10 kHz for TBPRD = 2000,
// | TBPRD = - x ------------------------- ; | CLKDIV = TB_DIV1 and HSPCLKDIV = TB_DIV1
// | 2 f_sw * CLKDIV * HSPCLKDIV | Max TBPRD = 65535
// ---------------------------------------------
EPwm1Regs.TBPRD = 5000; // timer period for 25KHz
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; // CLKDIV = 1
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // HSPCLKDIV = 1
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetrical mode for triangular carrier


EPwm1Regs.ETSEL.bit.INTEN = 1;
EPwm1Regs.ETSEL.bit.INTSEL = 5;
//EPwm1Regs.ETPS.bit.INTCNT = 1;
EPwm1Regs.ETPS.bit.INTPRD = 1;


EPwm1Regs.CMPA.bit.CMPA = EPwm1Regs.TBPRD -_IQsat( _IQ30mpy((sine_table[index]+_IQ30(0.9999))/2, EPwm1Regs.TBPRD), EPwm1Regs.TBPRD,0);
EPwm1Regs.AQCTLA.bit.CAU = 2;
EPwm1Regs.AQCTLA.bit.CAD = 1;

EDIS;
}

Please help me overcome this problem.

Thankyou.


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>