■ BASCOM-AVR の使用方法 ■


 AVRマイコン用 BASICコンパイラ、「BASCOM-AVR」の、操作方法とプログラミングの解説です。

 BASCOM-AVR (DEMO) のインストール
 
   AVR用BASICコンパイラ、BASCOM-AVR 試用版のインストール方法です。
   試用版のため、コンパイル後のプログラム容量に4KByteの制限があります。

 
 
簡単なプログラムの作成から、書き込みまでの操作方法を、実例で解説します。
 

       プログラミングの流れ   (ポートに接続した、LEDを点滅させます)
 
プログラムの概略と、命令文・ラベル・変数・式・演算子の書式を解説します。
 

       プログラムの概略と書式
 
SRAM、XRAM、ERAMの、種別と用途。
  フレーム、ソフトウェア・スタック、ハードウェア・スタックの、役割について解説します。
 

       メモリーの種類と使用方法
 
入出力(I/O)ポートを、制御する方法を解説します。
 

       入出力(I/O)ポートの使用方法
 
ハードウェア タイマーの、使用方法・設定方法を解説します。   
 

       ハードウェア タイマー の使用方法
 
BASICプログラムの中に、アセンブラ命令を記述する方法を解説します。
 

       インライン・アセンブラの使用方法
 
CFカードやSD/MMCカードの、ファイルシステムを管理・制御する方法を解説します。
 

       AVR-DOS (Disk Operating System) の使用方法
 
 
命令文のリファレンス・マニュアル。          
 

指示命令 (コンパイラ)  $で始まる、コンパイラへの指示や制御に関する命令
変数の宣言・操作・変換  変数の宣言と、操作・変換に関する命令
I/O、メモリー、DATA行 関連  ポートの制御、メモリーアクセス、DATA行 関連の命令
進行制御命令  プログラムの流れを制御する命令
内蔵ハードウェア制御命令  タイマーやA/D等の、ハードウェアを制御する命令
キャラクタLCD 関連  キャラクタ(テキスト)タイプの液晶表示器を制御する命令
グラフィックLCD 関連  グラフィック・タイプの液晶表示器を制御する命令
シリアル通信 関連  シリアルポート(RS-232C)の通信を制御する命令
I2C デバイスの制御命令  I2C (TWI) デバイスを制御する命令
1-Wireデバイスの制御命令  1-Wire デバイスを制御する命令
時刻と日付に関する命令  時計機能を利用するための命令
算術関数 演算子 関連  関数や算術演算を行う命令
拡張デバイスの制御命令  赤外線リモコン 等を制御する命令
インライン・アセンブラ 関連  インライン・アセンブラを使用する際に利用する命令
AVR-DOS 関連の命令  AVR-DOSで、各種のディスクを管理・制御する命令
 

       (以降、制作中)
 
アルファベット順  アルファベット順の命令一覧 

 
別 表
レジ ファイル リスト  ($regfile命令用 「.DAT」ファイル)
エラー コード リスト  エラー番号とエラーメッセージ表


 
BASCOM-AVR 試用版(Demo Version)と、AVRチップの選択。

 ・BASCOM-AVRは、フラッシュメモリー(プログラムメモリー)が8KByte以上あるチップの場合、
  ジャンプ命令を、近くの飛び先にもかかわらず、相対ジャンプ(RJMP)ではなく、絶対番地
  ジャンプ(JMP)を使うので、プログラム容量が大きくなります。
 ・また、割り込みベクタ領域も、2倍必要になります。
 
 ・これにより、フラッシュを8KByte以上搭載のチップでは、全く同じプログラムでも、8KByte以下の
  チップより、コンパイル容量がかなり増えてしまいます。
 
 ・4KByteの使用制限内で、少しでも多くのプログラムを試したい場合は、フラッシュメモリーが
  8KByte以内のAVRチップを選択することが得策です。



 
BASCOM-AVR (製品版) のアップデート方法。

 ・BASCOM-AVR 製品版のアップデート方法は、英文のみの案内と多少複雑な操作を
  要求されますので、下記ページを参照して下さい。
 
