I AM USING CODE COMPOSER STUDIO FOR GENERATING PHASE SHIFT BETWEEN TWO PULSES, USING MATLAB C2000 VLOCKSET I COULD ABLE TO OBTAIN THE PHASE SHIFT AND DEAD BAND IN THE PULSES. BUT IN CODE COMPOSER STUDIO I AM NOT ABLE TO. HEREWITH I HAD GIVEN BELOW THE CODING I DONE. KINDLY HELP ME OUT
USING CODE C
* Author: Deepti
*/
#ifndef PWM_H_
#define PWM_H_
#include "driverlib.h"
#include "device.h"
//#include "board.h"
// Declaration
#define EPWM4_TIMER_TBPRD 5000UL
#define EPWM5_TIMER_TBPRD 5000UL
#define EPWM6_TIMER_TBPRD 5000UL
#define EPWM7_TIMER_TBPRD 5000UL
// function prototype
void initEPWM4(void);
void initEPWM5(void);
void initEPWM6(void);
void initEPWM7(void);
// PWM4 FUNCTION CALLED
void initEPWM4()
{
// Set-up TBCLK
EPWM_setTimeBasePeriod(EPWM4_BASE, EPWM4_TIMER_TBPRD);
// SYNC OUT EVENT
EPWM_setSyncOutPulseMode(EPWM4_BASE,EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
EPWM_setPhaseShift(EPWM4_BASE, 0U);
EPWM_setTimeBaseCounter(EPWM4_BASE, 0U);
// SYNC EVENT
//EPWM_setCountModeAfterSync(EPWM4_BASE, EPWM_COUNT_MODE_DOWN_AFTER_SYNC);
// Set Compare values
EPWM_setCounterCompareValue(EPWM4_BASE,EPWM_COUNTER_COMPARE_A,2500);
EPWM_setCounterCompareValue(EPWM4_BASE, EPWM_COUNTER_COMPARE_B,0);
// Set up counter mode
EPWM_setTimeBaseCounterMode(EPWM4_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad(EPWM4_BASE);
EPWM_setClockPrescaler(EPWM4_BASE,EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
// Set up shadowing
EPWM_setCounterCompareShadowLoadMode(EPWM4_BASE, EPWM_COUNTER_COMPARE_A,EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(EPWM4_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
// Set actions
EPWM_setActionQualifierAction(EPWM4_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH,EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(EPWM4_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
}
// PWM5 FUNCTION CALLED
void initEPWM5()
{
// Set-up TBCLK
EPWM_setTimeBasePeriod(EPWM5_BASE, EPWM5_TIMER_TBPRD);
EPWM_setTimeBaseCounter(EPWM5_BASE, 0U);
// SYNC EVENT
EPWM_setCountModeAfterSync(EPWM5_BASE, EPWM_COUNT_MODE_DOWN_AFTER_SYNC);
// PHASE SHIFT VALUE
EPWM_setPhaseShift(EPWM5_BASE, 2000U);
//
EPWM_setSyncOutPulseMode(EPWM5_BASE,EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
// Set Compare values
EPWM_setCounterCompareValue(EPWM5_BASE,EPWM_COUNTER_COMPARE_A,2500U);
EPWM_setCounterCompareValue(EPWM5_BASE, EPWM_COUNTER_COMPARE_B,0U);
// Set up counter mode
EPWM_setTimeBaseCounterMode(EPWM5_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_setClockPrescaler(EPWM5_BASE,EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
// Set up shadowing
EPWM_setCounterCompareShadowLoadMode(EPWM5_BASE, EPWM_COUNTER_COMPARE_A,EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(EPWM5_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
// Set actions
EPWM_setActionQualifierAction(EPWM5_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH,EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(EPWM5_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW,EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
}
// PWM6 FUNCTION CALLED
/*void initEPWM6()
{
// Set-up TBCLK
EPWM_setTimeBasePeriod(EPWM6_BASE, EPWM6_TIMER_TBPRD);
EPWM_setPhaseShift(EPWM6_BASE, 0U);
EPWM_setTimeBaseCounter(EPWM6_BASE, 0U);
// Set Compare values
EPWM_setCounterCompareValue(EPWM6_BASE,EPWM_COUNTER_COMPARE_A,2500);
EPWM_setCounterCompareValue(EPWM6_BASE, EPWM_COUNTER_COMPARE_B,0);
// Set up counter mode
EPWM_setTimeBaseCounterMode(EPWM6_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad(EPWM6_BASE);
EPWM_setClockPrescaler(EPWM6_BASE,EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
// Set up shadowing
EPWM_setCounterCompareShadowLoadMode(EPWM6_BASE, EPWM_COUNTER_COMPARE_A,EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(EPWM6_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
// Set actions
EPWM_setActionQualifierAction(EPWM6_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH,EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(EPWM6_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW,EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
}
// PWM7 FUNCTION CALLED
void initEPWM7()
{
// Set-up TBCLK
EPWM_setTimeBasePeriod(EPWM7_BASE, EPWM7_TIMER_TBPRD);
EPWM_setPhaseShift(EPWM7_BASE, 2000U);
EPWM_setTimeBaseCounter(EPWM7_BASE, 0U);
// Set Compare values
EPWM_setCounterCompareValue(EPWM7_BASE,EPWM_COUNTER_COMPARE_A,2500);
EPWM_setCounterCompareValue(EPWM7_BASE, EPWM_COUNTER_COMPARE_B,0);
// Set up counter mode
EPWM_setTimeBaseCounterMode(EPWM7_BASE, EPWM_COUNTER_MODE_UP_DOWN);
// EPWM_disablePhaseShiftLoad(EPWM6_BASE);
EPWM_setClockPrescaler(EPWM7_BASE,EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
// Set up shadowing
EPWM_setCounterCompareShadowLoadMode(EPWM7_BASE, EPWM_COUNTER_COMPARE_A,EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(EPWM7_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
// Set actions
EPWM_setActionQualifierAction(EPWM7_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH,EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(EPWM7_BASE,EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW,EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
}
*/
#endif PWM_H_