You are on page 1of 5

UNIVERSIDAD NACIONAL AUTNOMA

DE MEXICO
FACULTAD DE
INGENIERA
ARQUITECTUTRA DE
COMPUTADORAS

PROFESOR: ARREDONDO GARZA


JOSE ANTONIO
GRUPO: 2
Prctica 2: Suma de Productos
Crdenas Hernndez Citlali Anabel
Corts Tello Ana Karen
Gmez Martn Luis Miguel
Vidal Garca Eloy Guillermo
Ortega Guerrero Adan

//**********************************************************************************//
//
ENCABEZADO INICIAL NECESARIO PARA LA IMPLEMENTACIN DE UN PROYECTO
//
//**********************************************************************************//
#include <p33fj128gp802.h>
// Declara el dsPIC33FJ128GP802
#include <dsp.h>
// Incluye a la librera de DSP.
#include <libq.h>
// Incluye a la librera de
// Punto Fijo.
#include <libpic30.h>
// Incluya a la Librera Accesoria
// del dsPIC.
//*************************************************************************//
// Aqu se Indica como Configurar un Oscilador Externo con Cuarzo de 10MHZ //
//*************************************************************************//
_FOSCSEL(FNOSC_PRIPLL);
// Oscilador
Primario (XT, HS, EC)
// con PLL.
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_HS); // FCKSM_CSDCMD --> quiere
decir que
// el switch del reloj y el monitor de
// falla en reloj (Fail Clock Safe
// Monitor) sern deshabilitados.
// Adems, OSCIOFNC_OFF --> quiere
// decir que la funcin del pin OSC2
// es como reloj de salida.
//
Adicionalmente, POSCMD --> quiere
// decir que el sistema trabajar con
// un cristal "HS" de alta frecuencia
// ubicado de 10 a 40 MHZ (10 MHZ para
// nuestros fines particulares), cabe
// aclarar que este es el oscilador
// primario.
_FWDT(FWDTEN_OFF);
// El Timer del
Watchdog estar
// deshabilitado por software (LPRC
// puede ser dehabilitado limpiando
// el bit SWDTEN en registro RCON).
//_FPOR(PWRTEN_OFF);
// Turn off the
power-up timers.
_FGS(GCP_OFF);
// Deshabilita proteccin
de cdigo
// (en la memoria FLASH).
#define FCY
80000000
// Declaracin de FCY para fines de
// clculos de relojes de Timer's,
// Perifricos Seriales, CANs,
// PWMs, etc.
#define BAUDRATE
115200
// Define la tasa de baudaje
// a 115,200 bauds.
#define BRGVAL
((FCY/BAUDRATE)/16)-1 // Relacin del registro de
// baudaje BRCVAL
//*************************************************************************************//

// RUTINA NECESARIA PARA EL ARRANQUE CORRECTO DE CUALQUIER DISPOSITIVO dsPIC33


CON UN //
// CUARZO EXTERNO DE 10MHZ, CUYA FRECUENCIA SER MULTIPLICADA POR UN
DISPOSITIVO "PLL" //
// Y ELEVADA A 160MHZ, OBTENINDOSE FINALMENTE UNA FRECUENCIA DE 80MHZ SIENDO
ESTA LA //
// FRECUENCIA REAL DE TRABAJO DEL PROCESADOR.
//
//*************************************************************************************//
void Clock_Config(void)
{
PLLFBD=30;
// M=32 (que en realidad es M-2)
CLKDIVbits.PLLPOST=0;
// N2=2 (valor de divisin de la salida del
PLL).
CLKDIVbits.PLLPRE=0;
// N1=2 (valor de divisin de la entrada del
PLL).
}
int A_0[3] = {Q15(0.0103),Q15(0.0103),Q15(0.97)};
// En localidades contiguas
int VIK = 0;
int VIK1 = 0;
int VOK1 = 0;
int VOK = 0;
// Como es la salida debe quedar fuera
// de la secuencia anterior.
int ESCALON = Q15(1.0);
int Soluciones[250];
int i;
// Contador de Soluciones.

void main(void)
{
Clock_Config();

// Configura el Reloj del Sistema


// para 40 MIPS.
CORCONbits.IF = 0;
// Modo Fraccional.
for(i = 0; i<=249;++i)
{
FiltroRC();
// Realiza el cmputo de la
// sumatoria de productos.

// Colector de Soluciones
Soluciones[i] = VOK;
// Actualiza I/O
VOK1 = VOK;
VIK1 = VIK;
VIK = ESCALON;
}
while(1);
}