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

TMDSCNCD28335: 28335

$
0
0

Part Number:TMDSCNCD28335

Hi,

I just want to use eCAP module to find duty cycle and period of a waveform. I am using below code to setup eCAP module but DutyOnTime1 and Period1 etc all are at zeros (initialized values) only.  I setup epwm module  and its output coming as required. I am connecting one of the ePWM (GPIO00) output to GPIO24 (eCAP1). Can you please let me know is there any wrong with eCAP module setting.

void SetupECapture(){
// ECAP module 1 config
ECap1Regs.ECCTL1.bit.CAP1POL = 0;
ECap1Regs.ECCTL1.bit.CAP2POL = 1;
ECap1Regs.ECCTL1.bit.CAP3POL = 0;
ECap1Regs.ECCTL1.bit.CAP4POL = 1;
ECap1Regs.ECCTL1.bit.CTRRST1 = 1;
ECap1Regs.ECCTL1.bit.CTRRST2 = 1;
ECap1Regs.ECCTL1.bit.CTRRST3 = 1;
ECap1Regs.ECCTL1.bit.CTRRST4 = 1;
ECap1Regs.ECCTL1.bit.CAPLDEN = 1;
ECap1Regs.ECCTL1.bit.PRESCALE = 0;

ECap1Regs.ECCTL2.bit.CAP_APWM = 0;
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 2;
ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Allow TSCTR to run
}


interrupt void ecap1_isr(){
// Run Time ( e.g. CEVT1 triggered ISR call)
//==========================================
// Note: here Time-stamp directly represents the Duty cycle values.
DutyOnTime1 = ECap1Regs.CAP2; // Fetch Time-Stamp captured at T2
DutyOffTime1 = ECap1Regs.CAP3; // Fetch Time-Stamp captured at T3
DutyOnTime2 = ECap1Regs.CAP4; // Fetch Time-Stamp captured at T4
DutyOffTime2 = ECap1Regs.CAP1; // Fetch Time-Stamp captured at T1
Period1 = DutyOnTime1 + DutyOffTime1;
Period2 = DutyOnTime2 + DutyOffTime2;

ECap1Regs.ECCLR.bit.CEVT4 = 1;
ECap1Regs.ECCLR.bit.INT = 1;
ECap1Regs.ECCTL2.bit.REARM = 1;

//
// Acknowledge this interrupt to receive more interrupts from group 4
//
PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;
}

Thanks,


Viewing all articles
Browse latest Browse all 262198

Trending Articles