Go Down

Topic: [SOLUCIONADO] Una función (Read 924 times) previous topic - next topic

peptro

Gracias a todos.
Un saludo

peptro

#16
Oct 29, 2011, 04:03 pm Last Edit: Oct 29, 2011, 04:05 pm by peptro Reason: 1
Al final  he conseguido solucionar el problema.
Gracias  a todos de nuevo.

Sergegsx

si no pones como este post no sirve para el futuro.
para que otros puedan beneficiarse del tiempo que emplearon los usuarios en ayudarte a ti, y tu propio tiempo investigandolo, pon como lo solucionaste y así aprendemos todos.
ver mi firma.

peptro

Tienes toda la razón, aquí está el código

#define setTempoVd 50 
int esclavo; 
int salida; 
unsigned char rxByte = 0;
unsigned char rxConta = 0;
unsigned char CRC8 = 0;
unsigned char txrxSet =0;
char i = 0;
unsigned long tempoStop=0;
void setup(){
  Serial.begin(9600); 
}
void loop(){
   if (Serial.available() > 0) Decode();
   if (txrxSet == 1) if (tempoStop< millis()){
          txrxSet = 0;
  } 
}
void Decode(){
  tempoStop= millis() +  setTempoVd;
  txrxSet = 1;
  rxByte= Serial.read();
  if (rxByte== 0xFF && rxConta ==0){
    CRC8=0;
    rxConta++;
  } 
  else if (rxConta == 1){
    CRC_8(rxByte);
    esclavo = rxByte;
    rxConta++; 
  }
  else if (rxConta == 2){
    CRC_8(rxByte);
    salida = rxByte;
    rxConta++; 
  }
  else if (rxConta == 3){
      if (CRC8 ==rxByte){
        }
    rxConta=0; 
  }
}
void CRC_8(unsigned char b){
  for(char i = 0; i < 8; b = b >> 1, i++){
   if((b ^ CRC8) & 1) CRC8 = ((CRC8 ^ 0x18) >> 1) | 0x80;
   else CRC8 = (CRC8 >> 1) & ~0x80;
  }
}

Sergegsx


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy