目次
前
次
AmForth概要
AmForthは、ATmegaとMSP430の双方にインプリメントできます。
特徴は、以下。
- Forth 2012がベース
- 16ビットの整数を扱える
- 端末とのデータ交換速度は、38400bps
- ワードは、FlashROM、RAM、EEPROMの中に入れることが可能
- プロセッサ専用のワードを用意
- 内部はすべてアセンブリ言語で記述
ビルトインで利用できるワードを確認すると、以下。
Arduinoは、ATmegaを利用しているので28ピンの場合
ポートを使い易くするために、ワードを定義します。
$23 constant PINB
$24 constant DDRB
$25 constant PORTB
$26 constant PINC
$27 constant DDRC
$28 constant PORTC
$29 constant PIND
$2A constant DDRD
$2B constant PORTD
16進数を入力する場合、小文字のaからfを使います。
AmForthでは、ビルトインのワードは、小文字で定義
されているので、16進数の数字も小文字を使います。
これらを入力して、辞書に入ったかを調べてみます。
何度かワード「constant」で定数を入力したので
複数個の定義が含まれているとわかります。
ワードが複数定義されている場合、最後に定義した
内容が採用されます。辞書の中からワードを探す時
最後から検索するため、最新の定義されたワードを
使う約束になっています。
操作を説明しますが、Forthインタプリタを実装して
いるマイコン基板があれば環境を合わせると、ほぼ
同じことができるはず。
自分が利用している環境は、以下。
端末があれば、どんなコンピュータとでも接続して動かせます。
Serial Cableは、USBでもレガシータイプでもOK。
端末接続の準備ができたなら、電源を入れてみます。
現環境では、ATmega328を利用しているとメッセージが出てます。
Arduinoは、ATmega168を利用することが多いですが
メモリ容量が大きいATmega328、ATmega644、ATmega1280
で使った方が快適。
ワードを集めた辞書をFlashメモリに入れるので
容量が大きいチップを使うほうが、より多くの
ワードを定義して使えると考えられます。
ATmegaチップには、Flash、RAM、EEPROMの3種の
メモリがありますが、辞書はFlash、EEPROMにある
と考えてよいでしょう。また、スタックはRAM上に
用意されるのは、一時的にリード、ライトできる
メモリだとみれば、合点がいきます。
目次
前
次