« AVR,2313テストボードでLED点滅 | トップページ | HC08、ユーザ・モード・モニタ書き込み »

2008年6月 4日 (水)

AVR,2313テストボードでC言語プログラム

AVR2313テストボードで、LED点滅をアセンブラで実行できたので、C言語でも試してみました。
主な課題は、WinAVRによるCコンパイラがうまく使えるか、と、I/Oレジスタの変数へのアクセスです。

書籍「試しながら学ぶAVR入門」の、P.43(prg0202.c)を打ち込んで、コンパイルしました。
ヘッダファイルavr/io.hによって宣言されているので、DDRBなどの変数へ、代入参照すればアクセスできます。
書き込みは、AVRISP MKⅡを使いました。書籍のP.42に説明があります。
avrsp.exeを使用することも出来ますが、ローヒューズバイトは、デフォルトの内部1MHz発振とするために、-FL01100100で書き込みます。

書き込み後、電源を入れると、4個のLEDが10回点滅したあと、SWを押すと、対応したLEDが点灯しました。

さらに、シリアル入出力のテストをしました。
書籍の、P.94のprg0601.cは、ATmega48用のプログラムですが、入出力の機能は同じなので、一部修正して使用しました。

変更点は、ポートB,C,Dは、使用せず、シリアルのみ残します。
また、I/Oレジスタ名が、UCSR0Bなどとなっているものを、0を取って、UCSRBなどに変更します。また、UBRR0は、UBRRHとUBRRLに分けて設定します。

ボーレイトは、1MHzクロックで、2400bpsとなりますが、内蔵RC発振では、8MHzとしても、9600bpsは、エラーが多くて使用できませんでした。セラロックなどが必要になると思います。

一応、ポートアクセスと、シリアル入出力が可能となりました。
他に、タイマー、ADC、PWM、I2C、割り込み処理などがありますが、簡単なプログラムを作る準備は出来たように思います。

« AVR,2313テストボードでLED点滅 | トップページ | HC08、ユーザ・モード・モニタ書き込み »

製作」カテゴリの記事

コメント

はじめまして。 
あけましておめでとうございます。
 
 ひとつお伺いしますが、
 .include "2313def.inc" とリストに定義して avrasm2.exe version 1995-2004 で
assembleしますと 次のerrorが現れます。
  Preprocessoer, Syntax error, unexepected PPID, expecting PR_PART の
表示の error が現れます。
  どうしてでしょうか。
 avrasm2.exe version 1995-2008 を探してしますが avrstdio 4.18 に
ありますでしょうか。
 お時間がありましたら 教えて頂けますか。
 以上 よろしくお願い致します。

 石原健二


AvrStudio4.14を使用していますが、AVRASM2.EXEというものを見たことがありません。
AvrStudioでは、アセンブルするとき、オプションとして、tn2313を指定するので、ヘッダーファイルと合うと思います。
AvrAsm2.exeのコマンドラインにプロセッサ名の指定があるのではないかと思います。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/515449/41423462

この記事へのトラックバック一覧です: AVR,2313テストボードでC言語プログラム:

« AVR,2313テストボードでLED点滅 | トップページ | HC08、ユーザ・モード・モニタ書き込み »

フォト
無料ブログはココログ
2016年6月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

USBとマイコンの参考書購入