まあ、私はあなたの配線のこの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 SingleHD44780コントローラーの画面への非常に簡単な接続:
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の周波数で既にフラッシュします。

参照: