Cooperative Multitasking. A web-based article on a technique to implement CMT on tiny microcontrollers.

Part 1 describes the building blocks; part 2 has embellishments and methods to keep your code clean.

Pat Beirne f1ee95d4fc Main page fixup 2 semanas atrás
build a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
CooperativeMultitasking.html e13dec91e4 change link to .html 2 semanas atrás
CooperativeMultitasking.md f1ee95d4fc Main page fixup 2 semanas atrás
README.md e13dec91e4 change link to .html 2 semanas atrás
beer_vat.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
beer_vat.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
blb.jpg 524ef93dc0 Add link in the README, add photo of the button/light board. 2 semanas atrás
dispatch1.jpg a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
dispatch2.jpg a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
door.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
door.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
door2.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
door2.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
fridge_state.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
fridge_state.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
led_state.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
led_state.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
led_state_simple.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
led_state_simple.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
makefile a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
postMessage.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
radio_tuner.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
radio_tuner.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_2.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_2.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_3.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_3.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_4.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_4.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_5.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
rtb_state_5.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
sendMessage.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
vending.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
vending.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
window_complex.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
window_complex.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
window_state.dot a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás
window_state.png a842113249 Major release, lots of graphics, the text flows better now 2 semanas atrás

README.md

This is a web-based article describing cooperative multitasking, also known as event driven programming. The method described here is small enough to fit on many sub-$1 microcontrollers, those without memory management units. Examples are the STM32, STM8, PY32, AtMega, AtTiny, 8051 and Pic microcontrollers.

With this code structure in place, these tiny microcontrollers can be made to perform multiple separate tasks, apparantly independent from each other.

The reader is walked through the elements of the build, and is then given a fully-implemented block of code. The 2nd half of the article builds on the basis, with lots of examples of state-machines and modifications to allow for cleaner code.

The audience for this article is anyone interested in writing code for small micro-controllers. A background in any programming language would help (C, Rust, Python).