TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Nosemucho en 09 de Octubre de 2003, 14:28:00
-
const struct letra
{
char texta[40];
} letra[3]={"hola","que","tal"};
Alguien sabe por que el siguiente codigo no funciona.
Al compilar da error, he probado de varias maneras y
siempre falla.
Gracias:
-
es muy simple coloca el texto dentro de las llaves ya que lo que estas haciendo es declarar como constante la variable texta y no letra que tiene el texto por eso te marca error otra cosa por que concatenar el texto si puede quedar en 1 solo por ejemplo:
const char letra[1][12]={
{"Hola que tal"},
}
ó igual :
const char letra[3]={
{"Hola"},
{"que"},
{"tal"},
}
espero ser claro saludos
-
hola gracias por colaborar pero siento decierte que la segunda opcion que me dais tanpoco funciona.
La razon por la que uso este sistema es por que de esta manera puede mediante un bucle acceder a cuaquier texto
sin problemas, auque de momente no lo he logrado.
Es decir
const struct letra
{
char texta[40]; //numero maximo de letra por linea
} letra[3]={"hola","que","tal"}; // numero de lineas
con letra[0].texta accederia en este caso a "hola"
con letra[1].texta accederia a "que" y asi sucesivamente
De esta manera se puede generar un menu con una sola variable con tan solo cambiar el puntero al array, no se si me explico.
gracias
-
no me queda muy claro pero me imagino que quieres hacer varios menus para un display por eso es de 40 caracteres en texta y varias variables letra para acceder a cada texto que sea como maximo 40 caracteres o no se si puedes explicar un poco mas acerca de tu proyecto para tratar de averiguar cual es el error
-
Vamos a ver si ahora está bien:
#include <16F876.h>
#use delay(clock=4000000)
#include <lcd2.c>
void main()
{
char letra[3][7]={"hola","que","tal"};
lcd_init();
printf(lcd_putc,"%s",letra[0]);
}
Con letra[0] saca hola, con letra[1] saca que y con letra[2] saca tal.
¿Te sirve así? sin necesidad de estructura.
Un saludo
-
Ahora con estructura:
#include <16F876.h>
#use delay(clock=4000000)
#include <lcd2.c>
void main()
{
struct{
char nombre[9];
}chicos[5]={{"Pio"},{"Pepe"},{"Paco"},{"Antonio"},{"Romualdo"}};
lcd_init();
printf(lcd_putc,"%s",chicos[4].nombre);
}
-
Gracias, si creo que esta formula ya funciona, gracias por todo, espero que yo tambien pueda ayudar en lo que sea dentro de mis posibilidades, gracias de nuevo.
Un saludo a todo el mundo. Estaremos en contacto.