Ajuda ansi C

0 respostas
Leco2

gente estou com uma dúvida para implementar um código. será q poderiam me ajudar?

tenho esse código que enviar alguns dados via porta serial, depois de enviar esses dados eu fico no aguardo de uma resposta. Se essa resposta não chegar eu preciso enviar todo esse dado novamente...mas não estou conseguindo fazer isso. vejam...
checksum = 0x10+0x01+0xFF+0xFE;
  
  // aqui eu mando todo o frame de dados
  tx(0x7E); // 
  tx(0x00); // 
  tx(length);// 
  tx(0x10); // 
  tx(0x01); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0x00); // 
  tx(0xFF); // 
  tx(0xFE); // 
  tx(0x00); // 
  tx(0x00); //
  
  for(int i = 0; i<tamanho; i++){
  tx(dados[i]);
  checksum = checksum + dados[i];
  }
  checksum = 0xFF - checksum;
  tx(checksum); // 


  //Zera ponteiro
  j=0;
  
  while(j<11) {
    while(!(IFG2&URXIFG1));// <<--espera chegar um dado. (aqui eu espero chegar a resposta para esse frame de dados.) O problemas está aqui pq  ele vai ficar em looping esperando que chegue algo. Caso não chegue em 5 segs por exemplo ai eu volto td e mando novamente. Me ajudem please!
    rxbuf[j] = U1RXBUF;     
    j++;                             
   }
Criado 8 de maio de 2009
Respostas 0
Participantes 1