How is data passed from one domain to the other.
On top of this:
- Data can be persistent or transient
- The source of the data may either inform or not inform the receiver that the data is present
- The receiver can request new data when its ready
In Band and Out of Band
In-band:
- Control information is communicated in the same way data is transmitted Out-of-band:
- Control information is transmitted using different techniques than how data is transmitted
An escape char \ is an in-band way to transmitting a control signal when printing printf
An out-of-band way to transmitting control signals is using a clock externally that tells you when your data is valid
Data Persistance
- Persistent data is accepted at the convenience of the consumer
- Transient data must be accepted in a time frame
Bouncing
- Mechanical switches are noisy due to bouncing
- You can buy debounced switches or implement your own mechanism Software Fixes
- Wait an amount of time using a delay loop (WHAT??!!!)
- Empty for loop (declare i volatile)
- Wait until the signal is stable
Hardware Fixes
- Wait a fixed amount of time using a delay loop
- Slow down the signal transitions with a capacitor
- Use a more expensive switch