Autor Tema: Arduino + Raspberry + Android OPINION  (Leído 29456 veces)

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

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #45 en: 16 de Mayo de 2013, 06:39:39 »
Pues tenía el siguiente Warning, porque tenía definido el PIC con #define __18F4550 porque alguna librería a veces me hace el tonto

main.c:8: warning: redefining preprocessor macro "__18F4550" ((null): 0)

He quitado el #define __18F4550 y ahora no hay ni errores ni Warning pero en lugar de mostrarme todo con caracteres "||" ahora lo hace con "¨" (dos puntos arriba)

Lo raro es que si hago

printf("%c",tabla_mensajes[1][1][1]); //mensaje, idioma, caracter

Si que me muestra el caracter 1 del idioma 1 y mensaje 1. Es como si la culpa la tubiese el bucle FOR, he metido un pequeño delay para ver si es que lo hacia muy rapido, pero no es ese el problema, continua mostrando los caracteres raros, pero más lento.

raro raro raro...
BitPIC

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #46 en: 16 de Mayo de 2013, 07:38:54 »
si en lugar de definir el array como "const char" lo declaro directamente como "char" me aparece el siguiente error:

Texto.h:22: error: could not find space (3520 bytes) for variable _tabla_mensajes


?¿  :shock: Supongo que según como lo definas lo pone en un sitio u otro de la memoria y por eso aparece este error ¿no?
BitPIC

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #47 en: 16 de Mayo de 2013, 08:20:50 »
Sí, claro, al ponerle CONST lo estás metiendo en la memoria de programa, mientras que si lo quitas lo metes en la RAM.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #48 en: 16 de Mayo de 2013, 10:41:54 »
Pues no se que esta pasando.  :(

por más vueltas que le doy no lo entiendo...

Algo estoy haciendo mal, lo raro es que con el Proteus me va bien, si pongo printf("Hola"); me va bien y si pongo printf("%c",tabla_mensajes[1][1][1]); tambien me muestra el caracter al que apunta....

El hardware descartado, tiene que ser algo de direccionamiento de la tabla o el bucle for... pero se me hace un poco raro.
BitPIC

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #49 en: 16 de Mayo de 2013, 10:55:16 »
Para depurar, prueba a mostrar otras direcciones, a ver si es que se está cargando mal la tabla en la memoria. Haz, por ejemplo, que tu bucle recorra el array en el primer o segundo índice.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #50 en: 16 de Mayo de 2013, 11:17:31 »
Al final sera una tonteria, pero me esta sacando de quicio....

Si pongo esto :


    LCD_goto(0, 0);
    mostrar_mensaje(0,0);

No funicona (salen los "||"), pero si en cambio cojo el codigo que hay dentro de mostrar_mensaje(); y lo sustituyo en el mismo sitio:

    LCD_goto(0, 0);
    int k=0;

    for(k=0;k<20;k++){
        printf("%c",tabla_mensajes[0][0][k]); //mensaje, idioma, caracter
    }

Si que funciona.

¿Puede ser la manera en que se llama a mostrar_mensaje() o como esta definida?
BitPIC

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #51 en: 16 de Mayo de 2013, 11:19:03 »
La verdad es que no le encuentro tampoco la lógica

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #52 en: 16 de Mayo de 2013, 11:32:35 »
Mira, otra prueba que he hecho:

Si pongo esto funciona:

    printf("%c",tabla_mensajes[0][0][0]);
    printf("%c",tabla_mensajes[0][0][1]);
    printf("%c",tabla_mensajes[0][0][2]);
    printf("%c",tabla_mensajes[0][0][3]);
    printf("%c",tabla_mensajes[0][0][4]);
    printf("%c",tabla_mensajes[0][0][5]);
    printf("%c",tabla_mensajes[0][0][6]);


En cambio, si lo sustituyo en el mismo sitio por lo mismo con un bucle FOR o un bucle WHILE no funciona (bueno salen las "||")

    int g;
    for(g=0;g>20;g++){
        printf("%c",tabla_mensajes[0][0][g]);
    }

 :shock:



BitPIC

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #53 en: 16 de Mayo de 2013, 11:42:36 »
Si hago esto funciona:

Código: [Seleccionar]
// Imprime en el LCD el mansaje (a) en el idioma (b) correspondiente
void mostrar_mensaje(int a, int b){

    printf("%c",tabla_mensajes[a][b][0]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][1]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][2]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][3]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][4]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][5]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][6]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][7]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][8]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][9]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][10]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][11]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][12]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][13]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][14]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][15]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][16]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][17]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][18]); //mensaje, idioma, caracter
    printf("%c",tabla_mensajes[a][b][19]); //mensaje, idioma, caracter

}

Pero es muy cutreeee....

al final voy a pensar que es el compilador....
BitPIC

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #54 en: 16 de Mayo de 2013, 11:45:10 »
Puestos a probar cosas, métele un delay dentro del for.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Arduino + Raspberry + Android OPINION
« Respuesta #55 en: 16 de Mayo de 2013, 11:59:42 »
Prueba a poner el arreglo al inicio de una página de memoria de programas, no dejes que el compilador la ponga donde le da la gana. Además prueba a deshabilitar las optimizaciones del compilador, esa suele ser una buena causa de problemas cuando utilizas arreglos multidimensionales.

En el manual del compilador vas a encontrar la directiva para definir la irección donde quieres que te pongan una variable, ahora no tengo esos docs y por eso no la pongo directo. El datasheet te dice donde comienza cada página.

Un saludo
Reinier

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #56 en: 16 de Mayo de 2013, 12:02:21 »
Puestos a probar cosas, métele un delay dentro del for.
Lo he probado también, pero el único efecto que he conseguido es que muestre los "||" más lento.

Prueba a poner el arreglo al inicio de una página de memoria de programas, no dejes que el compilador la ponga donde le da la gana. Además prueba a deshabilitar las optimizaciones del compilador, esa suele ser una buena causa de problemas cuando utilizas arreglos multidimensionales.

En el manual del compilador vas a encontrar la directiva para definir la irección donde quieres que te pongan una variable, ahora no tengo esos docs y por eso no la pongo directo. El datasheet te dice donde comienza cada página.

Un saludo
Reinier

Voy a probar esto que dices Reinier...
BitPIC

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #57 en: 17 de Mayo de 2013, 14:16:48 »
Sigo igual, no hay manera.

¿Puede deberse a que es un array de 3 dimensiones? ¿hay algún problema por hacer este tipo de array?
BitPIC

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Arduino + Raspberry + Android OPINION
« Respuesta #58 en: 17 de Mayo de 2013, 14:40:26 »
La tabla de constantes es un string, no un char.
Usado de esa forma, deberá mostrar los caracteres nulos que dejas en la tabla, que al espaciarla toda tienes caracteres alli.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: Arduino + Raspberry + Android OPINION
« Respuesta #59 en: 17 de Mayo de 2013, 14:44:58 »
Tienes razón MGLSOFT! mientras tu contestabas yo estaba contestando lo siguiente  :D :

--------------------------------------------------------------------------------------------------------
He encontrado algo.

He hecho un array de una dimensión más pequeño

const char mensajes_ingles[] = {"01234567890123456789"};

y seguía teniendo el mismo problema, pero sorpresa... he quitado el "const", digamos que lo he metido en la RAM y ahora si que funciona.

¿Esta mal definido el Array poniendo "const"? ¿Como habría que definirlo para que funcione correctamente?
-------------------------------------------------------------------------------------------------------------------------------------------------

¿Como debería definir el Array para que funcione correctamente?

Gracias
BitPIC


 

anything