TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cocu3 en 10 de Octubre de 2009, 21:34:42

Título: Como puedo enviar multiples bytes por serial en CCS?
Publicado por: cocu3 en 10 de Octubre de 2009, 21:34:42
Buenas noches, tengo la siguiente duda, quiero poder enviar varios bytes por serial, algo asi:

...
      datout1 = 0X01; printf("%C",datout1);
      datout1 = 0X02; printf("%C",datout1);
      datout1 = 0X03; printf("%C",datout1);
      datout1 = 0X04; printf("%C",datout1);
      datout1 = 0X05; printf("%C",datout1);
      datout1 = 0X06; printf("%C",datout1);
      datout1 = 0X07; printf("%C",datout1);
      datout1 = 0X08; printf("%C",datout1);
      datout1 = 0X09; printf("%C",datout1);
      datout1 = 0X0A; printf("%C",datout1);
...

pero mi pregunta es si hay una manera mas eficiente que no utiice tantas lineas de codigo, ya que tengo que enviar datos de mayorr numero, mas de 50 :shock: :shock: :shock:

saluds
Título: Re: Como puedo enviar multiples bytes por serial en CCS?
Publicado por: MLO__ en 10 de Octubre de 2009, 21:47:05
Hola.

Puedes meter todos los datos en un bufer[50] y enviar como un string:

Código: [Seleccionar]
printf("%s", bufer);
Título: Re: Como puedo enviar multiples bytes por serial en CCS?
Publicado por: migsantiago en 10 de Octubre de 2009, 23:23:38
Usando un for y putc sería también más rápido...

Código: [Seleccionar]
int8 buffer[50];

...

for(i=0; i<50; ++i)
   putc(buffer[i]);

O usando tu ejemplo...

Código: [Seleccionar]
      datout1 = 0X01; putc(datout1);
      datout1 = 0X02; putc(datout1);
      datout1 = 0X03; putc(datout1);
      datout1 = 0X04; putc(datout1);
      ...