diff --git a/examples/bare7.rs b/examples/bare7.rs index bde535f324c2f9710ec3427ab867030838475571..e2bc5d499dc9c4a152510c6dd12b2ccb74ed28cc 100644 --- a/examples/bare7.rs +++ b/examples/bare7.rs @@ -183,7 +183,12 @@ fn main() -> ! { // // What is the peak to peak reading of the signal (and why did it change)? // -// ** Zero at MCO2 = 84 MHz and low_speed mode. 3.95 V at MCO = 21 MHz. ** +// ** Zero at MCO2 = 84 MHz and low_speed mode. 3.95 V at MCO = 21 MHz. +// The voltage changed because more current is required to drive the CLK up and +// down at higher frequency. The speed setting exists to be able to conserve +// power when only little power is needed, i.e. at low frequencies. The current +// in the low speed setting can't drive the CLK all the way up to nominal voltage, +// charge, that fast. ** // // Make a screen dump or photo of the oscilloscope output. // Save the the picture as "bare_6_84mhz_low_speed". @@ -220,8 +225,11 @@ fn main() -> ! { // // Explain why the buffer overflows. // -// ** There was no buffer overflow. I wrote 496 bytes, it failed after 336 ITM outputs. -// It failed to echo after 425 characters. ** +// ** There was no buffer overflow. I instead wrote 496 bytes, it failed after 336 ITM +// outputs. It failed to echo after 425 characters. It fails because the readout (and write) +// of the registers take time, and if bytes are added faster than the cpu reads them, the +// register can be cleared to make way for new incoming bytes even before all bytes +// have been read by the program. ** // // commit your answers (bare7_4) //