Microchip AVR8 用のライブラリを自作する。(TASK)

タスクqrhタイムスライスなしのシンプルなタスクライブラリ。yield()を実行したときだけタスク切替する2プライオリティのラウンドロビン型スケジューリングを行う。休止状態からの起床時に優先度が一時的に高くなる。

【avr8_config.h】

【サンプルコード (Microchip Studio – Arduino風)】

【修正履歴】
2025-12-25
msgboxなどに使えるavr8_fifo.hを追加。

2025-12-23
一時的にタスクスイッチングを止めるためのdisableAndSaveYields()/restoreYields()を追加。

2025-12-20
コードをよりシンプルにするためタスク生成時のスタック領域のレイアウトを変更。

「旧」
———– stack top (SP)
スタック領域
———–
(TCB)
———– stack bottom

「新」
———– stack top
(TCB)
———– (SP)
スタック領域
———– stack bottom

2025-12-19
メインタスク以外からからスタック領域を刻む方法でタスク生成すると誤動作するため修正。

【ライブラリ】

【関連投稿】
Microchip AVR8 用のライブラリを自作する。(GPIO)
Microchip AVR8 用のライブラリを自作する。(FUSE)
Microchip AVR8 用のライブラリを自作する。(CLOCK)
Microchip AVR8 用のライブラリを自作する。(RESET)
Microchip AVR8 用のライブラリを自作する。(PORTMUX)
Microchip AVR8 用のライブラリを自作する。(USART)
Microchip AVR8 用のライブラリを自作する。(RTC)
Microchip AVR8 用のライブラリを自作する。(TCA)
Microchip AVR8 用のライブラリを自作する。(TCB)
Microchip AVR8 用のライブラリを自作する。(VREF)
Microchip AVR8 用のライブラリを自作する。(DAC)
Microchip AVR8 用のライブラリを自作する。(AC)
Microchip AVR8 用のライブラリを自作する。(ADC)
Microchip AVR8 用のライブラリを自作する。(ZCD)
Microchip AVR8 用のライブラリを自作する。(SPI)
Microchip AVR8 用のライブラリを自作する。(TWI)
Microchip AVR8 用のライブラリを自作する。(MAIN)
Microchip AVR8 用のライブラリを自作する。(CONFIG)
Microchip AVR8 用のライブラリを自作する。(ALARM)
Microchip AVR8 用のライブラリを自作する。(TASK)
Microchip AVR8 用のライブラリを自作する。(DOWNLOAD)