I'm trying to create a transmitter/receiver combo based on the 16f84 a chipset. I've got most of the code done and working, I just have a few questions hopefully someone on this site can answer a few of.

- I know that the falling/rising edge of the signal is my clock, what is a good way of recovering this in software? is that possible/even a good idea? I'm trying to avoid using some hardware for this purpose, whats some good ways of synching to this clock in software?

-Should I try to sync with the transmitter until i get a lock, and then process the signals? or should syncing be more of an active process and be done when receiving the bit?

-When I lock on to the edge of the signal, how can i determine I'm reading the correct edge?

I can't seem to find any answers to these burning questions, hopefully someone out there can help! Thanks in advance!