Arduinoの代替配線-BASCOM-AVR

まあ、私はあなたの配線のこの1つが好きではありません。 そして、何らかの理由で、彼は私を非常にゆっくりとコンパイルし、その後、ファームウェアの前に長い間考えます。

コードエディター、コンパイラー、デバッガーシミュレーターを組み合わせたAVRコントローラーをプログラミングするための代替環境についてお話します。 さらに、最近のバージョンでは、不必要なジェスチャーのない環境をArduinoブートローダーで使用できます(つまり、ボードを変更したり、ブートローダーをフラッシュしたりすることなく)







設置

Offsiteに移動するか、トピックの最後にある2番目のリンクをクリックするだけです。環境のデモバージョン(30Mb)がすぐにロードを開始します。 デモは、コンパイルされた重みが4Kbを超えないプロジェクトを収集できることを意味するだけです。 ほとんどのプロジェクトでは、これで十分です(特にAttiny2313の場合は特にそうです )。そうでない場合は、 rutracker最新バージョンのクラックを購入する必要があります

インストールは完全に正常です。誰かがWin7以降で起動しない場合は、互換モードをXPに設定します。 ぶどうの下で完璧に機能します。 実際には、インストールする必要はありません。フォルダをコピーするだけで、非常にポータブルなバージョンです。



使用する

メインウィンドウ:



すべてのボタンにはヒントが用意されており、どこに何があるのか​​を説明する必要はないと思います。

最新バージョンでは、ロシア語に翻訳されており、オプション-環境-IDE-言語-ロシア語に含めることができます。



ここにはArduino Nanoボードのコピーがあります。ArduinoIDEが嫌いなので、デバッグ時に長い間使用していて、プログラマのコネクタから直接フラッシュしていました。



彼女のために何かを書きましょう。 最初に、MKのタイプ-Atmega168を設定する必要があります。これは次の行で行います。

$regfile = "m168def.dat"
      
      





なぜこのような行、明確に考えます。 もちろん、[設定]-[コンパイラ]-[MK]でコントローラのタイプを設定できますが、本文ではより便利です。 プログラムフォルダ(c:\ Program Files \ MCS Electronics \ BASCOM-AVR \ *。Dat)で、さまざまなコントローラ用に呼び出されるファイルを確認できます。

クロック周波数を設定します。

 $crystal = 16000000
      
      





16 MHz。 時間間隔(ウェイト)のカウントダウン以外には影響しません。 コントローラーの周波数を設定しません。 あなたはまだ自分でそれを公開する必要があります、私はヒューズブロックをプログラムします。 ただし、Arduinoの場合、これを気にすることはできません。

ポートを構成します。

 Config Portb.5 = Output
      
      





ライセンスピンなし、ハードコアのみ。 特定のコントローラーのデータシートを見ると、ポート名が表示されます。

画像

PD1 = portd.1、pb4 = portb.4

各ポートを個別にインストールできますが、次のように記述するだけです:Config Portb = Output



無条件のサイクルを開始します(それなしでも可能です。その後、コントローラーの開始時にプログラムが1回だけ実行されます)

 Do Loop
      
      







そしてその中に、例えば、LEDを点滅させます:

  Toggle Portb.5
      
      





Portb.5は、arduinoのピン13と同じです。 対応(ポートのこのような名前に慣れている場合)は、次の場所にあります。

画像



構文は非常にシンプルで、基本的なものを思い出させます。 7種類の変数: ビット、バイト、整数、ワード、ロング、シングル、ストリング。

次のようにプログラムの冒頭で宣言されています: Dim A as Single

HD44780コントローラーの画面への非常に簡単な接続:

 Config lcd = 16*2 Config lcdpin = PIN, DB4 = PORTB.1,DB5=PORTB.2,DB6=PORTB.3,DB7=PORTB.4,E=PORTB.5,RS=PORTB.6 Config lcdmode = PORT
      
      





そして、それらのテキストに対する同じ単純な結論:

 Lcd "Hello, habr! " ; time
      
      





しかし、そのシンプルさにもかかわらず、カーソル制御、組み込みの文字エディター、キリル文字のサポートがあります。

シンプルなサウンド生成:

 Sound, Portb.0, 100, 500
      
      





