Hola amigos de todopic. Verán eh estado buscando ejemplos sobre el manejo de la conversión análogo digital de este tipo de pic y no eh encontrado mucho, y hasta el momento solo eh manejado pic 18F del cual ya tengo un programa hecho en c18 el cual me lee el valor de un sensor dns por el pin A0 hace la conversión y mientras el valor sea menor a 10 me activa una alarma y muestra por una LCD ,ahora el problema es que mi profesor pide este programa pero en DsPIC con el PIC 32mx220f032b del cual no nos dijo mucho

mi pregunta seria con que compilador seria mas fácil trabajar este pic si con c32, CCS o cual me recomiendan y que librerias se utilizan en estos compiladores dejo el código que tengo en c18
# include <p18f4550.h>
# include <delays.h>
# include <xlcd.h>
# include <math.h>
# pragma config FOSC =HS , FCMEN =OFF , IESO =OFF , CPUDIV = OSC2_PLL3
# pragma config PWRT =ON , BOR =OFF , BORV =0, WDT =OFF , WDTPS =32768
# pragma config MCLRE =ON , LPT1OSC =OFF , PBADEN =OFF , CCP2MX = OFF
# pragma config STVREN =OFF , LVP =OFF , XINST =OFF , DEBUG = OFF
# pragma config CP0 =OFF , CP1 =OFF , CP2 =OFF , CPB =OFF , CPD = OFF
# pragma config WRT0 =OFF , WRT1 =OFF , WRT2 = OFF
# pragma config WRTB =OFF , WRTC =OFF , WRTD = OFF
# pragma config EBTR0 =OFF , EBTR1 =OFF , EBTR2 =OFF , EBTRB = OFF
void DelayFor18TCY(void){
Delay10TCYx(2);
}
void DelayPORXLCD(void){
Delay1KTCYx(15);
}
void DelayXLCD(void){
Delay1KTCYx(5);
}
int a=0,b=0,c=0,d=0;
void main(){
OpenXLCD(FOUR_BIT & LINES_5X7);
PORTC=0;
while (1){
float v1=0,v2=0;
TRISD=0;
TRISC=0;
ADCON1=10;// analogas 0-4, vferencia vdd y vss
ADCON2=128;//fosc/2 , 0tad, justifica a derecha
ADCON0=3;
ADRESL=0;ADRESH=0;ADCON0bits.GO=1;
while (ADCON0bits.GO==1){}
v1=(((ADRESH*256)+ADRESL)*4.886)/995;
v1=v1*100;
v2
=2952.35*pow(v1
,-1.19);a=(v2/10);
b=(v2)-(a*10);
d=v2;
if (d<=10){
PORTCbits.RC0=1;
WriteCmdXLCD(1);
Delay10KTCYx(1);
SetDDRamAddr(0x00);
putrsXLCD("Alerta Objeto a");
Delay10KTCYx(1);
SetDDRamAddr(0x43);
WriteDataXLCD(0x30+a);
Delay10KTCYx(1);
SetDDRamAddr(0x44);
WriteDataXLCD(0x30+b);
Delay10KTCYx(1);
SetDDRamAddr(0x46);
putrsXLCD("Cms");
Delay10KTCYx(30);
}
else {
PORTCbits.RC0=0;
WriteCmdXLCD(0x01);
Delay10KTCYx(1);
SetDDRamAddr(0x00);
WriteDataXLCD(0x30+a);
SetDDRamAddr(0x01);
WriteDataXLCD(0x30+b);
SetDDRamAddr(0x40);
putrsXLCD("Cms");
Delay10KTCYx(30);
}
}
}
Agradeceria cualquier ayuda o sugerencia.