collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por LVirtual
[Hoje às 20:54]


[Projecto] Bomba Airsoft por jm_araujo
[Hoje às 19:01]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: Ajuda no c#  (Lida 1680 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline njgomes

  • Mini Robot
  • *
  • Mensagens: 23
Ajuda no c#
« em: 29 de Janeiro de 2011, 10:23 »
Bom dia.

 Se alguém me poder dar uma ajuda num programa em c# agradeço.

 Já estive este http://www.2shared.com/file/2Vykgnrr/12-12-2010.html programa a trabalhar (recebia e enviada os offset) a umas semanas traz e agora não sei porque carga de agua não funciona. Principalmente quando toca a ler os lados da porta serie.

 A comunicação é feita por Xbee da seguinte maneira.

Cada Offset tem um endereço (vai de 50 a 57) e cada vez que o quero alterar envio o endereço e o valor. O pic recebe e faz o tratamento.
Quando pretendo ler os valores clico em "ler_OFFSET" é enviado ao pic "60"endereço e "99"variavel de apoio. o pic ao receber o endereço "60" vai enviar todos os valores de offset que tem em memoria.

vai um excerto do codigo do pic

...
   while ( BusyUSART() );
      while ( !DataRdyUSART() );
      getsUSART(mensagem,2);            // endereço
      mensagem[2]='\0';
      aux1 = atoi (mensagem);   

      while ( BusyUSART() );
      while ( !DataRdyUSART() );
      getsUSART(valor,2);            // dados
      valor[2]='\0';      
      aux2 = atoi (valor);   
...
          if (aux1 == 50)            // se o endereço recebido for 50
            {strcpy(OFSx,valor);      // os dados recebidos alteram o valor do offset de x do acelerometro
      //      ("copiei a string");
            }
         else if (aux1 == 51)      // se o endereço recebido for 51
            {strcpy(OFSy,valor);            // os dados recebidos alteram o valor do offset de y do acelerometro
            }
...
   else if (aux1 == 60)      // se o endereço recebido for 60 significa que se pretende ler todos os offset
            {
               TRANSMITE (adr_offset);
               TRANSMITE(OFSx);
               TRANSMITE(OFSy);
               TRANSMITE(OFSz);
               TRANSMITE(GYx);
               TRANSMITE(GYy);
               TRANSMITE(GYz);
               TRANSMITE(KP);
               TRANSMITE(KD);
            }

Obrigado pela ajuda desde já
« Última modificação: 13 de Janeiro de 2012, 18:02 por Psycop »

Offline njgomes

  • Mini Robot
  • *
  • Mensagens: 23
Re: Ajuda no c#
« Responder #1 em: 08 de Fevereiro de 2011, 09:23 »
Olá a todos.

 Depois de algumas horas já chegei ao problema.

Os dados de saída do PC estão correctos, e o erro ocorre em:

O PIC envia uma srting ( putsUsart("11\r")

e o que o PC lê é o seguinte:

"\r\o\11"

dai não conseguir fazer nada.
Alguém percebe porque esto a ler isto?

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.708
Re: Ajuda no c#
« Responder #2 em: 20 de Fevereiro de 2011, 01:42 »
Isso em C, julgo que seria por causa de ja teres usado essa string e não teres limpado o buffer...o caracter "/r" em C é para mudança de linha...ou seja vem do buffer penso eu...mas nunca tive C# na vida..não sei se será disso...

Abraço..