Python, 液晶, 編集中
ここでは, グラフィック液晶’SG12864ASLB-GB’の操作方法を説明します. これは, いわゆるライブラリの説明ではなく, ハードウェアそのものに対する操作方法です. この内容から, 自作のライブラリなどを製作することが可能です.
説明項目は以下のとおりです.
- 入手方法
- ピン配置
- 名称
- 実際に使ってみる
- 参考文献
各タスクごとに割り当てられるメモリの管理
それぞれのタスクにはそのタスクの状態というものがあります. 今回のOSでは, このタスクの状態を状態リストを用いて判別することにします. 以下から, タスク状態の種類, 状態リストの構造, リストを用いたタスク状態の切り替え方法を詳しく見ていきます.

GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.
- 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
- 高いフレームレート
このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.
画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).
GLCDControllerを改良、強化、何でもしてください(;´∀`)
ここでは, OSの設定方法について説明します.
設定ファイルは,ArduinOSConfig.h
です. このファイル内にOSの設定を書きます. また, 設定ではハードウェアの基本構成に加え, 各機能の有効化, システムフックを行うか, などといった設定を行えます.
ここには, OSの仕組みに関する情報が書かれます. OSは非常に多くのことが関わっているため以下のように分けていきます.
- メモリ管理
- タスク管理
- OSの設定
- Arduino標準機能との融合
ここから, OSのソースファイル, ヘッダファイルを順番に実装していきます.
実装するファイルは次のとおりです.
- Heap4.c
- List.c
- List.h
- ArduinOS.h
- ArduinOSConfig.h
- ArduinOSConfigAtmega328P.h
- ArduinOSConfigAtmega2560.h
- Port.c
- Portable.h
- PortMacro.h
- ProjDefs.h
- Queue.c
- Queue.h
- Semaphore.h
- StackMacros.h
- Task.c
- Task.h
変更を加えるファイルは以下のとおりです.
- Arduino.h
- wiring.c
- main.cpp
基本的な製作の流れを踏まえつつ, 各ファイルごとに説明を行っていきます.
ここでは, ArduinOSの使用方法を説明します.
PortMacro.hで宣言されているOSコア部分の関数をここで定義します. このファイルはAVRマイコン専用です.