Arquitectura del procesador digital de señales (44244)
Práctica N°4
Integrantes:
DAVID ROLDAN GARABITO 1621149 (PROTEUS)
CALDAS GOMEZ JHON U18310353 (PROGRAMACION)
MARCOS PEÑALOZA ALVARO U18304424 (PROGRAMACION)
Fecha: 12/11/2022
¿Qué valores tendrán los registros relacionados al ADC? (conversor analógico a digital)
AD1DCON1; se utilizó porque contiene lo siguiente:
En este registro nos interesan los siguientes bits: ADON: Bit para activación (1) o desactivación (0) del
modulo ADC. Para la configuración del modulo debe estar desactivado. AD12B: Bit de selección del modo
de trabajo (1): 12bits-1canal. FORM: Formato de los datos de salida (00): Integer. SSRC: Contador interno
finaliza el muestreo y empieza la conversión (auto-conversión) (111). ASAM: El muestreo empieza
inmediatamente después de la última conversión (1). SAMP: Bit para la activación del muestreo, como
ASAM=1, este bit se activa automáticamente por hardware. DONE: Bit de lectura sobre el estado de la
conversión. Si DONE=0 la conversión no ha empezado o está en progreso, si DONE=1 el ciclo de
conversión ha acabado.
¿Qué valores tienen los registros relacionados a la configuración PWM?
OC1CON=0x0006 registro de modo.
COMPILACION EXITOSA:
CODIGO PROGRAMACION:
#include "reloj.h"
#include <libpic30.h>
#include <xc.h>
#include "p33FJ32GP204.h"
#include "config.h"
#include "xlcd.h"
#include <stdio.h>
void Timer2_init(void);
void PWM_init(void);
void ADCinit(void);
float Vd=0, Periodo_duty_cicle=0; // 3% al 97% variante
int val=0;
char r[7];
int main(void) {
XLCDInit();
ADCinit();
Timer2_init();
PWM_init();
while(1)
__delay_us(10);
while (![Link]); //ALMACENAMIENTO DEL BUFFER - ESPERAR A QUE SE COMPLETE LA
TRANSMISON VD=ADCBUF0
Vd=ADCBUF0; // buffer
OC1RS=93+(3030-93)*(Vd*(1/4095.0));
Periodo_duty_cicle=0.5+(19-0.5)*(Vd*(1/4095.0));
sprintf(r,"%1.1fms",Periodo_duty_cicle);
XLCDgotoXY(0,0);
putrsXLCD(r);
__delay_ms(100);
return 0;
void Timer2_init(void)
/*Módulo Temporizador*/
PR2= 3124 ; //20ms
TMR2=0; /*Manejo de Interrupción*/
IFS0bits.T1IF = 0 ; // Borrar Indicador Finalización de converción
IPC0bits.T1IP = 7 ; // Maxima Prioridad
IEC0bits.T1IE = 1 ; // Habilitar Interrupción
/*Iniciar el Temporizador*/
T2CON= 0x8020 ; //preescaler 64
RPOR11 = 0x0012; //sale por el pin RP22
void PWM_init(void)
OC1CON=0x0006; // Registro de modo
}
void ADCinit(void)
[Link] = 0b001; // voltaje es de 4.096 vcc (vref)
ADPCFGbits.PCFG2 = 0; // AN2 se configura analogico
AD1CHS0bits.CH0SA=0b00010; // AN2
AD1CHS0bits.CH0NA = 0; // como entrada negativa de VREF
//Muestreo automatico
[Link] = 1; // Inicio sample time automatico
[Link] = 0b111; // Elegimos la fuente de conversion manual
AD1CON1bits.AD12B =1 ; // 12 bits
//habilitamos ADC
[Link] = 1;
FORMULA DE FOSC, FCY, TCY.