Autor Tema: Conversion Analogo Digital DsPIC 30F4011  (Leído 3117 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado loco322

  • PIC10
  • *
  • Mensajes: 2
Conversion Analogo Digital DsPIC 30F4011
« en: 29 de Abril de 2013, 02:05:09 »
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  :x 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
 
Código: C
  1. # include <p18f4550.h>
  2. # include <delays.h>
  3. # include <xlcd.h>
  4. # include <math.h>
  5.  
  6. # pragma config FOSC =HS , FCMEN =OFF , IESO =OFF , CPUDIV = OSC2_PLL3
  7. # pragma config PWRT =ON , BOR =OFF , BORV =0, WDT =OFF , WDTPS =32768
  8. # pragma config MCLRE =ON , LPT1OSC =OFF , PBADEN =OFF , CCP2MX = OFF
  9. # pragma config STVREN =OFF , LVP =OFF , XINST =OFF , DEBUG = OFF
  10. # pragma config CP0 =OFF , CP1 =OFF , CP2 =OFF , CPB =OFF , CPD = OFF
  11. # pragma config WRT0 =OFF , WRT1 =OFF , WRT2 = OFF
  12. # pragma config WRTB =OFF , WRTC =OFF , WRTD = OFF
  13. # pragma config EBTR0 =OFF , EBTR1 =OFF , EBTR2 =OFF , EBTRB = OFF
  14.  
  15.  
  16. void DelayFor18TCY(void){
  17.         Delay10TCYx(2);
  18. }
  19. void DelayPORXLCD(void){
  20.         Delay1KTCYx(15);
  21. }
  22. void DelayXLCD(void){
  23.         Delay1KTCYx(5);
  24. }
  25. int a=0,b=0,c=0,d=0;
  26. void main(){
  27. OpenXLCD(FOUR_BIT & LINES_5X7);
  28. PORTC=0;
  29. while (1){
  30. float v1=0,v2=0;
  31. TRISD=0;
  32. TRISC=0;
  33. ADCON1=10;// analogas 0-4, vferencia vdd y vss
  34. ADCON2=128;//fosc/2 , 0tad, justifica a derecha
  35. ADCON0=3;
  36. ADRESL=0;ADRESH=0;ADCON0bits.GO=1;
  37. while (ADCON0bits.GO==1){}
  38. v1=(((ADRESH*256)+ADRESL)*4.886)/995;
  39.  
  40. v1=v1*100;
  41. v2=2952.35*pow(v1,-1.19);
  42. a=(v2/10);
  43. b=(v2)-(a*10);
  44. d=v2;
  45.  
  46. if (d<=10){
  47. PORTCbits.RC0=1;
  48. WriteCmdXLCD(1);
  49. Delay10KTCYx(1);
  50. SetDDRamAddr(0x00);
  51. putrsXLCD("Alerta Objeto a");
  52. Delay10KTCYx(1);
  53. SetDDRamAddr(0x43);
  54. WriteDataXLCD(0x30+a);
  55. Delay10KTCYx(1);
  56. SetDDRamAddr(0x44);
  57. WriteDataXLCD(0x30+b);
  58. Delay10KTCYx(1);
  59. SetDDRamAddr(0x46);
  60. putrsXLCD("Cms");
  61. Delay10KTCYx(30);
  62. }
  63. else {
  64. PORTCbits.RC0=0;
  65. WriteCmdXLCD(0x01);
  66. Delay10KTCYx(1);
  67. SetDDRamAddr(0x00);
  68. WriteDataXLCD(0x30+a);
  69.  
  70. SetDDRamAddr(0x01);
  71. WriteDataXLCD(0x30+b);
  72.  
  73. SetDDRamAddr(0x40);
  74. putrsXLCD("Cms");
  75. Delay10KTCYx(30);
  76.  
  77. }
  78. }
  79. }
Agradeceria cualquier ayuda o sugerencia.
« Última modificación: 29 de Abril de 2013, 20:57:26 por loco322 »

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Conversion Analogo Digital DsPIC 30F4011
« Respuesta #1 en: 29 de Abril de 2013, 15:22:54 »
Definitivamente el compilador de microchip, sea C30 o XC16.
Lée la hoja de datos y en la web de microchip hay codigo de ejemplos, veras que no es dificil.

saludos.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.