マイクロコントローラavrのプログラミングの順序。 AVRマイクロコントローラーの自己プログラミング。 コントローラをフラッシュする方法、およびアクセサリとそれらを使用した手動作業に必要なアクセサリを追加する方法

ゴロフナ / 連絡先


プログラムは何ですか
アルゴリズムは何ですか

私は、多分、少し急いで、記事に名前を付けました 「AVRマイクロコントローラーのプログラミング-最初のステップ」。 Shvidshe、tsia stattyaは、すべての攻撃と同様に、マイクロコントローラーの世界における小さな亀裂です。 「マイクロコントローラーは最後のかぎ針編みです」と言える瞬間まで、このような「かぎ針編み」がたくさんあります。 Ale y tse、すべてのsvidshe、ファンタジールームで-触れられないように触れることはできません-マイクロコントローラーの世界は絶えず開発され、完全に開発されています。 私たちの仕事は、マイクロコントローラーで選択された設計が独自に開発された最初のステップ、つまりそのような最初のステップの論理的な結果を開発することです。 そして、はるかに-サイトの完全な知識から彼らの途中の皮膚poplivから遠く離れています。 最初と最後の記事は次のように呼び出すことができます: 「マイクロコントローラーのプログラミング-最初のステップの最後のステップ」(かがむように必要です!)。
それでは始めましょう。

マイクロコントローラーをマスターしたい人のための3つの心

1.設定された目標の到達時のバザニャと傲慢
私と同じように、この点は最悪です。 bazhannyaがなく、うるさいbazhannya以上のものがある場合、結果はありません。 頭から遠ざかったり、ガタガタしたり、不快感を示したりしないでください。そうすれば、すべてが実行されます(マイクロコントローラーを正しくマスターするだけではありません)。
2.マイクロコントローラーを構築します。
重要な要素。 Aje、待ってください。マイクロコントローラーに電力を供給する方法、注文にどのような障害が発生する可能性があるかわかりません。すべてが機能するため、マイクロコントローラーのすべての機能を打ち負かし、すべてを変更し、どの障害が発生しているのかを知ることはできません。
マイクロコントローラーの「内部」を深く掘り下げることは可能であり、vartoではありませんが、もっと重要なことは、それが-asi、miが有罪であることを知っていることです(sim miであり、サイトの側面で占有されています-vichati asiはマイクロコントローラーで動作します) 。
3.マイクロコントローラー制御コマンドの知識。
マイクロコントローラーは、犬(蝉のpovnyannyaなど)のように、賢明な目で私たちを驚かせ、vikonannyayakihosdiyにコマンドを与えるまで尻尾を振るでしょう。
スマートドッグ、スマートマイクロコントローラーの心のための130以上のコマンドがあります。
つまり、軸は、マイクロコントローラーが尻尾を振っているだけでなく、ロボットが必要になった後、それを制御するためのコマンドを知る必要があります。
言いたいのですが、穂軸の場合、130のコマンドすべて、十分な知識と半分を詰め込む必要はありません(そして学ぶことは少なくなります)。 その前に、多くのチームが互いに複製します。 知っているコマンドが多ければ多いほど、マイクロコントローラーでより効率的に処理でき、プログラムペンのように美しくエレガントに見えます。

Otzhe、マイクロコントローラーの習得に苦労している場合は、続行してください。

プログラムは何ですか

マイクロコントローラーをどれだけ装着するか プログラム-マイクロコントローラ用のプログラムを自分で作成します。

プログラム(翻訳では、この単語は「帰属」を意味します)-可能な細分化の簡単な説明。

たとえば、マイクロコントローラーを光で照らしたいとします。 タスクを完了するのは簡単ですが、マイクロコントローラーを完了するために、最初に、マイクロコントローラーのすべての機能を段階的に説明します。 プログラムを書く、Yaku vinは、私たちに必要な結果、つまり点滅するライトを取り除いたことで、vikonatiの罪を犯しています。
このようなkshtaltのShchos:
♦ライトを点灯します。
-情報の表示に取り組むために、ライトを接続する前に、マイクロコントローラーの表示を調整します
-このvisnovokに論理的なリベンジを与えると、光を照らすことができます
♦現在の時間を確認します。
-一時停止を形成するサブプログラムに移動します(「処方」する必要があるため)
-サブプログラムの一時停止が終了するまでに、メインプログラムに移動します
♦ライトをオフにします。
-マイクロコントローラの外観を申請して、ライトをオフにする論理的な線を引く
そしてこれまでのところ。

用語付き プログラム別の用語が不明瞭に重なっている- アルゴリズム.

アルゴリズムは何ですか

アルゴリズム-必要な結果を達成するためのアクションの順序を説明する一連の指示。

プログラムレポートはどうですか すべてを書き留めるマイクロコントローラ、次に アルゴリズム、-mi 注文を見ることができますマイクロコントローラ。これに基づいてプログラムを作成します。 お尻のお尻とのアナロジーによって:
♦ライトを点灯する
♦現在の時間を確認する
♦ライトをオフにします
そしてこれまでのところ。
そのような方法で、 アルゴリズム-同じプログラム。 アルゴリズムが慎重かつ慎重に作成されるほど、プログラムの作成が容易になります。

Movaプログラミング

愛する犬に人間と一緒にコマンドを与えることができるので、残念です。そうすれば、マイクロコントローラーとの接続は、私が理解しているように、私のマイクロコントローラーのコマンドである可能性があります。

マイクロコントローラのコマンドは、次のような1と0のセットのように見える場合があります。
00110101 011000100
いわゆる- コマンドコード、そしてコマンドのコードはtse mov、yakrazumієマイクロコントローラーです。 そして、参照言語をマイクロコントローラーの言語(0と1のqiセット)に転送するには、特別なプログラムを使用します。
プログラムを使用すると、マイクロコントローラーの作業の順序を多かれ少なかれ理解できるように記述し、その順序を理解できるマイクロコントローラーに転送することができます。その結果、ランクが高くなります。 マシンコード-コマンドと命令のシーケンス(独自の0と1)、およびマイクロコントローラーの理解。 プログラマーによって書かれたプログラムのテキストは、 終了コード。 プログラムをmovプログラム(出力コード)からマイクロコントローラー(マシンコード)に転送します 翻訳者。 翻訳者はプログラムのテキストを機械語に翻訳し、マイクロコントローラーに関するなぞなぞにサインアップできるようにします。
これらのプログラムでは、マイクロコントローラーの動作の順序は、特別な鉱山、つまり私のプログラミングによって記述されています。

Movaプログラミング–コマンド、命令、明確な命令をマイクロコントローラーに転送する方法。

3種類のプログラミングを呼び出すことができます:
映画プログラミング低レベル
高レベルの映画番組
なぜ彼らは悪臭を放つ。 そして、彼らはマイクロコントローラーに近いことを悪臭を放ちます。

マイクロプロセッサ技術の誕生の黎明期には、プログラムは機械語で書かれていたため、ロボットのアルゴリズム全体が0と1を見て順番に書かれていました。 たとえば、軸はプログラムのようになります。
01010010
01000110
10010011
専門家に伝えるには、このような2桁の組み合わせを整理することが重要です。 彼らの生活を楽にするために、プログラマーは最初のものを作り始めました 映画プログラミング。 したがって、軸ほど、言語プログラミングがそのような0と1のセットに近いほど、「低等」のワインが多くなり、それらから遠いほど、「高等」が大きくなります。

マイクロコントローラー用の最も幅広いソフトウェア:
-mova low equal- アセンブラ
-高い平静の言語- C(Ci)
їхноївідмініnostіのアプリケーションに驚嘆しましょう(tsіは抽象を適用します)。
25と35の2つの数字を追加することは許可されています。
マシンコードでは、コマンドは次のようになります。
00000101 1101001
私の低い嫉妬:
Rd、Rrを追加
私の高い嫉妬:
25+35
Vіdminnіstの動きの低レベルと高レベルは、飽くなき目で見られます。
エール、グリブシェのお尻を掘り下げましょう。 マシンコードのバットは分析されません。ワインの破片はアセンブラーのバットと同じです。 それ自体のために、アセンブラコマンドとマシンコード(コマンド)は、0と1で迷子にならないように、略語に文字を割り当てます。 アセンブラコマンドADDRd、Rrを使用して、マイクロコントローラに2つの数値を追加するように設定します。これらの数値は既知である必要があります(最初にRd、別のRrを記述し、追加した結果をRdに配置します)。 実際のところ、マイクロコントローラーにもっと具体的なタスクを設定しましょう。やりたいことと結果をどこに置くかを考えてみましょう。 そしてここでは、マイクロコントローラーを介さずに練習します。
私のハイレベルのコマンド:25 + 35、私たちの数学的記録、それは私たちの目を静かにします。 ただし、この場合、マイクロコントローラーを直接操作することはできません。2つの数値を追加するタスクを設定するだけです。 この場合の結果とイベントの順序は、アセンブラーコマンドの場合と同じになります。最初の2つの数字が書き留められてから折りたたまれ、次の部屋の結果になります。
ここでの最初の軸は、高レベルと低レベルのヘッドです。 アセンブラーの場合と同様に、プロセス全体を制御できます(それ以上が必要な場合)。2つの数値を書き留める方法を知っており、結果が得られるかどうかを知っているので、高レベルの移動ではプロセスを制御しません。 プログラム自体は、数値を書き留める場所と結果を保存する場所をチェックします。 何よりも、たとえそれがスマットバッグであったとしても、知る必要はありません。60番が出て行く途中です。 その結果、高級言語のプログラムは、「すべての暗闇を這う」必要がない場合でも、より多くの読書(精神栄養)、目の受容体(精神栄養)、そして世界のためのより少ないものを持っています。マイクロコントローラーのスキンをペイントすると、プログラムは後で動作します。コンパイルすると、マシンコードが変換されます。 エール、ここにマイナスがあります。 同じアルゴリズムのうちの2つは、アセンブラーとCで記述されていますが、マシンコードでの変換後は異なります。アセンブラーで記述されたプログラムは、Cで記述されたプログラムよりも20〜40%短くなります。 Cが必要な結果を達成する方法。 Іtraplyayutsyavpadki、高放下の映画に到達できない場合、およびCのプログラムで、アセンブラーで記述されたコードの挿入。

プログラマーは、原則として、多くの新しいプログラミングを知っており、1つのプログラムで能力と進歩を創造的に共有しています。 ええと、私たちアマチュアにとって、私たちは(穂軸のために)1つの言語が必要かどうかを知る必要があり、低レベルの動きであるアセンブラーから始める必要があります(そして私はそれをしっかりと信じています)。

プログラムとデータの配布(古典主義建築に基づく)
最高のコンピューターでのフォンノイマン、メモリは難しい)。 のための異なるタイヤ
メモリのtsikh領域は、プログラムによって大幅に後悔しています:データと
チームは同時に向きを変えることができます。

