Autor Tema: Empezar con los pic24  (Leído 6135 veces)

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

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Empezar con los pic24
« en: 06 de Abril de 2009, 22:35:37 »
Saludos!! El tema es que quiero empezar a usar la serie pic24F, tengo intencion de programar en mplabC, tengo unos pic24FJ64GA002, los únicos que creo que tienen version dip, para poder probar directamente en la protoboard.

He buscado manuales del compilador mplab, encontre varios:

-MplabC Compiler Pic24 and dspic _ En este se habla sobre el compilador en sí, de cara a como funciona, directivas para compilar...

-16Bit Languaje Tools Libraries _ Este parece mas util, aparecen funciones y su explicacion; solo lo he visto por encima pero creo que no aparecen cuestiones de como configurar y usar los perifericos: adc, timer, usart...tampoco sé como se configurarían los fuses.

Luego tengo el datasheet y el libro "Programming 16-bit Microcontroller in C learning to fly the PIC24 - Lucio Di Jasio - Ed. NEWNES ELSEVIER", este libro aparece en la pagina de microchip y esta muy bien, explica el hardware y tiene codigo para su uso, lo único que no muestra como configurar el oscilador y otros fuses.

Abro este hilo, por si alguien me puede ayudar a empezar, no es que quiera que me lo den hecho pero si donde poder encontrar informacion. Y por si mas gente quiere empezar podemos ir poniendo que fuentes usamos, codigos...
Saludos desde Córdoba, españa

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Empezar con los pic24
« Respuesta #1 en: 23 de Abril de 2009, 21:00:49 »
Saludos de nuevo, he empezado a intentar adaptar algunos codigos, hice este a partir de un codigo que puso Redpic para un dspic33f, asi queda:

Código: C
  1. //prueba
  2.  
  3. //#include "p33FJ256GP710.h"
  4. #include "p24FJ32GA002.h"
  5. //oscilador
  6. _FOSCSEL(2);
  7. _FOSC (193);
  8. #include "delay.h"
  9.  
  10. int main ( void ){
  11. /* set LEDs (D3-D10/RA0-RA7) drive state low */
  12. LATA = 0xFF00;
  13. /* set LED pins (D3-D10/RA0-RA7) as outputs */
  14. TRISA = 0xFF00;
  15. /* Infinite Loop */
  16.    while(1){
  17. // All PORTA to ON
  18. LATA = 0xFFFF;
  19. // Wait 0.5 seconds
  20. Delay(Delay_5mS_Cnt * 100);
  21. // All PORTA to OFF
  22. LATA = 0xFF00;
  23. // Wait 0.5 seconds
  24. Delay(Delay_5mS_Cnt * 100);
  25.         }
  26. }

Para la configuracion del oscilador use el asistente de la pagina de nocturno, que es para dspic33f, pero he leido que tienen igual arquitectura que la serie 24f.

El mplab me da error al compilar, me salen los siguientes mensajes:

prueba.c:6: error: syntax error before numeric constant
prueba.c:6: warning: type defaults to 'int' in declaration of '_FOSCSEL'
prueba.c:6: warning: data definition has no type or storage class
prueba.c:7: error: syntax error before numeric constant
prueba.c:7: warning: type defaults to 'int' in declaration of '_FOSC'
prueba.c:7: warning: data definition has no type or storage class
In file included from prueba.c:8:
delay.h:12:39: warning: no newline at end of file
prueba.c:28:2: warning: no newline at end of file

Si no me equivoco dice que en las lineas de configuracion del oscilador hay un error de sintaxis antes de usar una constante numerica; he visto otros codigos en los que se configura mediante palabras ¿puede que me de error por eso? ¿como podría usar el asistente para configurar el oscilador con numeros?
Saludos desde Córdoba, españa

Desconectado hk5arr

  • PIC10
  • *
  • Mensajes: 1
Re: Empezar con los pic24
« Respuesta #2 en: 25 de Abril de 2009, 03:58:10 »
hola saludos a todos la verdad soy nuevo en el foro y pues no lo se usar todavia, pero tengo una pregunta es pero que alguien me pueda contestar.
Los dspic se programan en lenguaje c solamente o tambien tienen ensamblador, que tipo de herramientas se nesecitan para trabajar estos dispositivos
gracias por su ayuda

Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: Empezar con los pic24
« Respuesta #3 en: 25 de Abril de 2009, 12:27:34 »
hola saludos a todos la verdad soy nuevo en el foro y pues no lo se usar todavia, pero tengo una pregunta es pero que alguien me pueda contestar.
Los dspic se programan en lenguaje c solamente o tambien tienen ensamblador, que tipo de herramientas se nesecitan para trabajar estos dispositivos
gracias por su ayuda

Los dsPIC y PIC24 se pueden progrmar en ASM como en C ... para programar en ASM solo debes instalar el MPLAB IDE que se baja gratuitamente desde Microchip ... para programar en C podes usar C30 que es un plug-in del MPLAB IDE, este C30 tambien se puede bajar gratuitamente desde Microchip. Alternativamente podes usar otros desarrolladores de C como CCS, HiTech y MikroC ... Mikroelektronika ofrece tambien lenguajes en Pascal y Basic ...

Control Automático, DSP & Microcontroladores

Desconectado blackcat

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 600
Re: Empezar con los pic24
« Respuesta #4 en: 25 de Abril de 2009, 12:32:13 »
Saludos!! El tema es que quiero empezar a usar la serie pic24F, tengo intencion de programar en mplabC, tengo unos pic24FJ64GA002, los únicos que creo que tienen version dip, para poder probar directamente en la protoboard.

