??? 12/30/04 19:36 Read: times |
#84139 - yes... Responding to: ???'s previous message |
It is as unreliable as badly written! Exactly :) The problem is it requires quite precise timing. And as long as you can afford to make the UART interrupt the highest priority and service it delaying every other work till done with serial (and it happens much more often than with software version), it will probably work okay (depending on many other "standard" factors...) but with hardware UART, your byte arrives and you say "okay, I know it's there, in SBUF, but I'll let it lie there for another 100 cycles or so, till I'm finished with other more important jobs". If your application needs immediate response to some event and you pre-empt the software UART interrupt event letting it slip several cycles, then it may become very unreliable, as you're stretching the RS232 protocol timing tollerances. In other words, in some applications software UART can be just as reliable (or even more) than the hardware one. In some, it can't be done reliably in software. |
Topic | Author | Date |
Polling/Interrupt For Serial Input | 01/01/70 00:00 | |
bible time | 01/01/70 00:00 | |
Soft UART | 01/01/70 00:00 | |
Hardware? | 01/01/70 00:00 | |
SW UART is not a taboo! | 01/01/70 00:00 | |
yes... | 01/01/70 00:00 | |
think before you do | 01/01/70 00:00 | |
Use oversampling | 01/01/70 00:00 | |
soft UART | 01/01/70 00:00 | |
Half bits | 01/01/70 00:00 | |
Oversampling | 01/01/70 00:00 | |
It's not so bad | 01/01/70 00:00 | |
Oh yes it is! | 01/01/70 00:00 | |
Haven't read it completely? | 01/01/70 00:00 | |
neither have I | 01/01/70 00:00 | |
Sure you did not! | 01/01/70 00:00 | |
did I miss it | 01/01/70 00:00 | |
Problem displaying posts? | 01/01/70 00:00 | |
sure that will work | 01/01/70 00:00 | |
NOT A PIC | 01/01/70 00:00 | |
Just forget 89c51 then. | 01/01/70 00:00 | |
@Erik | 01/01/70 00:00 | |
...all said already. | 01/01/70 00:00 | |
OS? Threads?! | 01/01/70 00:00 | |
Appnote to read | 01/01/70 00:00 | |
threads | 01/01/70 00:00 | |
Problem Solved![]() | 01/01/70 00:00 |