if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf*, HEX);*
Serial.print(" ");*
_ c = c + buf*;_
_ }_
_ Serial.println("");_
_ digitalWrite(13, false);_
_ }_
_ return c;_
_}*_ O pior, que não faz nem o Serial.print dentro do if.... nem diz o Got. Alguem ja passou por isto, ou pode me dizer um caminho para eu estudar, ou mesmo se isto é possivel ? Obrigado
Então posta o resto do código, com o loop chamando a função radio. E coloca o código com entre [code][/code] (sem asterisco), para ficar melhor de ler.
#include <VirtualWire.h>
#undef int
#undef abs
#undef double
#undef float
#undef round
String c;
void setup()
{
c = String("");
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void radio()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf, HEX);
Serial.print(" ");
c = c + buf;
}
Serial.println("");
digitalWrite(13, false);
}
return c;
}