悪名高い認識(RVN)の32レジスタ。 Atmelは断然最初の会社でした
列挙核の古典的なモデルに登場しました。
ALUとメモリ間のデータ交換を転送するコマンドはありません
眠っている記憶の真ん中。 そのような量のRONの導入(
建築 バツ 86 バツ 51 RONを理解する、そのように、
vіdsutnya)多くのvipadkіvでvіdroztashuvannyaglo-のvzagalіvіdmovityを許可します
RAMとスタックスタックのタイプのグローバルおよびローカルの変更、
プログラムへの嫌がらせを簡単にする方法。 結果として、
サンプラープログラムは高水準プログラムに近づいています。
真実は、それはコマンドシステムの一種の単純化につながったということです。
それらの多くはAVR用であり、他のRISCの故郷には低いものがあります(重要かどうかにかかわらず)
指示の一部は仮名です)。

フラッシュメモリプログラム(10,000消去/書き込みサイクル)可能
内部システムの再プログラミングと最後までのキャプチャ
チャネルは完成したスキームにあります。 そのような旅の進歩について、なんと9番目になります
儀式的に受け入れられ、伝えられるところによると vednіで.

エネルギーに依存しない記憶のオクレマ領域(EEPROM、100,000サイクル
消去/書き込み)データを保存し、プログラム可能な記録の可能性
SPIインターフェースを介した方法またはzvn_shnyzavantazhennya。

アナログ信号を処理するための組み込みの拡張機能:アナログ
コンパレータとリッチチャネル10ビットADC。

ウォッチドッグタイマー、自動的に再前進することができます
時間の間隔を介してコントローラー(たとえば、
「スリープ」モード)。

最新のSPIインターフェース, TWI (

C) それ UART (USART)、 許可する-

schіzdіysnyuvativmіnіdannymіzより標準的なtsenіvі
その他の別棟(パソコンなど)
ハードウェア。

タイマー再インストールとdzherelrahunokを選択する可能性-
それらのパルスの:原則として、1つまたは2つの8ビットパルスと最小の1つ
マルチチャネルモード8、9、、で処理できる16ビットを含む
10、16ビットパルス幅変調(PWM)。

クロック周波数での作業の可能性 0 Hz〜16〜20MHz。

寿命電圧範囲2.7〜5.5 V(場合によっては、1.8または
最大6.0V)。

数字 省電力モード、いくつかの結び目によって吹き飛ばされます、
schozalishayutsyapodklyuchenimi。 ウォッチドッグによる「睡眠」体制からの脱却
タイマーまたはzovnіshnіmiの中断用。

ウェイクアップライフモニター-電圧降下検出器(ブラウンアウト
検出)。

ここでは、さまざまなモデルに典型的なすべての機能からはほど遠いものがリストされています
AVR。 他の何人かの人々と私達はよりよく知っていますそしてまた実際に
レポートを確認しましょう。 エール背中合わせダモザガルヌ特徴
最も重要な認識を一瞥したAVRのさまざまなファミリー。

AVRファミリー

2002rを持っています。 Atmelは、に基づいた新しい8ビットMKパイロディンのリリースを開始しました
AVRコア。 その時間から、このファミリのすべてのMKは3つのグループに分けられます(subsimeist-
va):クラシック、タイニー、メガ。 MKファミリークラシック(AT90S) xxxx)リリースされなくなりました。
遠く離れたvirobnitstvі"zatrimalas"で見つかりました(シンプルでコンパクトな
swidcodeモデル)AT90S2313、エール、2005年にブラを獲得。 と取り換える
ATtiny2313。 名前に最初の数字が2と8のすべての「クラシック」AVR
モデル(キロバイト単位のプログラムの合計メモリを意味します)
小さなとメガ。 メガピッドアワープログラミングの場合、特別にインストールできます
世俗の社会的なビットの、それは変更なしで許可します
クラシックファミリーのために作成されたkoristuvatisyaプログラム。 したがって、多くのアプリケーション
クラッドの簡略化の方法によるtsіyknіzіzは、家族のバージョンに向けられるべきです
クラシック。
AVRマイクロ回路を備えたさまざまなタイプのケースを適用します。
図を指さした。 1.1。 このトピックの詳細については、次のURLを参照してください。
補遺1(表A1.2)、および付属書の技術文書。
アマチュア無線のニーズに対して、最も便利なマイクロのレイアウトが重要です。
PDIPの場合の回路ですが、すべてのMKモデルがそのような場合に振動するわけではありません。
すべての家族は2つの変更を加えることができます:サインの文字「L」は言う
拡張については、寿命範囲は2.7〜5.5 Vであり、そのような文字の存在は直径を意味します。
寿命4.5〜5.5V。特定のタイプのマイクロ回路を選択する場合は、
同時に、Lバージョンのコードも少ないため、
їхより大きい場合、最大クロック周波数は8MHzに設定されます。
「より大きい」バージョンの場合、最大周波数は16または20MHzに設定されます。 ほちゃヤク
原則として、10までの周波数で5の電圧でL-マイクロ回路を始動する場合。
12MHz
極端ではなく、賢明に、3Vに近い食事の圧力で働くことができます
それらの周波数値)、高圧スピーカーを設計するときに保護する
スライドスライドvrakhovuvattsyuvimogu。
Chips Tinyは、1〜8 kbの容量のフラッシュROMプログラムを実行でき、
8〜20 visnovkas(crim ATtiny28)の建物では、zdebіshkogoであるため、悪臭は汚いトリックとして認識されます。
よりシンプルで安価な別棟向けに設計されています。 ツェはそれが可能であるという意味ではありません
stіzavzhdiobmezhenі、メガファミリーのnizh。 したがって、たとえば、
ATtiny26は2ドル未満の価格でタイマーを高速PWMに置き換えます
モード(他のモデルではこれは不可能です)、および11チャネルADC
入力サブの調整を伴う差動モードでは動作しません

パートI.AtmelAVRの一般的な原理と機能

およびvbudovanimdzherel基準電圧。これは、古いmo-に一般的です。
参照。 すでに述べたように、チップATtiny2313は削減です。
まあ、最も普遍的で便利な「クラシック」AVRの1つのバージョン
AT90S2313。

米。 1.1。 MKAVRにさまざまなタイプのケースを適用する

Megaファミリには、プログラムボリュームが8〜256kBのフラッシュROMとハウジングが装備されています。
28-100visnovkasで自分自身。 Zagalom MKtsієїは、より多くの「トリック」をグループ化し、より低くします
小さい
機能。
現在のTinyおよびMegaモデルの主な特徴を示す表
最も実行中のギアはで誘導されます 補遺1。 deakіzagalnitehnіも与えられています-
AVRファミリーのいくつかの特徴は次のとおりです。 より多くのレポートを取ることができます。
Webサイトで入手可能な、会社の技術文書からの情報
スキンモデルのAtmel。
Okrim tsikh 3つのファミリー、AVRコアに基づいて、スペシャライゼーションが作成されます
USBインターフェース付きロボット用チップ(AT90USB xxxx)、たとえば-
CANインターフェース(AT90CAN xxx)、RKディスプレイ(ATmega329およびその他)を制御するため、
貿易企業向けのワイヤレスインターフェイスIEEE802.15.4(ZigBee)
deakііnshі。 Tinyシリーズマイクロコントローラの残りの動作時間
メガは上記の小さな州からのバージョンでリリースされ始めました(テクノロジー
1.8Vの電圧供給を備えたpicoPower、例えば、MKシリーズの名前
文字「P」に追加)および自動車用高温
業界(バージョン自動車)。 XMegaファミリーは株で登場しました
ライブ1.8-3.6V、swidcode(最大32 MHzのクロック周波数)を搭載、

セクション1.AtmelAVRマイクロコントローラーの概要

12ビット16チャネルADCおよび2〜4DACチャネル
AVRの悪臭は毎日でした)、UARTチャネルと他の最後のもので
portіv(さらに、オフラインで作業することが可能です。
コア)、暗号化サポートによって導入され、モードが改善されました
picoPowerおよびその他の「ベルとホイッスル」。 Іsnuєもokreme家族32回-
インラインMKAVR32、このような高速アドオンで認められています
ビデオストリームを処理し、その時間に画像を認識する方法。

特徴
実用的なvikoristannyaMKAVR

vikoristanny AVRが実用的な性質の低栄養を非難するとき、無視してください-
そのrubanyaは時々非実用的になるか、またはの失敗によってもたらされる可能性があります
roystva(そしてdeyakyh vipadkah-ヨガのプログラムを不可能にするため)。
たとえば、これらの問題の1つは、代わりにEEPROMを使用できることです。
人生のウィミカンで。 Qiuおよび同様の問題は、
vidpovidnyh部門。 私たちはすぐに寝坊した食事で歌います
MKAVRを含む。

平和について

MK AVRは平均5〜15mAで減速します
visnovki MKを介したrіystv)。 Spozhivaniy strumは、ステージ上だけでなく、
信頼性」モデル、およびクロック周波数のタイプと寿命の電圧。図1.2
休耕地の典型的な図は、供給電圧によって誘導されます
メガファミリーの若いモデルのクロック周波数。
3図。 1.2、zokrema、次に、あなたはあなたの姿勢を大幅に変えることができますか
プログラムが1時間実行されていない場合は、静かな振動のためにクロック周波数を下げます
致命的。 Tseは、エネルギーのレジームに導かれて、プログラムに質問することを可能にします
保護:たとえば、「良好な」クォーツ32 768 Hzをインストールすると、
MKの調整可能な遅延は、200〜300uAに近づく可能性があります。

W

余白のアミツキ

ストラムの値は1〜2 mA以下であり、精神的に快適であると見なすことができます。
バッテリーアタッチメントは、長期間の中断のない操作のために保険がかけられているかのように
ロボット。 タイプAAの要素(タイプアルカリ、トブトパドル)には、
年間2000mAの列
pratsyuє1000年以上(実際にはnavit troch以上)またはponad40deb。 時間
エネルギー容量が15〜18,000mA年に近いロボットバッテリータイプD
運命に近づけてください。これは十分よりも実用的です。
そのような別棟(特に定期的にスイッチがオンになっているもの)に住むことを選択してください
短い時間)同じ要素の水たまりの隣にあるので、悪臭が素晴らしいかもしれません
ємністю、iをリロードするときに流れない、smut、かなり大きな用語である可能性があります
他の種類の要素に対する節約(約7年)。

エール、食べ物を敬意を表して見ると、同じtsimが-単純に
yumプログラム-最も重要なものは最もvipadkivsが最も重要です

パートI.AtmelAVRの一般的な原理と機能

低クロック周波数とインターリーブ。 小さなグラフィック 1.2線形、星
次に、クロック周波数の減少に比例して、クロック周波数の増加
コマンドはありません。 このランクでは、手順、クロック周波数でのvikonannyaのような
4MHzは100µsかかり、クロック周波数32768 Hzで、トリップ時間は12ms以上です。
その別の瞬間に多くのエネルギーが節約されることを元気づけるのは簡単です
vikonannyatsієїの手順は同じになります。

米。 1.2。休閑地の図

メガファミリーの若いモデルのクロック周波数

そのために、不快な焦げた泡立て器を奪うことが可能です。したがって、掘り下げたくないのです。
省エネの薄いモードであり、プログラムにそれらを実装しないでください。
ヤコモガのクロック周波数を低く選択する必要があります(
実際には、1 MHzの値、つまり最大の値を回避するためのサウンド。
削減、すべてにとってより良い、外部の追加の改善を通じて効果を与えない
それらは、すべてのスキームに必然的に存在する槍騎兵と一緒にいます)。 Yakschoあなたの前に-
「ディープ」省エネモードの1つ(div。 スプリット4)、次に時計
全体的な回復の一目での頻度はほとんど重要ではありません。
右側のインシャ-あなたができるようにバザノの仕事のように、生命の電圧を選択してください
たとえ彼らが外の建物を許可したとしても、より少ない。 川の休耕地
図のグラフを見るのは簡単なので、生命の電圧。 1.2、非線形:増加
個人的な電圧ストラムspozhivannyaはすぐに増加します。 したがって、以下に減らします-
寿命電圧
AVRモデル(2.7Vで8MHz以下)はすべて同じです。 例えば、
8MHzのクロック周波数でのライフ3への接続。図を参照してください。 1.2、
3 mA近く、または単一株のペレラフンカでは9mWで眠る。 手順について

セクション1.AtmelAVRマイクロコントローラーの概要

ruトリバリティ100μsパイドエネルギー0.9μJ。 16 MHzの周波数では、同じプロ
手順50µs、ただし消費電力5Vで減速
14 mAに近づけてから、70mWに設定します。 pіdeエネルギーのためのvikonannya手順のために一度に
3.5μJ、多分4倍以上。
既知のすべてのデジタルデバイスの場合、まれなvinnyatkaの場合、次のことができます。
2.7-の電圧のロボット用の最新のアナログを入手してください
3.0(コントローラーモデルでは許可されていないため、下に移動します)、反対側
霜はありません。 この本で最も多くのアプリケーションを持っているものは、
生命の電圧は5で、єはダニナの伝統よりも低いです。 それまでは、気、ヤクを適用します
原則として、uvazіkharchuvannyavіdmerezіで食べてください、despozhivannyaは素晴らしい兆候ではありません
チェニー。 光の表示は、生命の電圧の低下を制限する可能性があります。
トーリー(ライトダイオードの電圧を直接低下させるものを介して)
2 Vのオーダーを設定し、優れたインジケーターの場合、制御のために5Vをオンにするだけでは不十分です
tatochno)、しかしそのような別棟では、コントローラーの快適さはもはや素晴らしいものではありません
役割:Chotiriの7セグメント数字自体は、独自のspozhivatimutストリーム順序に従っています
100mA以上。 2番目の方法は、アナログ回路を表すことです。
生命の電圧は、信号対雑音比の増加の外観から見ることができます。
敬意を表して、AVRvisnovkiは長期的な価値を持つことができます。
ストラム(最大20〜40 mA)
生計からの休息のために(div。 . タブ。 P1.3)。 スライドはまたそれを示します
ADCの入力にアナログ電圧を印加する場合、入力デジタルCMOS-
要素(ポートへの入力)は含まれていません。この値が含まれている場合
エレメントのアクティブ化のしきい値に近い電圧も、より高いレベルに上げることができます。
外側のカスケードを通り抜けるラフノクに哀悼の意を表すタニー
CMOS(特に、マイクロ回路が「スリープ」モードの場合、
div。 スプリット14)。 マイクロ回路のごく一部がpicoPowerテクノロジーから免れた。

回路におけるAVRブロッキングの実際の機能

ほとんどのvisnovkivMKには新進の「高揚」があります
(ライフバスに来るために)抵抗器
そのような抵抗器の存在が必要な場合、明らかな回路の問題
ダブルビューボタンを接続したり、「スイッチドコレクター」を終了したりします。
ただし、重大な振動には、サポート2を備えた外部抵抗が必要です。
5 kOhm(10〜30 kOhmまでの重大な振動の場合)。
「Podtyagyuchy」抵抗器は、出力/リセットだけに取り付けないでください
(何を探すべきかについて 第2章)、ひげがSCK、MOSI、MISOの場合は、そのvipadkuにエール
利用可能なポートは、プログラミングと接続のために選択されます
ISPソフトウェアソケット(div。 スプリット5)、およびovnisのvisnovkasの背後にあります
バン、お尻の悪臭のように。 Yakshchotsіvysnovkiは株に「pіdtyaguvat」ではありません
追加の抵抗器で食べる(技術に含まれていない場合
ドキュメント)、恩赦は含まれていません
システムを再起動し、ハードリセットの場合は、プログラムをメモリに入れます
あなたがプログラムします。 反対側から、プログラミングvisnovkiがサーブしてヤクする場合-

パートI.AtmelAVRの一般的な原理と機能

100個のプライマリポートがアウトになるように構成されており、別棟が停止します
省エネモード、「プルアップ」する抵抗器の存在は、
ストラムが閉じるまで(抵抗膜方式でディスプレイが論理ゼロに設定されている場合)
MCの入り口にあるzherelzhivlennyaからリークストラムを保管します)。 Yakshchoは、再実装の1つです。
省エネプレスの場合は、スキームを注意深く分析する必要があります。
状況をオンにします。場合によっては、q個の抵抗器がストラムを流れます。
また、MKのロボット巻線に適切な抵抗器を取り付けてください。
インターフェースIのようなホットバス

C(またはMK入力に接続されている場合

生命のモニターなど、大きなコレクターを備えた別の別館の出力。
ニャ、説明 第3章)、ダブルボタンに接続した場合(特に
ovnіshnyperevannya、divの自明性のために。 第4章і 5 )。 Opir vbudovanogo
抵抗器
このような振動は、電磁シフトには大きすぎます(「オン-
バーナー」)新しいものに効果的に「座る」。
CMOSロジックのようなAVRマイクロ回路、zavdyakiを高いしきい値に
tivaniїは「地球」バスの高架から効果的に保護されています。 しかし、悪臭
人生のバスのシフトの場合にはより豊かです。 だからrozvyazuvannyaを忘れないでください。
中間なしで設置する必要があるので、私たちのコンデンサ
taniya(セラミック0.1-0.5マイクロファラッド)、およびマージするvipryamlyachiviの品質について
スタビライザー。

ROZDIL

Zagalny別館
記憶の組織化、
taktuvannya、skidannya

MKAVRの内部建物のオーバーヘッド構造を図1に示します。 2.1。 tsіyについて
この図は、AVR(JTAGモジュールのクリム)のすべての主要コンポーネントを示しています。
他のモデルでは、保管施設はに分割することができます
必然的に8ビットプロセッサに圧倒される特性のためのsya
カーネル(GPU、一般処理装置)。 最も重要なコンポーネントについて簡単に説明しましょう
enti、それらの多くは遠くに見られていると報告されています。
記憶から始めましょう。 AVR構造には、3つの異なるタイプのメモリがあります。
プログラムメモリ、エネルギーに依存しない時間データ用のRAM(SRAM)
定数とデータを長期間保存するためのm'yat(EEPROM)。 それらを見てみましょう
オクレモ。

プログラムメモリ

AVRコントローラーのプログラムのフラッシュメモリが
ATtiny11の場合は1KB、ATmega2560の場合は256KB。 名前付きmo-の最初の番号
行のメモリの値のシェア:1、2、4、8、16、32、64、128
256kb。 プログラムメモリ
組織(側面のサイズ、モデルの休耕地、64から
256バイト)。 ページは複数回プログラムできます。 必要なサイクル数
syagaє10,000を再プログラミングします。
プログラマーを見ると、プログラムのメモリは次のようになります。
ビジネスseredkіv-2バイトのスキンをslіv。 プログラムのメモリへのアタッチメント(そしてのみ
tієїメモリ)2バイトの単語-重要な瞬間でさえ、必要です
しっかりと取ってください。 そのような組織は、AVRにチームがあるという事実によって目覚めています
2バイトに等しい場合があります。 Winyatokがチームになる

そしてdeakі-

інші(例えば、

)、yakіは16ビットおよび拡張で動作します-

miアドレス、dozhina tsikhはより高価なバイトをコマンドし、zastosovuyutsyaをより少なく悪臭を放ちます
プログラムメモリが8kbを超えるモデルの場合(レポートdiv。 スプリット5)。 の
他のすべての場合、チームのlichnikはchergovoの勝利者に呼び出されます

パートI.AtmelAVRの一般的な原理と機能

簡単にメモリ容量を必要とする2バイト(1ワード)のコマンド
勝利したチームの数を知って、元気を出してください。 メモリ内の絶対アドレス
グラム
opis MK)も言葉で尊敬されています。

米。 2.1。 AVRマイクロコントローラーの一般的なブロック図

W

余白のアミツキ

cіkavogovipadkuアドレッシングのお尻を動かしてみましょう、schoは
LPMメモリ(およびプログラムメモリからのMKのELPM)から定数を読み取るためのコマンド
128

kb以上)。 Tsyaチームは読書の危機に瀕しています バイト示されたアドレス

2つのシニアRONの数に(いわゆるZレジスタZ、div.Dalіを承認します)。 Proteschobではありません
言葉、小売業者のためのプログラムの記憶を整理するという概念の「純粋さ」を破壊する
彼らは、LPMコマンドが呼び出されたときに、古い
Zアドレスを登録するための15ランク メモリ内で、最年少のランクを選択します
ジュニアバイトまたはシニアバイト

言葉。 ただし、メモリのバイト順序は次のとおりです。
同等の人に適しています。

特定のモデルのプログラムの明示的メモリの残りのアドレス
定数で表されます

ロックするには、AVRのコントローラーは

アドレス$0000からプログラムを修復します。 プログラムの中断はありません
それなら、tsієїアドレスからアプリケーションプログラムを開始できます。 反対のサービスで

qієyuアドレスroztashovuєtsyat.zのためのお茶。 テーブル vector_vの補償、 詳細-
їїについてのヤクミsaymemo スプリット4і 5 。 ここでは、最初のものよりも重要ではありません
このテーブル(同じアドレス$ 0000の場合)は、常に割引ベクトルを配置する必要があります

これは、MKがドロップされたときに完了する手順を指示します(
人生がオンになっているとき)。

P

リミトカ

AVRアセンブラでは、「パスカル」で16個の番号を割り当てることができます
映画C(0x00)のスタイルが有効であり、軸が有効であるように、それらの前に$記号が付いたスタイル
「インテリジェント」メソッド(00h)は機能しません。 人数の意味を報告する
AVRアセンブラdivの計算システム。 スプリット5.

Megaファミリのプログラムコントローラの残りのメモリアドレスでは、
ラグt.zv。 zavantazhuvach-関心のある特別なプログラム
記憶の主な義務からの適用されたプログラムの利点。 誰の心が良い
ドロップベクトルとリセットのベクトルのすべてのテーブル(つまり、実際には
プログラムの開始元の開始アドレス)変更できます
特別な構成センター(div。 スプリット5).

データメモリ(RAM、SRAM)

