Vous êtes sur la page 1sur 3

#include "DSP2833x_Device.

h"
#include "DSP2833x_Examples.h"
#include "math.h"
#include "lab4.h"
long int i,k;
long int delay= 5000000;
const float pi=3.1415926535897932384;
void main(void) {
DINT;
//deshabilita interrupciones
DRTM;
//deshabilita interrupciones real time mode
InitSysCtrl();
//inicializa el sistema como PLL,clocks,watcgdog
InitPieCtrl();
//inicializa el apoyo de interrupcin de perifricos
IER = 0x0000;
//limpia mscara de interrupciones
IFR = 0x0000;
//limpia bandera de interrupciones
InitPieVectTable(); //inicializa tabla de interrupciones por defecto
EINT;
//habilita interrupciones
ERTM;
EALLOW;
//****************** CONFIGURACION VALVULAS DE LLENADO A, B, C ***********************
//GPIO30 - Valvula A
GpioCtrlRegs.GPAPUD.bit.GPIO30 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 0; // activa GPIO30 como entrada o salida digital
GpioCtrlRegs.GPADIR.bit.GPIO30 = 1; // activa la direccion de GPIO30 como salida
//GPIO31 - Valvula B
GpioCtrlRegs.GPAPUD.bit.GPIO31 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0; // activa GPIO31 como entrada o salida digital
GpioCtrlRegs.GPADIR.bit.GPIO31 = 1; // activa la direccion de GPIO31 como salida
//GPIO31 - Valvula C
GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0; // activa GPIO32 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO32 = 1; // activa la direccion de GPIO32 como salida
//**************************************************************************************

//*********************************** VALVULA VACIADO **********************************


//GPIO31 - Valvula D
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 0; // activa GPIO33 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO33 = 1; // activa la direccion de GPIO33 como salida
//**************************************************************************************
//************************************* MESCLADOR **************************************
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // activa GPIO34 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // activa la direccion de GPIO34 como salida
//**************************************************************************************
//********************* CONFIGURACION SENSORES N0, N1, N2, N3 **************************
//GPIO35 - SENSOR N0
GpioCtrlRegs.GPBPUD.bit.GPIO35 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 0; //activa GPIO35 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO35 = 0; //activa la direccion de GPIO35 como ENTRADA
//GPIO35 - SENSOR N1
GpioCtrlRegs.GPBPUD.bit.GPIO36 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 0; //activa GPIO36 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO36 = 0; //activa la direccion de GPIO36 como ENTRADA
//GPIO35 - SENSOR N2
GpioCtrlRegs.GPBPUD.bit.GPIO37 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 0; //activa GPIO37 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO37 = 0; //activa la direccion de GPIO37 como ENTRADA
//GPIO35 - SENSOR N3

GpioCtrlRegs.GPBPUD.bit.GPIO38 = 0; //habilitar resistencia pullup


GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 0; //activa GPIO38 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO38 = 0; //activa la direccion de GPIO38 como ENTRADA
//**************************************************************************************

//******************************** INICIADOR DEL PROCESO *******************************


//GPIO39 - INICIO
GpioCtrlRegs.GPBPUD.bit.GPIO39 = 0; //habilitar resistencia pullup
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 0; //activa GPIO38 como entrada o salida digital
GpioCtrlRegs.GPBDIR.bit.GPIO39 = 0; //activa la direccion de GPIO39 como ENTRADA
//**************************************************************************************

//*********** INICIALIZACION VALVULAS DE A, B, C y D, TODAS APAGADAS *******************


GpioDataRegs.GPACLEAR.bit.GPIO30 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO31 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO32 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
//**************************************************************************************
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1; // Inicializacion del meclador: apagado
//********************************** INICIO DEL PROCESO ********************************
while (1){
if(GpioDataRegs.GPBDAT.bit.GPIO39==1){// si se activa el sistema
if(GpioDataRegs.GPBDAT.bit.GPIO35==0){// si el Nivel N0==0 (sensor marca vacio)
for (k=0;k<10;k++){
GpioDataRegs.GPASET.bit.GPIO30 = 1; // activa la valvula V1
while(1){ //Valvula A
if(GpioDataRegs.GPBDAT.bit.GPIO36==1){// si el nivel N1==1
(sensor registra contenido)
GpioDataRegs.GPACLEAR.bit.GPIO30 = 1; // desacativa la
valvula V1
break;
}
}
GpioDataRegs.GPASET.bit.GPIO31 = 1;
while(1){ //Valvula B
if(GpioDataRegs.GPBDAT.bit.GPIO37==1){
GpioDataRegs.GPACLEAR.bit.GPIO31 = 1;
break;
}
}
GpioDataRegs.GPBSET.bit.GPIO32 = 1;
while(1){ //Valvula C
if(GpioDataRegs.GPBDAT.bit.GPIO38==1){
GpioDataRegs.GPBCLEAR.bit.GPIO32 = 1;
break;
}
}
GpioDataRegs.GPBSET.bit.GPIO34 = 1; // activa meclador
for (i=0;i<5000000;i++){} //espera un tiempo
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1; // Desactiva mesclador
GpioDataRegs.GPBSET.bit.GPIO33 = 1; // Vaciado de la mescla
while(1){ //Valvula D
if(GpioDataRegs.GPBDAT.bit.GPIO35==0){
// si se ha vaciado completamente, el sensor N0=0
// Cierra la valvula V4, vaciado de la mescla

GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
break;
}
}
}
}
else{ // si el Nivel N0==1 (sensor marca contenido)
GpioDataRegs.GPBSET.bit.GPIO33 = 1; // vacia el contenido
while(1){ //Valvula V4, Vaciado
if(GpioDataRegs.GPBDAT.bit.GPIO35==0){
// si se ha vaciado completamente, el sensor N0 marca vacio
// Cierra la valvula V4, vaciado de la mescla
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
break;
}
}
}
}// end
} // end while(1)
}

Vous aimerez peut-être aussi