Ejemplo para manejar el DAC del dsPIC33F64GP802

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...
 
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:
Atrás
Arriba