プログラムのメモリの観点から、データのメモリのアドレス空間がアドレス指定されます
バイトごとに(そしてchiは単語ごとではありません)。 アドレス指定は線形であり、細分化されていません
他のシステムで通常行われているように、サイド、セグメント、またはバンクで。
若いMKファミリーTiny(Tiny1を含む バツ i Tiny28)データのメモリ内(タコスのように)
vittya、混乱しないでください、レジスタファイル(RON)とvvіyのレジスタだけと混ざり合ってください-
so-vivodu(RVV)。 他のモデルでは、内蔵SRAMを使用することが可能です
Tinyファミリーの代表者(ATtiny2313など)の場合は最大4〜8kbで128バイト
古いメガモデルの場合。
スタティックデータメモリ(SRAM)のアドレス空間は、インテリジェントに細分化されています。
図に示すいくつかの領域。 2.2。 部分的に暗い塗りつぶしで表示されます、vіd-
shoはvbudovanoySRAMに急いで、roztashovuのアドレスを順番に-
エールアドレス空間レジスタ(最初の32バイトはRONを借用し、別の64バイトはRONを借用します-
RVV)。 折りたたみ構造の古いMegaモデル(ATmega128など)の場合
紹介と紹介の64のレジスタが不十分に見えるかもしれないので、追加のためにそれらに
追加のRVVは、大きなアドレス空間(60ドルから最大)と見なされます。
$ FFの値をバイトアドレス指定することはほとんど不可能ですが、そのようなレジスタは一度に
多分合計160)。

W

余白のアミツキ

MK AVRのアーキテクチャでは、「はじめに-visnovka」の理解は2つの意味で勝ち取られます。

まず、є「I/Oポートを台無しにする」 第3章.
別の言い方をすれば、AVR構造の「出入りのレジストリ」(RVV)はレジスタと呼ばれます。
添加剤コンポーネントへの安全なアクセス、zvnіshnіh

少量のRAM(入出力のポートまでを含む)用のGPUへのnіyu。 pidを取る-
MCAVRの構造を個人の音響構成に拡張しました
コンピュータ、中央処理装置への日付によるすべての呼び出しへのアクセス解除
コンポーネント、メモリクリーム、ポートI/Oを介したzdijsnyuєtsya。

パートI.AtmelAVRの一般的な原理と機能

一部のメガモデル(ATmega8515、ATmega162、ATmega128、ATmega2560)
それは)外部メモリを接続する可能性がに転送されます
64キロバイト
さまざまなもの(SRAM、フラッシュ、またはEEPROM)とpa-
パラレルインターフェース。
RONとRVVのアドレスが奪われないことは重要です
データRAMでのmandrivka(ひねりを加えて接続
古いメガモデルの古い記憶、
値で囲まれた最大アドレス
$ FFFF):特定のMKモデルのように
512バイトのSRAM、およびレジスタスペースが借用されます
最初の96バイト(最大アドレス$ 60)、次にSRAMアドレス
$0060から$025Fまでのアドレス空間を借りる
(96番目から607番目のミドルまでのトブト)。 Kіnets
データのvbudovanaメモリは定数で表されます

米。 2.2。アドレス空間

スタティックデータメモリ(SRAM)

マイクロコントローラーAVR

ただし、なぞなぞでの読み取り/書き込み操作は、アクセス権のあるすべてのアドレスで機能します
鈍いスペース、そしてロボットSRAMでは、以下を尊重する必要があります:副
同じレジスターのなぞなぞにメモを簡単に「使う」ことができます。 例えば、
レジスタの値をキャプチャするコマンド

レジスターで

)同様に強い

アドレスゼロのSRAMのエントリ(

)。 RONsovのメモリ内のアドレス-

同じ数で落ちる。 ヨガのRVVの非中間エントリーの同じ時間
次にレジスタの番号にメモリ内のアドレス$20を追加します。つまり、資格のレジスタ

より多くのモデルの場合、アドレスのテーブルRVVに基づいてroztashovuetsyaです
$ 3F、メモリアドレス$5F。 RONおよびRVV直接アドレス指定ページをインストールします-
m'yati unhandled:このようなレコードは、特徴的に、1つを置き換えるために常に2つの手段を取ります。
他のチームは交換をバイパスすることができますが、他のチームに行く
deakimRVVの操作について。 Aleyakschoєプログラムの準備ができました、pratsyuyu-
■SRAMの場合、プロセッサモデルを古いモデルに置き換える場合は、次のものが必要になります。
彼らが若いSRAMアドレスを持っていることを尊重することはねじれる可能性があります
補足RVV。

第2章

不揮発性データメモリ(EEPROM)

MK AVR(ATtiny11から取得したクリムゾン)のすべてのモデルを構築できます
寿命がオンになったときに定数とデータを保存するためのEEPROM。
他のモデルの場合、ボリュームは64バイト(ATtiny1x)から4 kb(古い)まで変化します
メガモデル)。 EEPROMの終わりは定数で示されます

(tseは意味します-

最新のAVRモデルにのみ導入されました。
tsієї定数は、たまたま自分で指定したものです)。 再送信サイクル数
EEPROMコーディングは10万に達する可能性があります。
EEPROMが振動可能なフラッシュであると考えられていると推測する
gramuvannyaバイトごと(原則として、navitバイトごとですが、このメソッドは使用できません
koristuvach)。 ただし、フラッシュメモリなどのEEPROMファミリの古いモデルの場合
プログラムはサードパーティの組織である可能性がありますが、パーティは小規模です。
4バイトのスキン。 実際には、EEPROMを順番にプログラミングするときのように
チャネル(SPIプログラミングインターフェイスを介して)、したがって、記録するとき
プログラムからEEPROMを読み取ります。この機能は重要ではなく、アクセスは重要です。
バイトごとに。
EEPROMからの読み取りは、1マシンサイクルを伸ばすことによって実行されます(true、on
実際には、chotiriサイクルで実行されますが、プログラマーはcymspecialに従う必要があります。
社会的には必要ありません)。 そして、EEPROMのレコードの軸は大幅に改善されています。
その前は、それは間違いなく指定されたコードではありません。1バイトを書き込むためのサイクルは
2〜4ミリ秒以上かかります。 記録プロセスはによって規制されています RC-
周波数が不安定な発電機(低電圧時)
ochіkuєtsya、schoの録音はより大きくなります)。 そのような時間のために、そのような並外れた
MKvstigaєvikonatikіlka千コマンドと同じ頻度で、そのプログラムに
正確さのために記録を記録するための手順:例えば、ステッチする必要があります、
そのため、現時点では、レコーディングは書き換えを「くさび」しませんでした(divに関するレポート)。 チーフ
vi 4
і 9 ).
ロボットzEEPROMによるヘッドフォールド
現時点では、生命の電圧が不十分な状態で保持されています
wimicanny。 電圧が変化したとき、寿命は最大であることに注意してください
有効なしきい値(安定した作業のしきい値を下回っていますが、再実行するには不十分です
オフ)MKの電圧のコリバンニアを介して、オフになり始めます
コマンドなど、EEPROMへの書き込み手順を設定できます。 Yakscho
つまり、典型的なMK AVRコマンドはマイクロ秒の10分の1でカウントされ、
明らかです
必要な時間、電圧をゼロにします
凝縮液容量の推奨値を備えたスタビライザータイプLM7805
EEPROMの入口と出口のrіvは必然的に次のように圧縮されます
谷の半分で平和に。
定数はEEPROMに書き込まれるため、この問題のせいではありません。
MKをプログラミングするとき、および毎日プログラムで録画するための手順(それらについて
EEPROM、divのデータを含むファイルを作成する方法。 配布された「ディレクティブと機能
tsії」第5章
)。 このような状況では、データの安全性は非常に高くなります。

パートI.AtmelAVRの一般的な原理と機能

主な注意事項とタイミングで、schoはEEPROMへの書き込みを許可しました-手順-
radvuhstupіnchasta(div。 スプリット9)。 他のすべての方法で(そして、明らかに、
絶対に大きい-EEPROMでは、ほとんどの場合、節約できます
viknennіzhivlennya)が受け入れられるときのnovkiと現在の構成
特別訪問。 それらの最も基本的で普遍的なものは
駅のMCを減らす現在の生活モニターの目新しさ
生命の圧力の変化が限界値を下回っています。 Tієїよくメスティサーブ
vbudovaniya電圧降下検出器(ブラウンアウト検出、BOD)
すべてのTinyおよびMegaモデルで実用的ですが、技術文書は含まれていません
同時に、覇権のために、ヨガの複製と人生のサウンドモニターを与えてください。
BODスキームとMKdivについてのレポート。 どの部門のダリ、しかしについて
mu EEPROM以降、їїvikoristannydivが付属しています。 スプリット9.

クロッキングの方法

MKをクロッキングする標準的な方法-水晶振動子の接続
visnovkasに適しています(図2.3、 a)。 典型的なコンデンサC1とC2の容量
時にはそれは15–22 pFになる罪を犯します(1つで33–47pFに減らすことができます
timchasovymプロモーション)。 ほとんどのTinyおよびMegaモデルには
特別な設定ビットがあります

あなたが規制することを可能にするもの

平和。 2番目のビットを1に挿入する場合(非プログラミングキャンプ)
ジェネレーターのコリバンの範囲が変化し、それが可能であると思われるタンパク質
周波数範囲
推奨されません。 低周波水晶振動子も使用できます
(たとえば、「年間」32768 Hz)、コンデンサC1およびC2を使用できます
ワティ、インストールするときはそれに

値0がウェアハウスに追加されます

36pFの容量を持つMK内部コンデンサ。
水晶振動子はセラミックに置き換えることができます。 これらの行の作者は
非標準周波数でMKを実行し、同じ方法でバイコリストがクォーツを交換します
ミニチュアインダクタンスの切り替え
デンセータ91pF、周波数は10 MHzに近い)、これによりトロッホが汚染される可能性があります
ダイアグラムの寸法を変更します。
明らかに、MKのクロッキングは外部ジェネレーターから実行できます(図2.3、 b)。 おそ-
MCを古いコンポーネントと同期する必要がある場合に便利です。
それ以外の場合は、正確なクロッキングの頻度を使用して、vіdpovidnを選択します-
ジェネレーター(たとえば、エプソンのSG-8002シリーズ)。
Navpaki、精度が必要ない場合は、通話を接続できます RC-ランス
(図2.3、 )。 この回路では、静電容量C1は少なくとも22 pFであり、抵抗R1は
3.3-100kOhmの範囲から選択されます。 式に割り当てられる頻度
F= 2/3 RC。 ビームを書き留めるために、C1を同時に設置することはできません。 config-の場合は0
ミドルグラウンド

接続されたcim内部コンデンサ36pF。

ナレシュティ、あなたは関連するコンポーネントを見て仲良くすることができます
RC-発生器

第2章

周波数値(1、2、4、8 MHz)。 多くのモデルで、能力が移転されました
発電機の周波数を再構築する(レポート部門または技術的説明
特定のモデル)。 Qiumozhlivist最もdotsilnovikoristovuvatで
8ピンケースで利用可能な若いTinyモデル-これらはvisnovkiです、
共振器または外部発電機の接続に使用されます
zaviyatiіnshihtsіley、zvichaynporti入出力として。

米。 2.3。勝利でMKAVRを計時する方法: a-水晶振動子;

b-サウンドジェネレータ; - RC-槍騎兵

クラシックのファミリー RC-ジェネレーターはなく、特別な構成があります

tsikh MKのtsynykhseredkіvは大幅に少なく、ワイルドな気分ではできません

敬意を表します。 他の家族はそうではありません。 ZamovchuvannyamMKファミリー

TinyとMegaは、発電機を内蔵したロボットキャンプに設置されています
周波数1MHz(

0001)、他のモードでは、

構成の中間を整理する

(Div。表2.1)。 誰と

そりvrakhovuvati