これは、500Hzの周波数と100msの持続時間でPB0に蛇行を発行することを意味します。

DTMFトーン生成:

 Dtmfout, 15, 100
      
      





100ミリ秒の15番目のトーン。

UARTを使用します(両方とも鉄とソフトウェアを使用):

 Dim Name as String * 10 $Baud = 9600 Input "Hello, print you name", Name Print "Name: " ; Name
      
      





割り込みの処理:

 On Int0 Button -   Config Int0 = Low Level -     Enable Interrupts -   Enable Int0 Button: Incr Cntr Return
      
      





タイマー付き:

 Config Timer0 = Timer , Prescale = 64 -     On Timer0 Pulse: -   Enable Interrupts -   Enable Timer0 Pulse: Incr Cntr Return
      
      







Arduinoファームウェア

最新バージョンでは、開発者がArduinaブートローダーのサポートを追加しました。いくつかの設定を行うだけで済みます。

オプション-プログラマー-ARDUINO 次に、com-portと速度を指定します。



私の場合、速度は正確に19200に指定する必要がありました。そうでなければ、ボードはフラッシュされませんでした。 arduino-1.0.1 \ hardware \ arduino \ boards.txtのファイル内のすべてのボードのパラメーターを表示できます。

ちなみに、メモリサイズと水晶周波数もあります。



 nano.name=Arduino Nano w/ ATmega168 nano.upload.maximum_size=14336 nano.upload.speed=19200 nano.bootloader.low_fuses=0xff nano.bootloader.high_fuses=0xdd nano.bootloader.extended_fuses=0x00 nano.build.mcu=atmega168 nano.build.f_cpu=16000000L
      
      







代替のロード方法(組み込みのフラッシャーの速度が遅いのが好きではありません)は、最も強力なコンソールプログラマーであるAVRDUDEを使用することです。

ここから最新バージョンたとえばavrdude-5.11.tar.gzをダウンロードします。 プログラムフォルダーに解凍します。

[ オプション]-[プログラマー]-[外部プログラマー]に移動し、後のプログラムで実行可能ファイルへのパスを指定します。

「C:\ Program Files \ MCS Electronics \ BASCOM-AVR \ ARVDUDE \ avrdude.exe」

そして、以下の-この形式のパラメーター:

-C "C:\ Program Files \ MCS Electronics \ BASCOM-AVR \ ARVDUDE \ avrdude.conf" -p atmega168 -P com2 -c arduino -b 19200 -U flash:w:{ファイル}:i

名前からすべてが明らかであり、構成の場所を示し、コントローラーのタイプ、ポート、プロトコル、速度、フラッシュの操作、記録、およびファイルを示します。 Use HEX fileにチェックマークを付けます。

最大の喜びのために、 コンパイル後にアイテムProgramに注意することもできます-1つのボタンでコンパイルおよびフラッシュします。

アセンブリ中、プログラムは使用可能なフラッシュの消費量を表示します。



そして、ARVDUDEが開始します。





また、選択したコントローラーのピンのヘルプを有効にすることができます(デフォルトがあり、そうでない場合は、 表示-ピンレイアウトがオンになります)。



ピンにカーソルを合わせると、ピンの名前と説明が表示されます。

これで十分でない場合は、データシートをダウンロードして、 表示 -PDF ビューアーを有効にすることができます。





もう1つの優れた点は、鉄、ブレークポイント、およびステップごとの実行のシミュレーションを備えた組み込みデバッガーです。



赤いマイクロ回路のボタンを押すとオンになります。もちろん、最初にプログラムをコンパイルする必要があります。



良い面としては、bascomでコンパイルされたコードははるかに小さく、多くの場合Arduino IDEからのコードよりも高速に実行されます。

たとえば、標準の点滅(LEDの点滅):

Arduinoの場合:

 void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); digitalWrite(13, LOW); }
      
      





3078(!!!)バイトのサイズの16進数にコンパイルされ、210 kHzの周波数でピンを引きます:





そして、バスコムでは、次のように書かれています。

 $regfile = "m168def.dat" $crystal = 16000000 Config Portb.5 = Output Do Toggle Portb.5 Loop
      
      





これは、553バイト(5倍小さい)の16進数を占有し、1.6 MHzの周波数で既にフラッシュします。





参照:




All Articles