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 4ac96b42a1 get rid of pc board photo 1 месяц назад
build a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
CooperativeMultitasking.md a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
README.md 48c0c118ab added the README.md 1 месяц назад
beer_vat.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
beer_vat.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
dispatch1.jpg a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
dispatch2.jpg a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
door.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
door.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
door2.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
door2.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
fridge_state.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
fridge_state.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
led_state.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
led_state.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
led_state_simple.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
led_state_simple.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
makefile a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
postMessage.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
radio_tuner.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
radio_tuner.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_2.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_2.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_3.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_3.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_4.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_4.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_5.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
rtb_state_5.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
sendMessage.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
vending.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
vending.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
window_complex.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
window_complex.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
window_state.dot a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад
window_state.png a842113249 Major release, lots of graphics, the text flows better now 1 месяц назад

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).