0000

水晶振動子の最も頻繁に埋め込まれる値1111)は、

コールジェネレータからMKクロッキングモードを駆動するために、それを開始することはできません

呼び出し頻度を指定せずにプログラミングを開始します。 推奨インストールについて

kah構成センターとそのプログラミング部門の機能について。

スプリット5.

表2.1。構成センターの設定 CKSEL

休耕タイプのクロッキングモード

CKSEL3 ... 0

Dzhereloクロッキング

周波数

音の周波数

目を覚ます RC-発生器

目を覚ます RC-発生器

目を覚ます RC-発生器

目を覚ます RC-発生器

Zovnishnya RC-ランス

パートI.AtmelAVRの一般的な原理と機能

表2.1(完了)

CKSEL3 ... 0

Dzhereloクロッキング

周波数

Zovnishnya RC-ランス

0.9 ... 3.0 MHz

Zovnishnya RC-ランス

3.0 ... 8.0 MHz

Zovnishnya RC-ランス

8.0 ... 12 MHz

低周波共振器

水晶振動子

0.4 ... 0.9 MHz

水晶振動子

0.9 ... 3.0 MHz

水晶振動子

3.0 ... 8.0 MHz

1xxx(CKPOT = 0)

水晶振動子

スキダーニャ

スキッドデータ(RESET)は、MKロボットの穂軸モードの導入と呼ばれます。 誰と
すべてのRVVはロックのためにキャンプに設置されます-原則として、価格はゼロです
すべてのランク、小さな責任のために(そしてRON軸は振動を受け入れることができます
どんな意味でも、必要に応じて、歌で始まります
変更の値は、プログラム(primus)の穂軸にインストールする必要があります。
ドロップオフ後のプログラムは、住所から始まります(ロック用)
アドレス$0000)。
生活がオンになっているとき、割引は常に請求されます。 Krim tsgogo、dzherelamiがダンプされました
次のものを使用することもできます:ハードウェア割引、低レベルの供給
入力RESETの電圧
ここでのアクティブなrіvenは低く、mi dotrimuvatimemosyaルール); 終了-
インストールされたウォッチドッグタイマー間隔へのnya; スキームリファレンス
BOD。 chotiriohの若い戦いの意味

信号による

それらについてのlizuvat、その存在下でdzherelは過去に実行されました
1ビット0の新機能-有効な場合の割引、ビット1-ハードウェア割引、ビット2-オフ
BODダイアグラム、ビット3-ウォータイマータイプ)。 実際には、作者の許可を得て、
stanamtsgogoregisternadіynovіdіznyayutsyavіdіnshih余計な
タイマースキッド
timchasovo)。 Protetsyaіnformatsіyaは、たとえば、分析では角質になる可能性があります
lyzіは、ロボットおよび産業用の別棟(div。 スプリット12).
Tinyファミリーの若いMK(crim ATtiny28)には
th"出力の抵抗/RESET、想定される作業の抵抗へ次の警告
サイズが2〜5kOhmの外部抵抗器のすばらしい接続
人生のプレッシャー。 著者はまた、インストールすることをお勧めします
すべてのAVRモデルに適した抵抗器であるため、抵抗器にはさらに多くの抵抗が必要になる場合があります
ショイ宗派(100-500 kOhm)
未実行のskidannyaにty。 したがって(技術的な説明でそのような推奨事項がある場合

第2章

(修正および回避されない)コンデンサの設置を開始しないでください0.1-0.5 uF in
「地面」への出力/RESET-tsezglazhuє避けられないbryazkitnaprugii
trohiは出力/RESETpor_vnyanoの電圧の増加の前部を締めます
zіzbіlshennyamzhivlennya:しきい値がspratsovuvannya回路に来る場合
skidannya、MK全体の寿命の電圧はすでに設定されています。
8ピンパッケージ(ATtiny11–ATtiny15)で利用可能なTinyモデルの場合、
Chiはzovn_shnєskidannya、vysnovok/RESETを必要としません
th入力ポート。 ニュアンスが1つだけ:構成時
ヤクの音ではなく、vysnovokzvіdkritimコレクターのようなvyhіdvіnpratsyuєに連絡してください-
論理要素(ポートdivの構成について)。 スプリット3).
生活しているときに割引を整理するための最良の方法は、次のように
すでに前に述べたように、生命のサウンドモニターの設置。 たとえば、
MC34064マイクロ回路は、基準しきい値を備えた5ボルトのフードプロセッサーで人気があります
4.6Vおよび標準値は300µA以上の電流に近い
アナログ(たとえば、12μAの遅延のあるMAX803L)。 トリボルタ生活のために
接続回路MAX803R(2.6 V)または適切なバージョンDS1816
強い電圧で。 リストされているすべてのマイクロサーキットはトリビビッドです(ライブ、「地球-」
la "、割引の管理によって監督された)そしてオープンコレクターと一緒に去ることができます、
「プルアップ」抵抗器の取り付けを検討してください。 典型的な時間spratsovuє-
電圧が低下したマイクロ回路の場合-マイクロ秒、これは安全です
EEPROMからのデータの保存。 電圧上昇時、悪臭は安全になります
素晴らしいtimchasovzatrimka(約4分の1秒)。
汚れのないzdіysnyuvatiskidannyaMK。
マイクロ秒のオーダーの動作時間を確保するために、BODスキームが導入されました
zatrimkoyは、電圧の更新に続いてワーキングキャンプに変わります。
横滑りの罠のように、これらのインスタレーションによって分割されます(komіrki

クロック周波数4MHz)、可能な最大値を入力してください〜68 ms
汚れを迂回するには不十分であるように見えます。
自律dzherelのライブ電圧。 BODロボットモードを選択するには、
3つの構成センターの収穫

だから:

111(標準設定)-BOD回路が無効です。

101-spratsovvannya2.7の気孔率のBODを含みます。

100-4.0アートのしきい値を満たします。

作業の信頼性の観点から、との差が小さいことは重要です。
生命の圧力と生命のモニターのspratsovuvannyaのしきい値
vbudovanoїスキームBOD、関係なく)、それはより良いです-小さなヘアカットを食べて、
モニターに鈍感で、タンパク質はすべての人に認識されます
素晴らしい再生の運動性の証明のkshtaltへの入場。 1-
小売価格の前に、生計の間に以下が保険にかけられることになっています、私はバッテリーのタイプを追加します:例えば、
一部の「フィンガータイプ」の水たまりバッテリーとライフモニターの場合、rozrahun-
4.7 Vでのタン、後の要素の過剰電圧

MKの開発はアセンブラーから始める必要があると何度も言いました。 サイトでコース全体を割り当てた人(確かに、これは最後のコースではありませんが、段階的に適切な外観にランク付けします)。 ですから、大丈夫です。結果は初日にはなりません。そうすれば、コントローラーに何が表示されるかを理解することができます。 あなたは練習する方法を知っています、そして他の人の写真をコピーしてそれが練習をやめた理由を理解しようとすることによってではありません。 さらに、Cがビーズコードを作成するのは簡単です。これは、不適当な瞬間に熊手で使用できます。

残念ながら、誰もが間違った結果を望んでいます。 それに対して、私は反対側からの手紙に屈しました-Cに取り組むことは正しいですが、世界のヨガを示すことも正しいです。 優れた埋め込みプログラマーは、許可なく足を踏み入れさせないように、常に野郎のために自分自身を保持します。 それでは、Cコードから始めましょう。コンパイラーを作成した人たちと、すべてが正しく機能する方法を見てみましょう:)

一方、Cの長所は、コードの移植性です。 Yakshcho、zvіsno、すべてを正しく書いてください。 Podіlyayuchiの作業アルゴリズムとプロジェクトの一部でのїхїхіхніの実現。 アルゴリズムを別のMKに転送するには、リリース前にすべてが書き込まれるインターフェイスボールのみを書き直すだけで十分であり、作業コード全体を削除する必要があります。 私は、明らかに、読んでいます。 この日は一目見ただけで理解しやすくなります(たとえば、私は何が起こっているのか気になりません-私はしたい、私はasmしたいです:))、しかし、私は知っています、私はすべてを正しく書きます。 私もこれらの瞬間を尊重します。

yakіyのpіddoslіdnazalozkaは、将来、私の納税のすべてのアプリケーションの左側に配置されます。

AVR用の最初のCプログラム

コンパイラとインストール環境を選択します
AVRの場合、異なるコンパイラはありません。
Nasampered tse IAR AVR C-AVRに最適なコンパイラとして明確に認識されている可能性があります。 コントローラ自体は、AtmelおよびIARの仕様と緊密に連携しています。 エールはすべての代金を払わなければなりません。 そして、このコンパイラは高価な商用ソフトウェアであるだけでなく、非常に画期的なものであるため、コンパイルを新しい方向に進める必要があります。 私は本当に彼との友情を育てませんでした、プロジェクトはリンク段階で素晴らしい恩赦で腐敗しました(pіznіshez'yasuvav、sho buv曲がった亀裂)。

他のアイデア WinAVRGCC-最適化するハードコンパイラ。 新しいオープンソース、クロスプラットフォーム、ザガロム、口ひげの人生の喜び。 より多くのワインをAVRStudioに統合できるため、その場でカスタマイズを実行でき、より便利です。 ザガロム私はヨガを選びました。

また、є CodeVision AVR C-最も人気のあるコンパイラ。 そのシンプルさのためにリンクで人気になります。 あなたはすでにhvilinのスプラットを通して新しい方法でプログラムを操作することができます-あなたがスパイする必要があるスタートコードのマスターであり、標準の初期化をスタンプします。 正直なところ、私は何か新しいことを疑っているようです-まるでcimコンパイラによって書かれたプログラムを逆アセンブルする機会があったかのように、コードではなくお粥が出てきたようです。 Zhakhlivaは、体と操作の多くの本質的でないrukhіvであり、コードと完全なswidkodіyuに対してかなり強いobsyagになりました。 おそらく、無料のファームウェアを書くように、DNAには許しがありました。 さらに、ペニーが必要です。 IARのようにそれほど豊かではありませんが、賢明です。 また、デモモードでは、2kb以下のコードを記述できます。
亀裂は巨大ですが、IARの意味で、盗んだ場合は100万になります:)

もっとє イメージクラフトAVRCі MicroCマイクロエレクトロニクスでは、それらのどれも、それらのどれもが身をよじる機会がありませんでしたが、軸 SWGすでに賞賛 マイクロパスカル、movlyav、そのライブラリをプログラミングするためのより多くのzruchnezruchneミドルウェア。 MicroCの音量は大きくなることはないと思いますが、有料になります。

すでに言ったように、私は選びました WinAVR 3つの理由から:無料で、AVR Studioに統合可能であり、完成したコードをあらゆる種類の生活のために突破するだけで作成されました。

したがって、独自のWinAVRインストールとAVRStudioをダウンロードしてください。 スタジオを始めましょう。そうすれば、獣はWinAVRを取得し、プラグインを見てスタジオに行きます。 WinAVRを短いパスに配置することをさりげなくお勧めします。したがって、C:\ WinAVRでは、パスに関する問題を自分で購入できます。

