Ejemplo para manejar el DAC del dsPIC33F64GP802

#1
Buen día tengan todos, quiero pedirles primero disculpas por todas mis preguntas, he estado haciendo últimamente muchas preguntas, pero quiero que me comprendan, pues necesito manejar el dsPIC33FJ64GP802 y siempre es un poco complicadito, yo había programado durante mi carrera simplemente PIC y volví a tratar de programar después de casi tres años entonces me ha tocado volver a recordar y a lubricar mi capacidad de lógica programación...

El motivo de éste mensaje es que necesito manejar el DAC del dsPIC33F... y quería pedirle el favor a alguno si me puede pasar un simple código dónde pueda probar el DAC, que se pueda compilar con MPLAB C30 preferiblemente. Les agradezco mucho su colaboración y de nuevo pido excusas por tanta preguntadera...

Nota: Ya mire el de microchip el de ADC to DAC, pero no tengo la opción de meterle una señal al ADC y quiero un programa que pruebe simplemente el DAC...
 
#2
Hola Stai, pues acabo de leer tu mensaje y ps yo tambien estoy empezando con los dsPIC, aqui te mando un programa basico.

/* Ej. 01: Aplicación Sencilla del ADC */
/************************************************/
#include "p33FJ32MC204.h"
/**********************************************************************************/
main ()
{
IOInit(); // Inicializamos los puertos de entrada y salida
ADCInit(); // Inicializamos el conversor A/D
ADCStart(); // Encendemos el ADC
while(1)
{
while(!IFS0bits.AD1IF);
IFS0bits.AD1IF = 0;
ADC_Data(); // Tomamos data y almacenamos
}
}
/*************************/
/* Configuración del ADC */
/*************************/
ADCInit()
{
AD1CON1 = 0x00E4; // Formato del resultado entero, Comienzo de la conversión automático,
// selección de la muestra después que la conversión termina,10bits
AD1CON2 = 0x003C; // Referencias: AVDD y AVSS, se deshabilita el Modo Scan para el Canal 0
// Se selecciona interrup. después de una secuencia de 16 s/c
// Se selecciona niveo de buffer 16*1 y siempre se usa el MUX A
AD1CON3 = 0x0353; // Clock del ADC del clock interno, Tiempo de muestreo= 13 TAD
// Frecuencia del Clock ADC->16 muestras en 1 ms
AD1CHS0 = 0x0005; // Entrada positiva AN5 para la entrada de la muestra
// Entrada negativa se usa el VR-
AD1PCFGL = 0xFFDF; // Se configura el AD1PCFG para que el único pin
// usado analógicamente sea el AN5
AD1CSSL = 0x0000; // Como el scaneo de canales no está habilitado
// Ningún canal debe ser seleccionado para escaneo
}
IOInit()
{
TRISC = 0xFF00; // PORTC<0-7> son salidas y PORTC<8-15> salidas
// Configuro los pines de salida para el Display
}
ADCStart()
{
AD1CON1bits.ADON = 1; // Prende el ADC
}
ADC_Data()
{
unsigned long int temp;
temp = ADC1BUF0;
LATC=temp/4; /* De 10 bits a 8 bits */
}

ahora yo tengo una pregunta. como puedo hacer para tener la medida de los 9 entradas ADC, y proyectarlo a la Pc, espero que me ayuden, muchas gracias
 
Última edición:
Arriba