He buscado manuales del compilador mplab, encontre varios:

-MplabC Compiler Pic24 and dspic _ En este se habla sobre el compilador en sí, de cara a como funciona, directivas para compilar...

-16Bit Languaje Tools Libraries _ Este parece mas util, aparecen funciones y su explicacion; solo lo he visto por encima pero creo que no aparecen cuestiones de como configurar y usar los perifericos: adc, timer, usart...tampoco sé como se configurarían los fuses.

Luego tengo el datasheet y el libro "Programming 16-bit Microcontroller in C learning to fly the PIC24 - Lucio Di Jasio - Ed. NEWNES ELSEVIER", este libro aparece en la pagina de microchip y esta muy bien, explica el hardware y tiene codigo para su uso, lo único que no muestra como configurar el oscilador y otros fuses.

Abro este hilo, por si alguien me puede ayudar a empezar, no es que quiera que me lo den hecho pero si donde poder encontrar informacion. Y por si mas gente quiere empezar podemos ir poniendo que fuentes usamos, codigos...


Hay un detalle importante respecto a la programacion de PIC24 ... es que estos son diferentes a los dsPIC en muchas cosas ... una de ellas es el OSCILADOR. Podes hecharle un ojo al manual de referencia del oscilador de los pic24:

http://ww1.microchip.com/downloads/en/DeviceDoc/39700b.pdf

y si queres programar podes guiarte con los ejemplos de microchip, aqui hay unos para dsPIC y PIC24 que son de un kit de desarrollo para PIC24, el ejemplo utiliza un cristal de 7.37MHz y esta configurado como oscilador primario.

Código: C
  1. #include "p24fj64ga002.h"
  2.  
  3. #define XTFREQ          7372800                         //On-board Crystal frequency
  4. #define PLLMODE         2                               //On-chip PLL setting
  5. #define FCY             XTFREQ*PLLMODE        //Instruction Cycle Frequency
  6.  
  7. #define BAUDRATE         9600      
  8. #define BRGVAL          ((FCY/BAUDRATE)/16)-1
  9.  
  10.  
  11. int main(void)
  12. {
  13.         CLKDIVbits.RCDIV = 0;
  14.  
  15.         RPINR18bits.U1RXR = 9;  // Make Pin RP9 U1RX
  16.         RPOR4bits.RP8R = 3;             // Make Pin RP8 U1TX
  17.  
  18.  
  19.         PADCFG1 = 0xFF;                 // Make analog pins digital
  20.  
  21.         LATB = 0x0;
  22.         TRISB = 0x0FFF;                 // Configure LED pins as output
  23.  
  24.         TMR1 = 0;                               // Clear timer 1
  25.         PR1 = 0x3D09;                   // Interrupt every 250ms
  26.         IFS0bits.T1IF = 0;              // Clear interrupt flag
  27.         IEC0bits.T1IE = 1;              // Set interrupt enable bit
  28.         T1CON = 0x8030;                 // Fosc/4, 1:256 prescale, start TMR1
  29.  
  30.  
  31.         TRISB = 0x0300;
  32.         U1BRG  = BRGVAL;
  33.         U1MODE = 0x8000;                // Reset UART to 8-n-1, alt pins, and enable
  34.         U1STA  = 0x0440;                // Reset status register and enable TX & RX
  35.  
  36.  
  37.         _U1RXIF=0;                                      // Clear UART RX Interrupt Flag
  38.        
  39.  
  40.         while(1)
  41.         {
  42.                 int a;
  43.                
  44.                 while (_U1RXIF==0);                     // Wait and Receive One Character
  45.                 a = U1RXREG;
  46.                
  47.                 while(!U1STAbits.TRMT);
  48.                 U1TXREG = '"';
  49.        
  50.                 while(!U1STAbits.TRMT);         // Echo Back Received Character with quotes
  51.                 U1TXREG = a;
  52.        
  53.                 while(!U1STAbits.TRMT);
  54.                 U1TXREG = '"';
  55.        
  56.                 while(!U1STAbits.TRMT);
  57.                 U1TXREG = ' ';  
  58.        
  59.                 _U1RXIF=0;                                      // Clear UART RX Interrupt Flag
  60.                        
  61. }
  62. return 0;
  63. }
  64.  
  65.  
  66. void __attribute__((interrupt, no_auto_psv)) _T1Interrupt(void)
  67. {
  68.         IFS0bits.T1IF = 0;              // clear interrupt flag
  69.        
  70.         LATB ^= 0xF000;                 //Toggle LED's
  71. }

Ahora lo mas facil para configurar los fuses, es entrando a la ventana de configurarion bits. Para ello debes entrar a: CONFIGURE -> CONFIGURATION BITS y asegurarte que este el oscilador este configurado de la siguiente manera:



Desde esa ventana podes configurar el watchdog, el oscilador secundario (para reloj de tiempo real), etc ...

Tambien podes bajar el ejemplo de:
http://www.microchip.com/Microchip.WWW.SecureSoftwareList/secsoftwaredownload.aspx?device=en529760&lang=en&ReturnURL=http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en529760#
« Última modificación: 25 de Abril de 2009, 12:46:40 por blackcat »
Control Automático, DSP & Microcontroladores

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Empezar con los pic24
« Respuesta #5 en: 25 de Abril de 2009, 20:26:57 »
Muchas gracias blackcat, mañana me pondre a ver si consigo hacerlo funcionar. Me habia parecido leer que los dspic33f y los pic24 eran iguales excepto por la parte del dsp.
Saludos desde Córdoba, españa