Autor Tema: Cambios en "device configuration register" del dsPIC33FJ64GP802  (Leído 3677 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Cambios en "device configuration register" del dsPIC33FJ64GP802
« en: 02 de Febrero de 2010, 20:29:20 »
Hola compañeros de la noble causa, tengo una duda :?: tenía el MPLAB C30 v3.12 instalado, necesité unas funciones de retardo e incontré las funciones _delay_ms() y __delay_us(), pero en la librería <libpic30.h> que tenía mi base de datos no existian, entonces descargué la versión MPLAB C30 v3.22 y pude encontrar esas funciones en el archivo <libpic30.h>, el asunto es que cuando le di compilar me arroja esl siguiente mensaje:

mdac.c:14: error: 'BKBUG_ON' undeclared here (not in a function)
mdac.c:14: error: 'COE_ON' undeclared here (not in a function)


me puse a mirar la librería <libpic30.h> y esos bit los quitaron, entonces me puse a buscar en la data sheet (DS70292B) del dsPIC33FJ64GP802 y hay estan en el mapa de registros de configuración de dispositivo, pero... también habrí la data sheet (DS70292C) que es la última versión y en esa los quitaron (Reserved).

Adjunto les muestro lo que traté de decir,  :D

ALGUIÉN SABE QUÉ PASO?
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #1 en: 03 de Febrero de 2010, 00:05:41 »
 :shock: Yo también tuve problemas con esos macros, a 40 MIPS no funcionaban. Eso lo solucioné cambiando el casting. En este caso habría que comentar las lineas que usan estos bits  :?
No contesto mensajes privados, las consultas en el foro

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #2 en: 03 de Febrero de 2010, 00:57:10 »
:shock: Yo también tuve problemas con esos macros, a 40 MIPS no funcionaban. Eso lo solucioné cambiando el casting. En este caso habría que comentar las lineas que usan estos bits  :?
Hola Suky, gracias por su comentario, usted me podría explicar mejor cómo solucionó dicho problema, a qué se refiere cuando dice cambiar casting, y no entendí lo de comentar las líneas...?

Saludos...
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #3 en: 03 de Febrero de 2010, 01:34:27 »
La librería libpic30.h tiene definida los siguientes macros:

Código: C
  1. #if !defined(FCY)
  2. extern void __delay_ms(unsigned long);
  3. extern void __delay_us(unsigned long);
  4. #else
  5. #define __delay_ms(d) \
  6.   { __delay32( (unsigned long) (d)*(FCY)/1000); }
  7. #define __delay_us(d) \
  8.   { __delay32( (unsigned long) (d)*(FCY)/1000000); }
  9. #endif

El problema a 40MIPs surge en la definición del macro, pues d*FCY se va de rango de los 32 bits cuando d es mayor a 107 aprox. y genera una demora incorrecta, para solucionarlo hay que cambiar a unsigned long long para trabajar con 64-bits.

Código: C
  1. #define _delay_ms(d) __delay32( (unsigned long long) (d)*(FCY)/1000)
  2. #define _delay_us(d) __delay32( (unsigned long long) (d)*(FCY)/1000000)
  3. #define _delay_s(d) __delay32( (unsigned long) (d)*(FCY))

Luego respecto al tema de los bits, el problema surge la tratar de configurar los fuses con las funciones ya implementadas, no es cierto? Hay que ver de que manera deshabilitar el uso de esos bits para poder seguir trabajando.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #4 en: 03 de Febrero de 2010, 02:23:33 »
Hola suky, muchas gracias por su respuesta, me queda una duda, en donde se determina el tipo de almacenamiento (extern void...), también se agrega un long?

Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #5 en: 03 de Febrero de 2010, 08:53:47 »
No, ese es el caso cuando no está definida FCY y entonces las funciones son externas, y no es el caso.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado STAI

  • PIC12
  • **
  • Mensajes: 81
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #6 en: 03 de Febrero de 2010, 13:01:40 »
No, ese es el caso cuando no está definida FCY y entonces las funciones son externas, y no es el caso.


Saludos!

OK Suky muchas gracias por su ayuda...

Saludos...
Álvaro I. Sandoval T.
Ing. en Control Electrónico e Instrumentación

Desconectado alexiel

  • PIC10
  • *
  • Mensajes: 31
Re: Cambios en "device configuration register" del dsPIC33FJ64GP802
« Respuesta #7 en: 21 de Marzo de 2010, 17:27:52 »
Gracias Suki.. También tenía problemas con esas macros. Después de 107ms el retardo no era el correcto...Yo manejo el C30 y me tocó arreglar eso en la librería libpic30.h que trae el C30 en la extensión ...\Microchip Technology\Mplab\support\generic\h y le agregé donde esta definida las macros el long. y listo de perlas...
Código: [Seleccionar]
[code=c]#if !defined(FCY)
extern void __delay_ms(unsigned long);
extern void __delay_us(unsigned long);
#else
#define __delay_ms(d) \
  { __delay32( (unsigned long long) (d)*(FCY)/1000); } //Agregue un long porque tenia problemas con retardos despues del  valor 107 ms
#define __delay_us(d) \
  { __delay32( (unsigned long long) (d)*(FCY)/1000000); } //Aqui tambien
#endif
[/code]