collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Ajuda no c#  (Lida 4633 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.768
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..
Cumprimentos,
André Carvalho.