Autor Tema: Como declarar constantes?  (Leído 2525 veces)

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

Desconectado Alejandro

  • PIC16
  • ***
  • Mensajes: 112
Como declarar constantes?
« en: 10 de Junio de 2009, 22:33:28 »
Hola, me van a disculapar pero recien estoy haciendo mis pininos con el CCS y no se como hacer lo siguiente:

Cuando declaro esta constante char:

Citar
const char buffer_tx[]="HOLA MUNDO";

fuera del main(),  no logro enviar estos datos por el puerto serie, pero cuando declaro estas constantes de la siguiente forma:

Citar
buffer_tx[0]="H";
buffer_tx[1]="O";
buffer_tx[2]="L";
buffer_tx[3]="A";
buffer_tx[4]=" ";
buffer_tx[5]="M";
buffer_tx[6]="U";
buffer_tx[7]="N";
buffer_tx[8]="D";
buffer_tx[9]="O";

 y dentro del main() todo funciona OK, cual es mi error, yo pieso que la manera correcta de declarar constantes es como la primera forma, alguien me podria aclarar esta duda?

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Como declarar constantes?
« Respuesta #1 en: 10 de Junio de 2009, 22:59:55 »
No deberias tener problemas. Es mas, la segunda forma no deberia ser valida, ya q estas tratando de meter dos caracteres en el lugar de uno. Q funcion estas usando para enviar la cadena al puerto serie? Deberias usar puts() o printf().
saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Como declarar constantes?
« Respuesta #2 en: 11 de Junio de 2009, 02:11:27 »
Pues para enviarlo basta colocar el printf(%s, buffer_tx);
El papel lo aguanta todo

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Como declarar constantes?
« Respuesta #3 en: 11 de Junio de 2009, 02:19:05 »
MLO, te olvidaste de las comillas :P
printf("%s", buffer_tx);
si no directamente
puts(buffer_tx);

saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Alejandro

  • PIC16
  • ***
  • Mensajes: 112
Re: Como declarar constantes?
« Respuesta #4 en: 11 de Junio de 2009, 02:22:51 »
Hola Miro, aqui esta mi codigo:

Citar
#include <16f876A.h>
//#include <string.h>
#use delay(clock=20M)
#fuses NOWDT,NOPUT,NOPROTECT
#use rs232(STREAM=ALARMA, baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, bits=8)

const char buffer_tx[]="HOLA MUNDO";

void main(void)
{
  int buffer_tx[10];

//buffer_tx[0]='H';
//buffer_tx[1]='O';
//buffer_tx[2]='L';
//buffer_tx[3]='A';
//buffer_tx[4]=' ';
//buffer_tx[5]='M';
//buffer_tx[6]='U';
//buffer_tx[7]='N';
//buffer_tx[8]='D';
//buffer_tx[9]='O';
   
   while (TRUE)
   {
   printf("%c%c%c%c%c%c%c%c%c%c\n\r",buffer_tx[0],buffer_tx[1],buffer_tx[2],buffer_tx[3],buffer_tx[4], buffer_tx[5],buffer_tx[6],buffer_tx[7],buffer_tx[8],buffer_tx[9]);
  }
}

Yo quiero enviar los caracteres de forma en que lo estoy enviando..pero mi pregunta es por que no no puedo visualizar cuando la declaracion lo hago fuera del main()

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Como declarar constantes?
« Respuesta #5 en: 11 de Junio de 2009, 02:32:53 »
Asi no se puede mandar?

int buffer_tx[10]="HOLA MUNDO";

printf("%s",buffer_tx);
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Como declarar constantes?
« Respuesta #6 en: 11 de Junio de 2009, 10:19:30 »
Gracias Gera .... se me bloquearon los dedos  :D

No creo que el codigo posteado te compile, ya que estas definiendo dos cosas con el mismo nombre. Tal como lo postee (con las comillas claro esta) que es como dice suky, debe funcionar.




El papel lo aguanta todo

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Como declarar constantes?
« Respuesta #7 en: 11 de Junio de 2009, 11:45:48 »
Y ojo porq el buffer tiene q tener un byte de mas para alojar al caracter nulo. Esto lo hace solo el compilador si inicias el arreglo asi:
char buffer_tx[]="hola mundo";

si no tendrias q hacer asi:
char buffer_tx[11]="hola mundo";

Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Alejandro

  • PIC16
  • ***
  • Mensajes: 112
Re: Como declarar constantes?
« Respuesta #8 en: 12 de Junio de 2009, 02:45:02 »
Gracias a todos, problema resuelto  :-/  :-/  :-/  :-/  :-/


 

anything