Most I/O in a microcontroller (like in an Arduino board) consists of transactions. The microcontroller sends a command or a command plus data to a peripheral device and then, perhaps after a short delay, the device sends a response of status and data back to the microcontroller. The Arduino library tends to have only blocking …
My final dice game example for the new book uses FreeRTOS. There are three independent (non communicating) tasks, to keep things simple, rather than breaking down the game itself into multiple communicating tasks. There is the game task, a flashing light (“blinky”) task, and a background task used to measure performance, like I did with …
In looking at the different general purpose Arduino boards available today, I’ve been thinking of how to tie them all together. So I’ve delved as well as I can into the history of Arduino boards. Frankly, it isn’t particularly easy to do. But I did find what appears to be the starting point — the …
It’s been a great past few days for progress on the book. I decided to tackle the Configurable Custom Logic. While I’m familiar with logic and FPGAs, I’ve never had a microcontroller with this feature before. I needed to study what it could do and come up with some reasonable example programs. Frankly, it doesn’t …
Both the ATmega328 and ATmega4809 based Arduino boards have a built in temperature sensor that can be used to measure the temperature of the part, and roughly the ambient temperature. Note that the ATmega2560 in the Arduino Mega does not have this capability. In an ATmega328 based Arduino, such as the Uno or Nano, the …