As many as there are pins available but the more you use the slower they will all become. Most software UARTS in compiler libraries are blocking, meaning that once a serial byte has started to arrive, the routine waits until the last bit has been received before continuing the program again. This obviously makes it difficult to use more than one at a time but by carefully coding your own UART routines it is possible to use many in parallel.
As many as there are pins available but the more you use the slower they will all become. Most software UARTS in compiler libraries are blocking, meaning that once a serial byte has started to arrive, the routine waits until the last bit has been received before continuing the program again. This obviously makes it difficult to use more than one at a time but by carefully coding your own UART routines it is possible to use many in parallel.
I think it's not a problem of assembler versus C code. The problem is about mastering low-level PIC programming, particularly interrupts and timers. It can be achieved in C, a few lines of inline assembler can be helpful.
I think it's not a problem of assembler versus C code. The problem is about mastering low-level PIC programming, particularly interrupts and timers. It can be achieved in C, a few lines of inline assembler can be helpful.
Yes, I think they will work but you must always re-init the mikroC Software UART library routines via the proper Soft_UART_Init, before using the other sw uart.
But ... I'm not sure that the Soft_UART_Break is also working in both case. Try it.
Or ... use the Multi-SwUart library (written by me, link: see my post above). Its disadvantage: only one baudrate, same for all. Advantage: much smaller code.