collapse

* Posts Recentes

Picos de voltagem num condensador por fergas
[Ontem às 21:53]


Telescopio por zordlyon
[Ontem às 00:35]


O meu plano para produzir fotograficamente circuito impresso por SerraCabo
[20 de Agosto de 2018, 21:05]


Criar fast blink lampada 12v por vasco
[19 de Agosto de 2018, 22:49]


bma180 avr por senso
[19 de Agosto de 2018, 01:21]


Making Linear Ball Way Cages por jm_araujo
[14 de Agosto de 2018, 23:03]


TV Antiga Desliga-se por almamater
[14 de Agosto de 2018, 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]

Autor Tópico: Ajuda no c#  (Lida 1948 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.736
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..