プロジェクトの作成
Otzhe、スタジオが設定されました、C_ねじ込み、それを試してプログラムする時が来ました。 シンプルで最もシンプルなものから始めましょう。 スタジオを実行し、AVR GCCコンパイラなどの新しいプロジェクトを選択して、プロジェクトの名前を入力します。

作業フィールドは、空の*.cファイルで開かれます。

これで、スタジオのブックマークにパスを表示するための設定をセットアップできなくなりました。 住所の悪は誰のために:
メニューツール-オプション-一般-FileTabsを選択し、リストから[ファイル名のみ]を選択します。 そうしないと、練習することができなくなります。タブにはファイルへの新しいパスが表示され、画面には2つまたは3つ以下のタブが表示されます。

プロジェクトの完了
手始めに、makeファイルを作成する古典的な方法は、すべての誤謬を説明することです。 たぶん、そうだね。 こんにちは、povnistyuіntegrovanihIDEnachebtoのウイルス uVisionまた AVRスタジオ tseypіdhіdєは深く離れています。 彼自身のためのそのrobitimuに、スタジオの助けを借りて口ひげ。

ギアボタンにチェックマークを付けます。


プロジェクトをカスタマイズする目的、またはむしろ、makeファイルの自動生成をカスタマイズする目的。 最初の側面では、MCが機能する方法の周波数を入力するだけで済みます。 ヒューズバトルに参加する価値があるので、周波数が8000000Hzであることが重要です。
最適化の順序を尊重するのと同じ方法です。 同時に、拡張のためのコスト-Ostse最適化があります。 十分である限り、このパラメーターを試してみることができます。 -zagaliでの最適化のO0コスト。

次のステップは、パスのラッシングです。 プロジェクトのディレクトリをそこに追加する前に、サードパーティのライブラリをそこに追加します。 リストには「。」という方法があります。

世代のファイルを作成します。プロジェクトのデフォルトのフォルダーを調べて、そこに何があるかを確認してください。


今のところ、すべてが今のところです。 OKの文字をエンボス加工して、出口に行きます。

問題文
きれいなスレートは想像力に富んでいて、狡猾なアイデアのように見えるので、ダイオードで平凡な瞬間を挿入することはありません。 さあ、角でくちばしを取り、コンピューターと接続します。何が怖いのかわかりません。

このように練習します:
COMポート(コード0x31)に到達するとダイオードが起動し、ゼロに到達すると(コード0x30)ダイオードが消灯します。 さらに、再配置ですべてが台無しになり、背景は瞬く間になります。 ある意味で。

スキームの選択
USB-USARTコンバータモジュールをUSARTマイクロコントローラプラグに接続する必要があります。 このために、2本のワイヤーが付いたジャンパーを取り、それをピンに投げます。 したがって、RxコントローラーはTxコンバーターに接続され、TxコンバーターはRxコントローラーに接続されます。

Weide、結果軸は次のとおりです。


ビザを解決するためのつながりが見えません、ドロップが見えません、それは標準です

コードを書く

映画Sіの説明に特にこだわらないようにします。 この情報源の場合、資料の量は膨大であり、K&R形式の古典的な「MovaProgramming C」から始まり、さまざまなマニュアルで終わります。

そのような方法の1つが私の隠し場所で私に知られていて、私はそれを自分で使って舌を撃ちました。 そこにはすべてが不足していて、右側のものが理解されています。 私は段階的に構成し、それを自分のサイトにドラッグします。

しかし、まだすべての章が移管されているわけではありませんが、価格は長くはないと思います。

これらの微妙な点を明確にしたレポートの副官である最初のコースのそれに対して、私がより簡単に説明することはありそうにありません、私は単にマニュアルの反対側に直接リンクを与えます。

ライブラリを追加します。
私たちの前に、名前付きのライブラリと見出しの必要性を追加します。 AdzheSіtseは世界共通の言語であり、AVRで何ができるかを説明する必要があるので、出力行に次のように記述します。

1 #含む

#含む

このファイルはフォルダにあります WinAVR新しい場所では、コントローラーの使用済みレジスターとポートの説明。 さらに、コンパイラーによって送信される特定のコントローラーにバインドされて、すべてが狡猾です。 作るパラメータファイル MCUプロジェクトの変更を実証するために、すべてのポートのアドレスの説明がヘッダーファイルに添付され、コントローラーに登録されます。 アクシスヤク! これがないと、SREGまたはUDR cstaltでシンボリックレジスタ名を綴ることができず、「0xC1」cstaltのスキンアドレスを覚えることができませんが、頭を壊す必要があります。

チーム自体 #含む<имя файла> プロジェクトをテキストファイル(たとえば、関数の説明やその他のコードを含むファイル)に追加できます。 そして、ディレクティブがファイルを認識し、プロジェクトへのパスを指定できるようにします(WinAVRディレクトリはデフォルトの背後にすでに登録されています)。

主な機能。
私のCのプログラムはすべて関数で構成されています。 悪臭は投資であり、任意の順序でさまざまな方法で1つずつ呼び出すことができます。 皮膚機能には3つのobov'yaskovіパラメータがあります:

  • たとえば、変わる意味 sin(x)値をxの正弦に変換します。 数学のように、短いです。
  • 送信されるパラメータ、tseyx。
  • 関数の本体。

転送およびローテーションされたすべての値は同じタイプであり、データが休んでいる可能性があります。

Cプログラムが復讐機能の罪を犯しているかどうか 主要メインプログラムへのエントリポイントとして、それ以外の場合はC:)ではありません。 百万のファイルから誰かの心の中にメインが存在するために、あなたはプログラムの主要な部分が何であるかを理解することができます、星は最初から始まります。 軸iセット:

1 2 3 4 5 int main(void)(return 0;)

int main(void)(return 0;)

それだけです。最初の最も単純なプログラムが作成されました。心配しないでください。何も傷つけないでください。開始するだけです。

私たちが奪われたものを見つけましょう。
int main関数と同じデータ型が変わります。

明らかに、マイクロコントローラー 主要原則として、あなたは何も回すことはできません。 void main(void)、PC上のGCCファイルですが、プログラムは完了後にオペレーティングシステムの値をローテーションできます。 トムGCC void main(void)樹皮警告'om。

許しません、pratsyuvati bude、しかし私は警告が好きではありません。

空所このようにして、関数に渡すデータのタイプ 主要だからあなたは何も受け入れることができません 空所- 空。 スタブ、zastosovuєtsya、転送またはターンするために何も必要ない場合。

軸は軸です { } 計算された腕はプログラムブロックであり、この場合は関数の本体です 主要、コードがあります。

戻る-回転された値は、メイン関数が完了すると表示されるように、シャードはintであり、これは数値であり、メインの数値を回転させます。 しかし、意味がありません。 メインからマイクロコントローラーで、どこにでも行くことができます。 私はゼロになります。 ボンネフィグ。 そして、コンパイラーは賢く聞こえ、コードはこの方法で生成されません。
ひねりたいなら、 主要 MKに移動できます。たとえば、ブートローダーセクションとvikonatiїїに移動できますが、遷移アドレスを修正するには、低レベルのフラッシュファームウェアも必要です。 あなたの下で、あなたが成長しているかのように、あなた自身が手探りして理解するでしょう。 新しい? 軸はすでにより強力であり、99.999%のケースはそれを必要としません:)

彼らはぶつかり、立ち去った。 Dodamoの変更、それは私たちにとって特に必要ではなく、vartoではなく変更を導入する必要はありませんが、それを処理しましょう。 関数の本体の中央に変更が追加された場合、悪臭はローカルであり、この関数でのみ検出されます。 機能が出て変更が削除され、RAMメモリが最も重要なニーズに対応する場合。 。

1 2 3 4 5 6 int main(void)(unsigned char i; return 0;)

int main(void)(unsigned char i; return 0;)

署名なし署名されていないことを意味します。 右側のdoubleファイルの1つには、最上位ビットがあり、符号が入力されています。これは、数値+ 127 / -128が1バイト(char)に含まれていることを意味しますが、それを削除するための符号として、それからそれは0から255と同じ場所にあります。サインを鳴らす必要はありません。 だから何 署名なし.
-さらにim'yazminnoy。 それ以上ではありません。

今、あなたはそれを台無しにするpro_nіtsіalіzuvatする必要があります UART。 もちろん、ライブラリを利用して接続し、UartInit(9600)に電話することもできます。 しかし、それでもあなたは何が起こったのかわかりません。

