2021-12-19 (Su) EWC_Panel Timer panel fixed

I went back to the timer panel to figure out why it wasn't transmitting clock signals reliably. While I was there, I changed the smallest adjustment from 1bpm to 5bpm. Downstream reception will be easier for all the panels to calculate the same tempo with lower precision. I connected my LED MIDI tester to see the missed command flickers.

I increased the allowable timeframe for issuing signals hoping that good coding would correct any minor hiccups on the following program scan. I didn't see any performance improvement. My program's last function was the clock signal, so I moved it to the top priority, but it missed just as often. I rewrote the code to print the time between clock signals, but it only confirmed the problem in black and white. I removed the other functions, so the controller only focused on the time issuance, but nothing changed. I even moved my code into a bare sketch free from interference, but my visual tester confirmed that the problem was still there. I hypothesize that something is going on behind the scenes, like processor housekeeping and making the controller screw up.

I reworked my original function to check if the controller should issue a command or have been issued on the previous scan. Either way, the controller sends the signal then waits until the window closes before resuming operation. Typically, I avoid the delay() command, but this simple box can afford to sit idle because it won't freeze up other panels.
Even simple code was not immune to skipping beats

The rest of the posts for this project have been arranged by date.
First time here?

Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Completed projects from year 7
Completed projects from year 8

Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com

This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information on this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by  Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.