Sunteți pe pagina 1din 2

C:\Users\user\Desktop\backup usb 081215\MT418\configs\pwm_config.c sbado, 12 de diciembre de 2015 10:39 a.m.

#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
/* Cdigo */

void main(void)
{
/* Cdigo */

EALLOW;
// Detiene los EPWM
// Esto va al comienzo de la configuracin de todos los PWM's
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

// Multiplexor de GPIO
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; // Enable pull-up on GPIO0 (EPWM1A)
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; // Enable pull-up on GPIO1 (EPWM1B)
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // 0->GPIO, x->(revisar datasheet)
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // 0->GPIO, x->(revisar datasheet)
EDIS;

// Tasa del prescalador del SYSCLKOUT


// TBCLK = SYSCLKOUT/(1*10) = 15Mhz
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 5;
EPwm1Regs.TBCTL.bit.CLKDIV = 0;
// Determina el periodo 15000 TBCLKs
// T = (TBPRD+1)*(1/TBCLK) = 15000*1/(15Mhz) = 1ms
EPwm1Regs.TBPRD = 14999;

// La fase es 0
EPwm1Regs.TBPHS.half.TBPHS = 0x0000;
// Deshabilitar carga de fase
EPwm1Regs.TBCTL.bit.PHSEN = 0;

// Contador inicio
EPwm1Regs.TBCTR = 0x0000;

// Valor inicial de comparacin


EPwm1Regs.CMPA = 0;
EPwm1Regs.CMPB = 0;

// Configurar modo de conteo


// Contar hacia arriba y al llegar al periodo igual a cero
EPwm1Regs.TBCTL.bit.CTRMODE = 0;

// Configurar shadowing
// Modo shadow (la escritura se hace sobre la sombra)
EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0;
// La sincronizacin sombra->real se hace cuando el CTR es 0
EPwm1Regs.CMPCTL.bit.LOADAMODE = 0;
EPwm1Regs.CMPCTL.bit.LOADBMODE = 0;

// Configurar acciones
// Contador es CMPA -> Pone a 0 la senal EPWM1A
EPwm1Regs.AQCTLA.bit.CBU = 1;
// Contador es 0 -> Pone a 1 la senal EPWM1A
EPwm1Regs.AQCTLA.bit.ZRO = 2;
// Contador es CMPB -> Pone a 0 la senal EPWM1B
EPwm1Regs.AQCTLB.bit.CBU = 1;
// Contador es 0 -> Pone a 1 la senal EPWM1B
EPwm1Regs.AQCTLB.bit.ZRO = 2;

-1-
C:\Users\user\Desktop\backup usb 081215\MT418\configs\pwm_config.c sbado, 12 de diciembre de 2015 10:39 a.m.
// Deshabilita el mdulo de alta resolucin (HRPWM)
EPwm1Regs.HRCNFG.bit.all = 0;
EPwm1Regs.HRCNFG.bit.EDGMODE = 0;

EALLOW;
// Sincroniza todos los EPWM y los activa
// Esto va al final de la configuracin de todos los PWM's
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;

/* Cdigo */
}

-2-

S-ar putea să vă placă și