このようなロビモ:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int main(void)(unsigned char i; #define XTAL 8000000L #define baudrate 9600L #define bauddivider(XTAL /(16 * baudrate)-1)#define HI(x)((x)>> 8)#define LO(x)((x)&0xFF)UBRRL = LO(bauddivider); UBRRH = HI(bauddivider); UCSRA = 0; UCSRB = 1<< RXEN| 1 << TXEN| 1 << RXCIE| 0 << TXCIE; UCSRC = 1 << URSEL| 1 << UCSZ0| 1 << UCSZ1; }

int main(void)(unsigned char i; #define XTAL 8000000L #define baudrate 9600L #define bauddivider(XTAL /(16 * baudrate)-1)#define HI(x)((x)>> 8)#define LO( x)((x)&0xFF)UBRRL = LO(bauddivider); UBRRH = HI(bauddivider); UCSRA = 0; UCSRB = 1<

怖い? 実際のところ、実際のコードの残りの行は5行未満です。 そのすべて #定義 ceMacromovプリプロセッサ。 アセンブラにある同じbadillaかもしれませんが、構文は少し異なります。

日常の操作で必要な係数を計算しやすくするために悪臭を放ちます。 最初の行で、私たちはそのzamіstと言います XTALあなたは大胆に8000000を表すことができます、そして L-長く移動してタイプを指定します-プロセッサのクロック周波数。 Tezh同じ ボーレート-UARTを介したデータ送信の頻度。

bauddividerすでに折りたたまれている場合、新しいものの代理人は、事前に2つの式の料金を再度提示されます。
よくそして LOі こんにちはこの結果では、最も若いバイトと最も古いバイトを取得します。 1バイトに収まらない場合があります。 で こんにちは zsuv iksa(マクロへの入力パラメーター)を右端まで試してみてください。結果は上位バイトより多くなります。 そしてで LO 00FFという数字を少しずつ追加する必要があります。その結果、最も若いバイトが残されます。

だから、押しつぶされるすべてのものは #定義大胆に引用することができ、数字を使用して電卓で取得し、すぐにUBBRL=...の行に入力することができます。 およびUBBRH=…..

それは可能です、それは可能です。 エール! Robiti tsyogo 絶対に不可能!

Pratsyuvatimeなどですが、プログラムのあなたの中であなたはそう呼ばれています マジックナンバー-意味がうっかり取られて、星がうっかり生まれてしまったので、数年後にそのようなプロジェクトを見たら、その意味を理解することが非常に重要になります。 それとすぐに、速度を変更したい、またはクォーツの周波数を覚えていて、すべてを新たにやり直す必要があるので、コード内のいくつかの数字をすべて自分で覚えてください。 一言で言えば、ビードロックコーダーとして知られたくない場合は、読みやすく、スマートで、変更しやすいようにコーディングしてください。

すべてが簡単です:
ある種の情報の助けを借りて、すべてのtsі"UBRRLіZ"tseレジストリ構成UART送信。 そしてすぐに私たちは彼らに必要な価値を与え、必要なセキュリティと必要な体制を調整しました。

マインドを記録する 1<来ることを意味します:1を取り、その場でїїを置きます RXENバイト。 RXEN ce4番目のビットレジスタ UCSRBだから何 1< 2つの番号00010000を設定します。 TXEN-3番目のビット全体、および 1< 00001000を与えます。単一の「|」 少しずつ ABO、また00010000 | 00001000 \ u003d 00011000.同じ順序で、他の必要な構成が配置され、メインコンパートメントに追加されます。 選択した番号の結果がUCSRBに記録されます。 レポートは、USARTディストリビューションのMKのデータに書き込まれます。 技術的な詳細もわかりません。

完了しました。何が起こったかに驚かされる時が来ました。 を押してコンパイルし、エミュレーションを実行します(Ctrl + F7)。

Nalagodzhennya
すべての進捗が経過し、スタジオが変更され、メイン機能の入り口に新しい矢印が表示されました。 現在、プロセッサを使用しており、シミュレーションは一時停止中です。

背中の右側、右側には、UBRRL = LO(bauddivider)が一列に並んでいました。 私たちが定義しているものでさえ、コードではなく、単に前方計算であり、3つの軸シミュレーターであり、鈍いものです。 そして今、私はワインを見ました、私は指示を読みました、そして私はあなたが木の近くにいるのを見ます I/Oビュー、USARTセクションでUBBRLバイトを見ると、値がすでにそこにあることがわかります。 0x33。

もう1つかぎ針編みを育てます。 別のレジスタに変更する方法をご覧ください。 だから、私があなたに言ったように、すべての指定されたビートが表示されるものを獣的に尊重し、さらに、それらはバイト全体で同時に表示されます。 右側のダリリターンは正しくありません-プログラムは終了しました。

ロズチン
次に、シミュレーションをゼロにリセットします。 そこを押す リセット(Shift + F5)。 リストの分解を確認してください。コントローラーに実際に何が入っているかを賢く理解できます。 表示->逆アセンブラ。 ІYYAAAAではありません! アセンブラ! JAH !!! 必須。 間違っている場合は、コードをダミングダウンしたり、フォーラムにラマーのフィードを配置したりするのではなく、もう一度telbukhで、zatikに驚嘆してください。 そこにはひどいものは何もありません。

背面には、シリーズのバディラがあります。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +00000000:940C002AJMPジャンプ0x0000002A+00000002:940C0034JMPジャンプ0x00000034+00000004:940C0034JMPジャンプ0x00000034+00000006:940C0034JMPジャンプ0x00000034+00000008:940C0034 0x00000034JMPジャンプ+0000000A:940C00340x00000034JMPジャンプ+0000000C 0000000E:940C0034JMPジャンプ0x00000034+00000010:940C0034JMPジャンプ0x00000034+00000012:940C0034JMPジャンプ0x00000034+00000014:940C0034 0x00000034JMPジャンプ+00000016:940C0034JMPジャンプ0x00000034+00000018:940C0034 0x00000034JMPジャンプ+0000001a: :940C0034 0x00000034JMPジャンプ+0000001E:940C0034JMPジャンプ+000000200x00000034:940C0034JMPジャンプ+000000220x00000034:940C0034JMPジャンプ+000000240x00000034:940C0034JMPジャンプ+000000260x00000034:940C0034JMPジャンプ+000000280x00000034:940C0034

00000000:940C002AJMPジャンプ0x0000002A+00000002:940C0034JMPジャンプ0x00000034+00000004:940C0034JMPジャンプ0x00000034+00000006:940C0034 0x00000034JMPジャンプ+00000008:940C0034 0x00000034JMPジャンプ+0000000A:940C00340x00000034JMPジャンプ+00000000C :940C0034JMPジャンプ+000000100x00000034:940C0034JMPジャンプ+000000120x00000034:940C0034JMPジャンプ+000000140x00000034:940C0034JMPジャンプ+000000160x00000034:940C0034JMPジャンプ+000000180x00000034:940C0034 0x00000034JMPジャンプ+0000001a:940C0034 940C0034 0x00000034JMPジャンプ+0000001E:940C0034JMPジャンプ+000000200x00000034:0x00000034 940C0034JMPジャンプ+00000022:0x00000034 940C0034JMPジャンプ+00000024:0x00000034 940C0034JMPジャンプ+00000026:0x00000034 940C0034JMPジャンプ+00000028:940C0034

Tseテーブルvector_vpereprivan。 それに目を向けてみましょう、ただ驚いて、それがそこにあることを覚えておいてください。 最初の列は、コマンドが配置されるフラッシュの途中のアドレス、別のコマンドコード、3番目のコマンドニーモニック、同じアセンブラ命令、コマンドの3番目のオペランドです。 その自動コメント。
ですから、軸は、驚いたら、ここを越えてください。 また、JMPコマンドコードは1バイトで、新しいアドレスではジャンプが逆方向に書き込まれます。最も若いアドレスの後ろの最も若いバイトは、遷移940Cのコマンドコードです。

0000002B:BE1F OUT 0x3F、R1 Out to I / O location

アドレス0x3Fにゼロを書き込むI/Oビューの列を見ると、アドレス0x3FをSREGレジスタ(コントローラの右方向レジスタ)のアドレスに変更します。 トブト。 SREGをリセットして、ゼロマインドでプログラムを実行します。

1 2 3 4 + 0000002C:E5CF LDIR28.0x5F即時ロード+0000002D:E0D4LDIR29.0x04即時ロード

0000002C:E5CF LDIR28,0x5F即時ロード+0000002D:E0D4 LDIR29,0x04即時ロード+0000002E:BFDE OUT 0x3E、R29 I/Oロケーション+00000002

Tsezavantazhennyavkazіvnikスタック。 I / Oレジスタを利用することはできず、中間レジスタを介してのみ利用できます。 このため、LDIは中間であり、I/OでOUTを呼び出します。 スタックについては、レポートも作成します。 とりあえず、これはメモリの非常に動的な領域であることを知って、RAMのようにハングアップし、アドレスにアドレスを保存して、将来変更してください。 同時に軸がそれらの星に向けられたので、スタックを開始することができます。

00000032:940C0041JMP0x00000041ジャンプ

saaaaamyのストリークにはプログラムがあり、ループをしっかりと中断するためのフェンスがあります。

1 2 +00000041:94F8 CLIグローバル割り込み無効+00000042:CFFFRJMPPC-0x0000相対ジャンプ

00000041:94F8 CLIグローバル割り込み無効+00000042:CFFFRJMPPC-0x0000相対ジャンプ

Tse inadok neperedbachenihの家具、たとえば、メイン機能の終了。 このようなループから、コントローラーはハードウェアの割引、またはさらに番犬(番犬)からの割引のいずれかに導入できます。 さて、そうでなければ、私が上で言ったように、16進編集者の部屋を修正して、私たちの魂が永遠にいるところに行きなさい。 また、JMPとRJMPの2種類のトランジション(アドレスの後の最初の直接トランジション)を使用する人にも注意を払ってください。 chotiri baytiを借りれば、メモリのすべての領域に直接移行できます。 別のタイプの遷移はRJMPです-表示されます。 このコマンドは2バイトを借用してから、現在の位置(アドレス)に1024kroki前後に移動します。 І番目のパラメータには、フローポイントの変位が示されます。 Vikoristovuetsya、ほとんどの場合、tk。 フラッシュからの借り入れは2、3か月少なく、それ以上のお金が必要になることはめったにありません。

1 +00000034:940C0000JMP0x00000000ジャンプ

00000034:940C0000JMP0x00000000ジャンプ

そして、穂軸コードのtsestribok。 彼の種類のRezavantazhennya。 ここですべてのベクトルがもたらすものを修正できます。 tsgogo vysnovokから-一度に再構築を許可し(フェンスのデフォルトの背後にある悪臭)、再構築を実行できるが、それを取得する方法がない場合、プログラムはスローされます-プログラムはにスローされます穂軸自体。

主な機能。 すべてが同様にnavitであり、説明されていない可能性があります。 同じ計算された数を入力するためにレジスターを見てください。 操縦するコンパイラプリプロセッサ! 同一の「マジック」ナンバー!

1 2 3 4 5 6 7 8 9 10 11 12 <

00000036:E383 LDI R24,0x33即時ロード+00000037:B989 OUT 0x09、R24 I / Oロケーションにジャンプ15:UBRRH = HI(bauddivider); +00000038:BC10 OUT 0x20、R1 I / Oロケーションに移動16:UCSRA = 0; +00000039:B81B OUT 0x0B、R1 I / Oロケーションにジャンプ17:UCSRB = 1<

そして、ここでの軸はできません:

1 2 3 + 0000003E:E080 LDIR24,0x00即時ロード+0000003F:E090 LDIR25,0x00即時ロード+00000040:9508RETサブルーチンリターン

0000003E:E080 LDIR24,0x00即時ロード+0000003F:E090 LDIR25,0x00即時ロード+00000040:9508RETサブルーチンリターン

待って、なぜコンパイラはそのようなバディラを追加するのですか? しかし、Return 0のように、関数をint main(void)axis iとして割り当てた場合、それらははるかに多くのバイトを怒らせました。私は何についても賢くありません:)何があっても、メイン関数は回転しません。なんでも。 ザガロム、ロビヤクホッホ:)

重要? まず第一に、いいえ。 逆アセンブラモードのコードのコードをクリックし、コード命令のプロセッサコードのようにポーズを取ります。コード命令が実行されると、レジスタから入力されます。 pidbagが循環するコマンドに従って移動する方法。

数日後にフォローアップします。

オフトップ:
Alexei78 Firefox用のzvarganivプラグイン、私のサイトとフォーラムでのナビゲーションが簡単になります。
ダウンロードについて話す

LPTポートのプログラマーの概略図を小さな写真に示します。 タイヤ成形機のように、マイクロサーキット74AC 244または74HC244(K1564AP5)、74LS244(K555AP5)または74ALS244(K1533AP5)を使用します。

Svitlodiod VD1は、マイクロコントローラーの記録モードを示します。

ライトダイオードVD2-読み取り、

svitlodiodVD3-ライブスキームの存在。

電圧、必要な食事の計画、私はISPのバラ、トブトを取ります。 プログラムされた別棟のタイプ。 この回路は、STK200 / 300プログラマーの再加工された回路(作業の効率化のために光を追加)であり、STK200/300回路で使用されるPC上のプログラマーのプログラムによって要約されます。 cimプログラマーと連携するには、プログラムをハックします CVAVR

図に示すように、プログラマーは別のボードにインストールして、LPTソケットの場合に配置できます。




プログラマーがいるロボットの場合、ケーブルを手動でLPTポートに切り替えることができます。これは、自分で簡単に作成でき(たとえば、プリンター用のCentronixケーブルを使用)、地球の導体を台無しにしないでください(18〜25足が上がった)または購入します。 プログラマーとプログラムされたマイクロ回路の間のケーブルは、20〜30cmのオーバーシュートの罪を犯していません。


