Академический Документы
Профессиональный Документы
Культура Документы
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "math.h"
#include "lab1.h"
main(void)
ERTM;
do{
for (k=0;k<1000;k++)
t=k*T;
salida[k]=func_coseno(w*t);
};
}while(1);
return 100*cos(angulo);
EJEMPLO GPIO
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "lab2.h"
void main(void) {
ERTM;
EALLOW;
// Habilitar un GPIO como salida en el GPIO6, usar el "set" para puesta a uno
// Habilitar un GPIO como salida en el GPIO10, usar el "clear" para puesta a cero
GpioDataRegs.GPADAT.bit.GPIO31 = 1; // Latch a 1
GpioDataRegs.GPBDAT.bit.GPIO34 = 0; // Latch a 0
EDIS;
EINT;
ERTM;
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
};
GpioDataRegs.GPADAT.bit.GPIO31 =0; //Al terminar dejar pin OFF
botones.all=0;
}; //Itera infinitamente
EJEMPLO ADC
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "lab4.h"
#include "monitorF28335.h"
int Promedio;
unsigned int ResultadoADC[16];
void main(void)
EALLOW;
EDIS;
InitSciaGpio(); // inicializa los pines scia para ser usados con su funcin sci
AdcRegs.ADCCHSELSEQ3.all = 0xBA98;
AdcRegs.ADCCHSELSEQ4.all = 0xFEDC;*/
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x7;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x0;
ERTM;
IteraSerial();
ResultadoADC[1]= AdcRegs.ADCRESULT1>>4;
ResultadoADC[2]= AdcRegs.ADCRESULT2>>4;
ResultadoADC[3]=(ResultadoADC[0]+ResultadoADC[1]+ResultadoADC[2])/3;
Promedio=5.46*ResultadoADC[3]+573.8;
EJEMPLO ePWM
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "lab7.h"
#include "monitorF28335.h"
#define EPWM1_MIN_CMPA 50
#define EPWM1_MIN_CMPB 50
#define EPWM_CMP_UP 1
#define EPWM_CMP_DOWN 0
void main(void)
InitEPwm1Gpio();
InitSciaGpio(); // inicializa los pines scia para ser usados con su funcin sci
PieVectTable.EPWM1_INT = &epwm1_isr;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
IniciaEPwm1();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
ERTM;
IteraSerial();
EPwm1Regs.ETCLR.bit.INT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
void IniciaEPwm1()
// Configurar TBCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
// Configurar acciones
LABORATORIO PID
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "math.h"
#include "lab1.h"
float Q[2];
float w[2];
float i[2];
int vref;
const double k = 1;
const double Tc =1 ;
const double R = 1;
double q = 0.2;
double w = 0.5;
double i = 0.5;
double cont=0;
main(void)
ERTM;
while (1) {
wref = u;
float dq = w*dt;
q += dq;
w += dw;
i += di;
err[1] = vref - v;
P = K[1] * err[1];
I = K[2] * mtg;
D = kd*d;
err[0] = err[1];
u = P + I + D;
return u; }
//----------------------------------SALIDAS----------------------------------
// Habilitar un GPIO como salida en el GPIO1, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO2, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO3, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO4, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO5, usar el "clear" para puesta a cero
//----------------------------------ENTRADAS---------------------------------
//----------------------FUNCIONAMIENTO DE LA PLANTA--------------------------
if (GpioDataRegs.GPADAT.bit.GPIO7==1)
{GpioDataRegs.GPASET.bit.GPIO4 = 1;}//VE=1
else
{
GpioDataRegs.GPACLEAR.bit.GPIO4 = 1; //VE=0
GpioDataRegs.GPACLEAR.bit.GPIO6 = 1; //S1=0
GpioDataRegs.GPACLEAR.bit.GPIO5 = 1; //VD=0
GpioDataRegs.GPACLEAR.bit.GPIO1 = 1; //VA=0
GpioDataRegs.GPACLEAR.bit.GPIO2 = 1; //VB=0
GpioDataRegs.GPACLEAR.bit.GPIO3 = 1; //VC=0
//Espero 3 segundos
delay_ms(3000);
GpioDataRegs.GPASET.bit.GPIO1 = 1; //VA=1
if (GpioDataRegs.GPADAT.bit.GPIO8==0)
else
GpioDataRegs.GPACLEAR.bit.GPIO1 = 1; //VA=0
GpioDataRegs.GPASET.bit.GPIO2 = 1; //VB=1
if (GpioDataRegs.GPADAT.bit.GPIO9==0)
GpioDataRegs.GPACLEAR.bit.GPIO2 = 1; //VB=0
GpioDataRegs.GPASET.bit.GPIO3 = 1; //VC=1
if (GpioDataRegs.GPADAT.bit.GPIO10==0)
else
GpioDataRegs.GPACLEAR.bit.GPIO3 = 1; //VC=0
GpioDataRegs.GPASET.bit.GPIO6 = 1; //S1=1
GpioDataRegs.GPASET.bit.GPIO5 = 1; //VD=1
if (GpioDataRegs.GPADAT.bit.GPIO11==0)
else
GpioDataRegs.GPACLEAR.bit.GPIO5 = 1; //VD=0
GpioDataRegs.GPACLEAR.bit.GPIO6 = 1; //S1=0
delay_ms(5000);
GpioDataRegs.GPASET.bit.GPIO4 = 1; //VE=1;
if (GpioDataRegs.GPADAT.bit.GPIO7==0)
else
LABORATORIO ASCENSOR
//SALIDAS
// Habilitar un GPIO como salida en el GPIO4, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO5, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO6, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO8, usar el "clear" para puesta a cero
// Habilitar un GPIO como salida en el GPIO9, usar el "clear" para puesta a cero
//ENTRADAS
//VARIABLES
//int bot_subir,bot_bajar,bot_abrir;
//int lvl_1,lvl2;
//int s_1,s_2;
//int door_1,door_2;
//CODIGO
void main(){
while(1) //WHILE
while(GpioDataRegs.GPADAT.bit.GPIO4==0)
{GpioDataRegs.GPADAT.bit.GPIO6=0;
GpioDataRegs.GPADAT.bit.GPIO7=1;
GpioDataRegs.GPADAT.bit.GPIO6=0;
GpioDataRegs.GPADAT.bit.GPIO7=0;
delay_ms(1000);
do {if (GpioDataRegs.GPADAT.bit.GPIO3==1)
{GpioDataRegs.GPADAT.bit.GPIO8=1;
delay_ms(3000);
GpioDataRegs.GPADAT.bit.GPIO8=0;
delay_ms(1500);
} while(GpioDataRegs.GPADAT.bit.GPIO1==0);
GpioDataRegs.GPADAT.bit.GPIO6=1;
while(GpioDataRegs.GPADAT.bit.GPIO5==0)
GpioDataRegs.GPADAT.bit.GPIO6=0;
do {if (GpioDataRegs.GPADAT.bit.GPIO3==1)
{GpioDataRegs.GPADAT.bit.GPIO9=1;
delay_ms(3000);
GpioDataRegs.GPADAT.bit.GPIO9=0;
delay_ms(1500);
} while(GpioDataRegs.GPADAT.bit.GPIO2==0);
GpioDataRegs.GPADAT.bit.GPIO7=1;