0

I am trying to send a UART signal but FSK encoded. I have the UART working, with baud rate 290. I am sending on P0.7TX. When hooked up to a computer, I get the expected results. However, I would like to generate FSK signals of this UART to send via audio and decode there. For now, I am only focused on sending data.

I have created two functions based on PCA to create zero and one frequencies. Roughly about 1.2kHz and 2.4kHz. I have also figured out that the "loopOne" and "loopZero" have to be done inside an interrupt, otherwise the MCU calls loopOne and loopZero sequentially back to back distorting the wave.

So, my problem is that I cannot figure out how to get the UART's output through an interrupt line, to both call the interrupt, and then have the interrupt call the functions depending on if the TX is low or high.

I can do it with two external interrupts: One for when output is low, and one for when output is high, but I need one of the interrupts for another purpose, so I need to concatenate and use the same interrupt or a separate interrupt and it needs to distinguish between which function to call.

I am working with Silicon Laboratories IDE in c code. The MCU is an SiLabs C8051F996.

  • Found that I can use the same timer which drives UART to drive the loop zero and one FSK depending on the value of the UART output. – FireFerum Apr 15 '12 at 03:33
  • I had abandoned this project but returned to see if I can finish it. Any ideas on how to terminate interrupts either via a timer or a rising/falling edge? – FireFerum Apr 19 '13 at 21:43

0 Answers0