現代のラジオアマチュアリズムはマイクロコントローラーなしでは検出できませんが、それは明らかです。 過去10年間で、さまざまな業界のマイクロコントローラーがさまざまな活動分野で広く拡張されてきました。 多くの場合、それらは最も適切な別棟や構造物で使用できます。 私たちは、必要なプロセスのコンピューター化と自動化の証明書を持っています。 真実は、プログラミングの基本を知らなければ、現代の競争力のある別棟を作成することは事実上不可能になっているということです。

この記事を読んでいると、マイクロコントローラーがどのように機能するかを理解することができ、すべての食品に適しています。

4.文学の読み方は?

気供給で試してみましょう。

1.ロボット用にどのマイクロコントローラーを選択しますか?

8ビットマイクロコントローラーはラジオアメーターで非常に人気があります PICマイクロチップテクノロジーと AVR企業Atmel、16ビット MSP430 TI企業、および32ビットマイクロコントローラー、アーキテクチャ .

とにかく、業界では、まず第一に、大きな風に乗って座ってください ルネサスエレクトロニクス別の フリースケール、3日目 サムスンそれでは行きましょう マイクロチップі TI、他のすべてを与えた。
人気は、価格と入手可能性、および技術情報の存在とソフトウェアサポートの変動性によって果たされる役割によって決定されます。

Mi vivememo 8ビットAVRマイクロコントローラー、ファミリー ATMEGA8および16シリーズ。 選択したことで、私は今やよりアクセスしやすくなり、大量の主要な資料であるアマチュア研究の非人格性を明らかにしています。 さまざまな複雑なコンポーネントの現れとこのファミリーの機能。

2.選択したマイクロコントローラーをプログラミングするためのミドルウェアは何ですか?

AVRの場合、開発環境(IDE、統合開発環境)のさまざまな統合が作成されています。
IDE-ソフトウェアセキュリティ(PP)の開発のためにプログラマーによってハッキングされたソフトウェアツールのシステム全体が、次のものを含む倉庫に送られます。
テキストエディタ、
コンパイラおよび/またはインタプリタ、
選択の自動化を行い、
オーナー。

それらの最大のもの AVRStudio、ATmelStudio、WINAVR、CodeVision、IAR Embedded Workbench.
プログラムを書くために、私たちは費用をかけずにスピードアップします IDEATmelStudioバージョン6もっと。
登録後、公式サイトからAtmel Studioを入手できます(登録は完全に無料で、甲状腺腫はありません!)

ATmelStudioを使用すると、アセンブラーとCIの両方でプロジェクトを作成してプログラムを作成できます。

必ず助けを求めてください:効果的なプログラムを書くためにプログラミングをどのように選ぶべきですか?

ただ言いましょう:少なくとも2つの言語アセンブラとCІを書く必要があります。 ファームウェア、コンパクトなサブプログラム、マクロ、およびさまざまなアドオンドライバーを作成する必要がある場合は、アセンブラーが必要です。 ただし、CІを知らなくても、折りたたみアルゴリズムを使用して大規模なプロジェクトを作成する必要がある場合、特にエンリッチメントのプロセスで1時間以上費やすことができます。また、別のプラットフォーム(PIC18など)に転送する必要がある場合もあります。またはSTM、それは不可分の問題になる可能性があります。
見てみましょう、ハードウェアプラットフォームが登場しました Arduino、yakimi学習moviCІ++で動作します
このため、プログラムはアセンブリ言語とCIの両方で作成できます。

はんだごてやプロトタイピングボードを使用せずに、作業の結果を直接取得するには、プログラムをインストールするだけです。 プロテウス.

3.コントローラーをフラッシュする方法と、コントローラーを手動で操作するために必要なアクセサリーやアクセサリーを追加する方法は?

Vikoristovuemodatagorsk。 クリミア半島、5ボルトの出力電圧から生命のブロックであるブレッドボードを持参する必要があります。 小さなリップルのある電源ユニットのように、5ボルトのvikoristovuvat、zastosuvshiツェナーダイオードを使用できます。
おそらく、その年の間に、納税の折り畳みのためのIgorzaproponuєmoプロジェクト。

4.文学の読み方は?

そして軸、例えば:
アセンブラでの実用的なAVRプログラミング。 Revich、2011年
1000その1つのマイクロコントローラ回路Vip。 1-2。 Ryumik、2010-2011
MK AVRBook1-2への10の実用的な追加。 Kravchenko、2008-2009
MKAVRのアタッチメントの小売業者向けのセルフリーダー。 ベロフ、2008年
MKAVRファミリーTinyおよびAtmega。 Єfstіfєєv、2008年
CodeVisionAVR。 pochatkіvtsіvのPosіbnik。 レベデフ、2008年
アタッチメント、サイリスタ、リレーを備えたマイクロプロセッサ制御。 ベロフ、2008年
アナログインターフェースMK。 スチュワード、ボール、2007年
MKAVRの拡張機能を作成します。 ベロフ、2007年
アマチュア無線の練習におけるMKAVR。 ATTINY2313の新しい分析。 ベロフ、2007年
MKからのダニミのMerezhevyとintermerezhevy交換。 行く、2007
MKAVR。 pochatkivtsivのためのワークショップ。 Khartiv、2007年
スキーム、アルゴリズム、プログラム。 バラニフ、2006年
マイクロコントローラーAVR。 エントリーコース。 モートン、2006年
Vimiryuvannya、AVRの助けのための規制のcheruvannya。 トランパート、2006年
AVRおよびPICMK用のCを使用したプログラミング。 Shpak、2006年
MKに別棟を建設。 ベロフ、2005年
MK-シンプル、ボリューム1〜3。 Frunze、2002-2003
MovaプログラミングCі、第2版。 カーニガン、リッチー、2009年
私のS.ProkopenkoによるATMELマイクロコントローラーのプログラミング、2012年

5.インターネット上のどこで質問し、具体的な推奨事項を選択できますか?

あなたは私たちまたは他のフォーラムで食べ物を尋ねることができます、desochiіnaksheはマイクロコントローラーのものに出くわしました。 フォーラムのGolovneは栄養を正しく処方しているので、あなたは明らかにotrimuvatvіdpovіdіをすることができます。 抽象的な栄養は長続きしません、そして何よりも、あなたは批判を取り除くでしょう、あるいはあなたの栄養は尊敬を奪われるでしょう!

それでは、私たちのリーダーであるATMEGA8マイクロコントローラーを詳しく見てみましょう。

低性能の8ビット高性能AVRマイクロコントローラー
プログレッシブRISCアーキテクチャ
130の生産性の高いコマンド、1クロックサイクルでより多くのコマンドがカウントされます
外国の承認の登録簿に32人の8ビット従業員
完全に静的なロボット
最大16MIPS(16 MHzのクロック周波数で)のパフォーマンスに近づく
Vbudovaniya2サイクル乗数

エネルギーに依存しないプログラムメモリ
8KBインシステムセルフプログラマブルフラッシュ
1000回の消去/書き込みサイクルで安全
独立したブロッキングビットから消えるコードの補足セクター
1時間の読み取り/書き込みモード(Read-While-Write)が保護されます
512バイトのEEPROM
100,000回の消去/書き込みサイクルで安全
1KBの内蔵SRAM
ソフトウェアセキュリティ機能の保護を保護するプログラムされたブロッキング

ブドバナ周辺
固定フロントタイマー付きの2つの8ビットタイマー/ライター、1つはリコイルモード付き
フロントタイマーとフリーザーモードを備えた1つの16ビットタイマー/タイマー
okremiジェネレーターを使用したLіchilnikリアルタイム
3つのPWMチャネル
8チャンネルアナログ-デジタルコンバーター(TQFPおよびMLFの場合)
10ビット精度の6チャンネル
6チャンネルアナログ-デジタルコンバーター(PDIPの場合)
10ビット精度の4チャンネル
8ビット精度の2チャンネル
バイト方向2線式シリアルインターフェース
最新のUSARTのプログラミング
最後のSPIインターフェース(有線/有線)
ウェイクアップジェネレーター付きのプログラム可能なウォッチドッグタイマー
アナログコンパレータをウェイクアップ

特殊なマイクロコントローラ機能
電源のカットオフとプログラミングの短時間電圧降下検出器
キャリブレーションRCジェネレーター
内部および外部のdzherelapererivani
低ノイズの5つのモード:アイドル、省電力、パワーダウン、スタンバイ、ADCノイズリダクション

Visnovki I/Oとボディ
23の事前にプログラムされた入口/出口ライン
28ウェイPDIPパッケージ、32ウェイTQFPパッケージ、32ウェイMLFパッケージ

動作電圧
2.7〜5.5V(ATmega8L)
4.5〜5.5V(ATmega8)

動作周波数
0〜8 MHz(ATmega8L)
0〜16 MHz(ATmega8)

vіdminnostіATMEGA16vіd8
16KBインシステムセルフプログラマブルフラッシュ

JTAGインターフェイス(IEEE 1149.1からの要約)
JTAG標準に準拠した周辺機器をスキャンする機能
新進税のサポートを拡大
JTAGインターフェイスを介したプログラミング:フラッシュ、EEPROMメモリ、ジャンパー、ブロッキング

ChotiriチャネルPWM/PWM

8チャンネル10ビットA/Dコンバーター
8つの不均衡なチャネル
7つの差動チャネル(TQFPの場合のみ)
プログラミングパワーが1、10、または200倍の2つの差動チャネル(TQFPパッケージのみ)

6つの低スリープモード:アイドル、省電力、パワーダウン、スタンバイ、拡張スタンバイ、ADCノイズリダクション

32のプログラミングラインの入口/出口

40幅のPDIPパッケージと44幅のTQFPパッケージ

AtmelStudio

開始したらすぐに、atmel.comの公式側からAtmelStudioプログラムを入手してインストールする必要があります
AtmelStudioソフトウェアをインストールすると、プロジェクトを開くことができます。
計画-プログラムを作成し、コンパイル後、マイクロコントローラーに関するなぞなぞにどのように書き込み、調整し、フラッシュしますか。

プロジェクトを作成するには、プログラムを起動する必要があります。このようなスプラッシュ画面が表示されます。

プロジェクトの作成のその側

新しいプロジェクトを作成するには、をクリックする必要があります "新たなプロジェクト..."
この場合、新しいプログラムを選択することができます。プロジェクトに名前を付け、プロジェクトに名前を付け、プロジェクトのファイルを含むパッケージに名前を付け、崇高な選択のためのディレクトリを作成することができます。他のクロスプロジェクトで。 アセンブラでプログラム可能にプロジェクトを作成するには、次を選択する必要があります- アセンブラ、その後、プロジェクトの名前を覚えています わかった。

vіknoに表示するには

選択可能 「megaAVR、8ビット」マイクロコントローラーが必要なことはわかっているので、 ATmega8。スプラッシュ画面の右側には、マイクロコントローラーで使用できるアタッチメントのリストがあり、そのうちの1つを接続できます。 選択可能 わかった。

プログラムの編集と調整ができるように、テキストの編集者側が表示されます。 ページがきれいである限り、作成の時間と日付が示され、プロジェクトファイルにim'yakoristuvachという名前を付けます。 Іsnuyutdodatkovіvіknavіknapristroїvvvodnya-vivodu、vіknozvіtіvcompilatsіїプログラム。 今mi


アセンブラでプログラムできます。
同様に、私のCІをプログラミングするためのプロジェクトが作成されています。

©2022androidas.ru-Androidのすべて