Autor Tema: XC8 y "warning: (752) conversion to shorter data type"  (Leído 3226 veces)

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

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
XC8 y "warning: (752) conversion to shorter data type"
« en: 03 de Febrero de 2016, 17:42:00 »
Hola.

Estoy trabajando con el PIC16F1509 con MPLAB X v3.20 y XC8 v1.35.

Tengo un función para modificar el ancho de pulso del PWM de la siguiente manera:

Código: [Seleccionar]
void CalibrarAnchoPulsoPWM(unsigned int AnchoPulsoPWM)
{
    PWM1DCL = (unsigned char)((AnchoPulsoPWM & 0x0003) << 6);
    PWM1DCH = (unsigned char)((AnchoPulsoPWM & 0x03FC) >> 2);
}

Cuando compilo el proyecto, yo obtengo las siguientes advertencias respecto a PWM1DCL yPWM1DCH

Citar
PWM.c:52: warning: (752) conversion to shorter data type
PWM.c:53: warning: (752) conversion to shorter data type

Yo he leido por ahí que la solución es escribir lo siguiente en el archio .c que contiene la función:

Código: [Seleccionar]
#pragma warning disable 752
Y en realidad funciona, pero ¿Existe una solución más elegante?

Gracias por cualquier sugerencia.

Fabián Romo
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:XC8 y "warning: (752) conversion to shorter data type"
« Respuesta #1 en: 03 de Febrero de 2016, 18:19:07 »
Exactamente el pragma solo hace que no le preste atencion a esos warning. Que en si es un warning lo que es mas como un "mensaje" y que sepas que se esta haciendo pero es molesto.

Como quitarlo ademas de eso no veo como, a pesar que uno ya le diga con el cast que realmente quiere que ese valor sea mas pequeño.

Probaste con unsigned short int, en ves de unsigned char? Es lo mismo en bits pero no se como le gusta el XC8 funcionar.
Tambien lei que por mas cast que pongas siempre terminas con el mismo warning.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:XC8 y "warning: (752) conversion to shorter data type"
« Respuesta #2 en: 03 de Febrero de 2016, 18:34:12 »
He leído que es un error del compilador, posiblemente en una nueva versión, exista una corrección.

Citar
The compiler has obviously gone apesh-t and is issuing a bogus warning.  No simple bitwise logical operation with the same data lengths on the LHS and RHS (ignoring promotion) should ever trigger this warning.  Put in a support ticket with a minimal compilable self-contained example of the problem and ask for it to be corrected.
 
Meanwhile, don't mangle your code with casts.  I'd try turning it off with:
#pragma warning disable 752

http://www.microchip.com/forums/m907505.aspx
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32