Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/11/2011 #1


Envio de un array por rs232 en ccs
hola todos, e estado aprendiendo un poco de C utilizando el complador de la casa CCS, pero no e encontrado infomacion acerca de envciar un array de 10 bytes por rs232.

estoy haciendo un control que depende de un convertidor analogico digital que lee 8 sensores los alamcena en un array, estableci la conexion pero no puedo enviar los datos del array por RS232
14/11/2011 #2


hola, eso lo puedes hacer con la función

puts(array);

Espero te sea útil
15/11/2011 #3


hola CARLOS0907 gracias funciona y muy bien, sin embargo me surge una duda no es posible enviar un caracter tipo 0x00 o 0xff ya que algunos de ellos los toma como control o funciones esciales, existe alguna forma que ello no suceda
15/11/2011 #4


no, para nada no los toma como caracteres especiales he hecho varios sistemas de adquisición de datos y estos caracteres siempre se transmiten tal cual.
16/11/2011 #5


para evitar caracteres o funciones especiales ademas por conveniencia divido el valor en 1.4 y a ese nuevo resultado le sume 30, teniendo un vector (int8 v[5] ahora el problema es que al transmitir ese valor me ocupa demasiado tiempo y la recepcion muestra datos q no tengo idea de donde salen utilizo la funcion puts(v); con tiempo superior a los 36 ms ademas genera unos datos que no tengo idea donde salen, pero si envio el mismo vector sin modificacion (division-suma) no supera los 8 ms, pero no tengo idea donde me genera los demas caracteres q salen en la transmision
16/11/2011 #6


estas seguro de tener bien configurada la velocidad de transmisión tanto en el receptor como en el transmisor. por si las moscas verifica tener configurado el adc a 8bits y fíjate que la tierra este bien conectada
25/08/2014 #7


problemas con el envio de un vector
hola, estoy intentando envia un verctor por rs232, use el comando puts, pero me sale un error.
esto es lo que hago:
puts("%c%c%c \r",bomba[0],bomba[1],bomba[2],SERIAL_SIM900);

y el error es este:
"stream must be a constant in the valid range" y lo marca en el corchete de bomba[
que es lo que estoy haciendo mal?
25/08/2014 #8

Avatar de chclau

Habria que ver como esta definida la variable bomba
25/08/2014 #9


chclau dijo: Ver Mensaje
Habría que ver como esta definida la variable bomba
Hola chclau, gracias por responder. La variable si está definida, de hecho puedo enviar la cadena de caracteres por el puerto, pero no puedo compilar cuando quiero leer el estado del vector y enviarlo.
Te adjunto el código.

Código:
int i=0;
char bomba[3];
void main()
{ while (true)               // bucle infinito
   { 
     if(cbuff[0]=='E' && cbuff[1]=='s' && cbuff[2]=='t'&& cbuff[3]=='a'&&cbuff[4]=='d'&&cbuff[5]=='o') 
     {
         cbuff[0]=0;
         for (i=0;i<5;i++)
         {
         PIN_ON(LED1);
         PIN_ON(RELAY1);
         delay_ms(300);
         PIN_OFF(LED1);
         PIN_OFF(RELAY1);
         delay_ms(300);
         }
         if(input(PULSADOR1)==0)
         {
            bomba[0]="0";
            bomba[1]="N";
            bomba[2]=" ";
         }
         else 
         {
            bomba[0]="O";
            bomba[1]="F";
            bomba[2]="F";
         }
         
         
         fprintf(SERIAL_SIM900,"AT+CMGS=\"3804xxxxxx\"\r"); // aca poner el numero de celular que recibe el SMS
         delay_ms(300);
         puts("el estado de la bomba es: \r",SERIAL_SIM900);
         puts("%c%c%c \r",bomba[0],bomba[1],bomba[2],SERIAL_SIM900);
         delay_ms(300);
         fprintf(SERIAL_SIM900,"%c",0x1a);
         
         
         }
  
   }
}
25/08/2014 #10

Avatar de chclau

Te digo un atajo, quiza no el mejor. Definir el valor de una variable "test" en el if que verifica pulsador1, y despues escribir

if(input(PULSADOR1)==0)
test = 0;
else
test = 1;

if (test==0)
puts("ON ", SERIAL_SIM900);
else
puts("OFF", SERIAL_SIM900);


Y te obvias los problemas que pudieras tener por manejar matrices de caracteres.

Podes hacerlo incluso mas corto asi
if(input(PULSADOR1)==0)
puts("ON ", SERIAL_SIM900);
else
puts("OFF", SERIAL_SIM900);
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.