Controle Remoto via Manchester no MikroC

Pessoal,
Estou fazendo um simples controle remoto com aqueles famosos módulos 433MHz que a gente compra por aí. Por enquanto estou mandando somente um byte, só para testar o controle.
Para o transmissor estou usando um PIC 12F683, o qual está transmitindo os dados. Liguei um receptor comercial de RF na frequência de 433.92MHz para ver se estava transmitindo e vi que está recebendo as transmissões do módulo transmissor normalmente.
Para o receptor estou usando um 12F629 mas não consegue decodificar os dados recebidos. Liguei um led na saída do módulo receptor e esse led acende quando faço uma transmissão pelo módulo TX, indicando que o módulo RX está recebendo a transmissão.
Vejam abaixo os códigos do TX e RX.
TX
RX
Vejam que, se o PIC no receptor receber "9' (dado correto) deve ativar por 0,5 segundos a saída GPIO.F2 e qualquer outro sinal recebido ativa a saída GPIO.F4. Nem uma nem outra está funcionando, mas o PIC está funcionando ok.
A distancia entre os módulos TX e RX é de uns 15 cm e tudo está alimentado com 5VCC.
Alguém poderia ajudar a resolver isso?
Valeu!
Estou fazendo um simples controle remoto com aqueles famosos módulos 433MHz que a gente compra por aí. Por enquanto estou mandando somente um byte, só para testar o controle.
Para o transmissor estou usando um PIC 12F683, o qual está transmitindo os dados. Liguei um receptor comercial de RF na frequência de 433.92MHz para ver se estava transmitindo e vi que está recebendo as transmissões do módulo transmissor normalmente.
Para o receptor estou usando um 12F629 mas não consegue decodificar os dados recebidos. Liguei um led na saída do módulo receptor e esse led acende quando faço uma transmissão pelo módulo TX, indicando que o módulo RX está recebendo a transmissão.
Vejam abaixo os códigos do TX e RX.
TX
- Código: Selecionar todos
void main( )
{
char x = 9;
CMCON0 = 7; // comparadores desligados
ANSEL = 0;
TRISIO = 0b000010; // seta os trisio
GPIO = 0;
Man_Send_Init(&GPIO);
while (1)
{
if (button(&GPIO,1,40,1))
{
Man_Send(x); // envia o caracter
delay_ms(400); // aguarda 400ms
// entre transmissões
}
}
}
RX
- Código: Selecionar todos
void main ( )
{
char a, error;
CMCON = 7;
TRISIO = 0b000001;
GPIO = 0;
Man_Receive_Init(&GPIO); // recepção do código no GPIO 0
while (1)
{
a = Man_Receive(error); // testa a mensagem recebida
if (a == 9) // se receber "9" (codigo correto)
{
GPIO.F2 = 1;
delay_ms(500);
GPIO.F2 = 0;
}
else // senão
{
GPIO.F4 = 1;
delay_ms(500);
GPIO.F4 = 0;
}
}
}
Vejam que, se o PIC no receptor receber "9' (dado correto) deve ativar por 0,5 segundos a saída GPIO.F2 e qualquer outro sinal recebido ativa a saída GPIO.F4. Nem uma nem outra está funcionando, mas o PIC está funcionando ok.
A distancia entre os módulos TX e RX é de uns 15 cm e tudo está alimentado com 5VCC.
Alguém poderia ajudar a resolver isso?
Valeu!