Blinking Blues Quick Version
Blink Broken
The blink program ( lightly modified ) gives unexpected results.
Reduced version of issues raised at
The Code
The code in its entirety is:
const int ledPin=6;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
while ( true ) {
digitalWrite( ledPin, HIGH ); // turn the LED on
delayMicroseconds( 5000 ); // wait
digitalWrite( ledPin, LOW ); // turn the LED off
delayMicroseconds( 5000 ); // wait
}
}
Results
In the gif below focus on channel 3, that is pin6 The cursor measurement for 1,2,3,4 are all about 10.1 ms, a value which seems "right". But at cursor 5,6 you can see a pulse of period 11.060 ms. This is the "glitch" ( bad term here ) that I am talking about. It repeats about every 80 ms. This sort of behavior with some different details has been present in every test I have conducted.
I did look at the rise and fall time on my scope, it is about 20 ns. I cannot catch this stretched pulse on my scope, but looking for a 1 ms discrepancy across 80 ns is not really easy on a scope. I did use the single sweep option and mess with a bunch of the variables. Right now I trust the logic analyzer for this more than the scope, you can try to present an argument for why I should not. I have to confess I have not tried my old 100 mhz analog scope on this guy.
