Autor Tema: Preguntas con CCS  (Leído 5327 veces)

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Preguntas con CCS
« Respuesta #15 en: 20 de Septiembre de 2017, 20:52:45 »
Es lo mismo Duende Azul, como declarar una funcion, como hacer un for, no cambia nada en eso.
El problema es que me estuvo dando errores de que esta mal escrito cuando en cualquier otro compilador lo acepta sin problemas ( no solo xc8 ). Hay cosas que son del compilador obviamente, pero las funciones expuestas son puro C y deberian ser validas para cualquier compilador C.

Todavia no tuve tiempo para ponerme a investigar cual era el problema. Pero apenas pueda informo cual era el mismo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Preguntas con CCS
« Respuesta #16 en: 21 de Septiembre de 2017, 14:53:10 »
Encontre el problema y el porque me daba todos esos errores.

Lamentablemente no hay una lista de palabras reservadas. Pero "byte" no se puede usar. Lo unico que se me ocurre es que se reserve para #byte (que la conocia,pero no crei que iba a dar problemas), el tema es que eso es una directiva de prepocesador la cual debe tener el numeral al frente. Mirando el manual busque por "byte" y en todos los ejemplos que habia decia "bytes" asi que se me ocurrio cambiarlo y ....

Funciono!
Ese era el problema. Lastima no tener una lista ( con el agregado de palabras reservadas ), o que hubiera tirado el error alli y no en todo el documento.

En esta funcion era:

Código: C
  1. void AD5933_SetRegisterValue(unsigned int8 registerAddress,
  2.                              unsigned int32 registerValue,
  3.                              unsigned int8 bytesNumber)
  4. {
  5.     unsigned int8 byte;
  6.     unsigned int8 writeData[2];
  7.  
  8.     for(byte = 0;byte < bytesNumber; byte++)
  9.     {
  10.         writeData[0] = registerAddress + bytesNumber - byte - 1;
  11.         writeData[1] = (unsigned int8)((registerValue >> (byte * 8)) & 0xFF);
  12.         I2C_Escribir(AD5933_ADDRESS, writeData, 2);
  13.     }
  14. }

Citar
BUILD SUCCESSFUL (total time: 998ms)
Loading code from F:/CCS/MPLABx/Fran.X/dist/default/production/Fran.X.production.hex...
Loading completed

-------------------------------------------------------------------------------

Otro nuevo problema, supuestamente CCS posee una funcion sqrt() para hacer la raiz cuadrada de un numero, a pesar que la pagina dice que es para cualquiera. Veo que el math.h solo lo admite para PIC24 en adelante. Vere de realizar unas tablas.
« Última modificación: 21 de Septiembre de 2017, 16:35:11 por KILLERJC »


 

anything