3 votos

¿Cómo puedo utilizar enteros de 64 bits en un PIC18?

Cuando intento declarar un unsigned long long o un uint64_t le site xc8 arroja la siguiente advertencia:

    12: uint64_t overflow_time;
             ^ (374) missing basic type; int assumed (warning)
             ^ (314) ";" expected
                          ^ (374) missing basic type; int assumed (warning)

Esto acaba convirtiéndose en un error más adelante en la compilación. Investigando un poco he descubierto que cuando se utiliza el estándar C90 por defecto el xc8 el compilador no soporta tipos de datos de 64 bits.

La mejor solución que pude encontrar en línea era "Actualizar a XC8 2.05", que ya tenía.

¿Cómo puedo conseguir que el compilador me permita utilizar tipos de datos de 64 bits?

11voto

Hola Puntos 258

Los tipos de datos de 64 bits están disponibles para su uso, pero debe utilizar las siguientes banderas al compilar:

--std=C99 --ext=cci

Esto hace que el compilador utilice el estándar C99 con el Common C Interface. Con estas banderas del compilador podrás utilizar enteros de 64 bits.

Sin embargo, En este caso, puede ser necesario reformatear el código, ya que algunos códigos C90 no funcionan bien con C99. Vale la pena buscar en el Manual del compilador para "CCI" también, ya que esto también cambia la forma en que tienes que formatear tu código (especialmente para las interrupciones).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X