BASCOM-AVRのバージョンアップ方法詳細 (すんさんのページ)
http://ekousaku.web.fc2.com/bascom_install.html



 
BASCOM-AVRのバグ情報。

 ・コメントの記載、REM命令の書式。

 ・プログラム・ソースのコメント欄に、日本語を表記する場合の注意。

 ・キャラクタLCDのカーソル表示命令、CURSORの異常動作

 ・ソフトウェア I2Cの、SCLクロック速度設定(CONFIG I2CDELAY)が正常にできない。

 ・RND()命令のパラメータを2の乗数にした場合に、乱数の規則性がある。

● Demo Version 2.0.7.5 で周知のバグ。

 ・ 2.0.7.5からバージョンを戻した時に、言語選択が書き換わったまま残ってしまいエラーになる。
   「0 - is not a valid property value!」
   「Value must be within [1..11]!」
 ・対策
  下記ファイルを削除してから、再度インストールします。
  C:\Documents and Settings\ユーザー名\Application Data\MCS Electronics\bascom-avr.xml

 ・表示フォントの選択が、BASCOMの再起動時に戻ってしまう。
 ・対策
  下記から、「bascavr-2075-004.zip」を適当な場所にダウンロードして解凍します。
  http://www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=252&Itemid=54
  出来上がった「bascavr.exe」を、下記にコピーします。(ファイルは上書きです)
  C:\Program Files\MCS Electronics\BASCOM-AVR\
  BASCOMを起動して、[Help] → [About]の「IDE version:」が[2.0.7.5.004]になればOKです。

 ・プログラム書き込み時に、チップの型番に[A]が付いたデバイス名が表示されてエラーになる。
 ・対策
  「$regfile = 」 行を、[A]の付いたレジファイル名で代用します。

 
● Demo Version 1.11.8.7 -> Demo Version 1.11.9.1 で修正されたバグ。


 ・SET、RESET、TOGGLE命令で、変数の代わりに配列を使用した場合の異常動作。
 
 ・ATmega8515、ATmega8535の、TIMER0プリスケール(前段分周)の設定が正常にできない。
 
 ・TIMER1のPWMモードで、カウンターの上限値に、9ビットが設定できない。

● Version 1.11.9.1 -> Version 1.11.9.5 で修正されたバグ。

 ・SET、RESET、TOGGLE命令で、ロング型の配列を使用した場合の異常動作。
 
 ・FOR-NEXT命令の、Step値が正常に動作しない。
 
 ・ATmega164P、324P、644P のTIMER2モード設定で、動作選択が正常にできない。
 
 ・ATmega48/88/168の、TIMER2 Async(外部発振素子接続)設定ができない。
  
 ・ATtiny2313の、TIMER0 比較出力 [OC0x] 選択 Compare x = oc0x で、PD6,PD5が出力になる。

● Version 1.11.9.5 -> Version 1.11.9.8 で修正されたバグ。

 ・ATmega88Pで、割り込みが動作しない。
 
 ・ATmega88Pで、時計用のConfig Clock = Soft 命令が動作しない。
 
 ・ATmega164P・ATmega644Pで、時計用のConfig Clock = Soft 命令が動作しない。
 
 ・ATtiny2313の[POWERDOWN]命令が、正常に動作しない。 POWER mode命令を使用する。
 
 ・ATmega88等のチップで、ウォッチドッグ・リセット発生時の、LCD関連命令による動作不良。

● Version 1.11.9.8 -> Version 1.11.9.9 で修正されたバグ。

 ・TIMER0とTIMER1のPWMモードで、比較出力[OC0x]ピンの出力選択が逆に設定される。
 
 ・ATtiny2313で、POWERDOWNとIDLE命令が使えない。
 
 ・ATmega88Pで、新しい「POWER mode」命令が使えない。
 
 ・グラフィックLCD用ライブラリ「glcdKS108.lib」を、ATmega128等のPortFで使用できない。
 
 ・カラーLCD用ライブラリ「LCD-EPSON.LBX」を、ATmega128等のPortFで使用できない。

● Version 2.0.5.0 -> Version 2.0.7.1 で修正されたバグ。

 ・「SHIFTIN」命令の、外部クロック時のエッジが、「立ち下がり」と「立ち上がり」で逆になりました。
 
 ・TimerのPWMモードで、計数一致発生時の比較出力が、「Clear Up」と「Clear Down」で逆に
  なりました。




   電子工作の部屋 Top へ 前のページへ戻る