マクロ

CRSマイコン講座 @ ウィキ内検索 / 「マクロ」で検索した結果

検索 :
  • マクロ
    13.マクロ 今まで#include ... なんて記述をいろいろ書いてきました. こういった#で始まる記述がマクロです. 通常の文法とは異なりこれはコンパイルの前処理段階での命令で,ソースコードの整形に使われます. #include ファイル名 これは ファイル名 の内容をそのままここに置くという命令です. これまで毎回先頭に#include stdio.h と書いていました. これはstdio.hというファイルがあり,そこに書かれているprintf関数やscanf関数を利用するためのものだったのです. これによりstdio.hの内容がそのままここに置かれ,関数が定義され使用可能になります. 他にも様々なファイルがあり,適宜includeして使用可能にします. #define 文字列1 文字列2 これはソースコード中に含まれる文字列1を文字列2に置き換え...
  • 第5回
    ... 12.配列 13.マクロ いずれ追加予定 ポインタ? 構造体? そしてC++へ?
  • 第9回
    ...は割り込み関連の各種マクロが定義されており,割り込みを使用するためにはこれが必要です. main文内にsei()という関数も見られます.これは全割り込みを許可するマクロです. 一方で全割り込みを禁止するcli()マクロも用意されています. 具体的に割り込みをするためには 1.#include avr/interrupt.h を記述します.これにより割り込み関連のマクロが使用可能になります. 2.必要に応じてレジスタの設定をします. 3.sei()を記述し割り込みを許可します. といった手順を踏むことになります. 下のプログラムはタイマー割り込みを応用してPWM機能のないピンPC5でPWM動作をしつつ, PC0に接続されたスイッチの状態を読みそれに応じてPB0に接続されたLEDを光らせるというものです. #include avr/io.h ...
  • メニュー
    ... 12.配列 13.マクロ 第6回 シリアルモジュール シリアルクラスのプレゼント 第7回 DDRレジスタ・PORTレジスタ・PINレジスタ プルアップ・プルダウン チャタリング 第8回 タイマーカウンタ PWM レジスタについて サーボ動作 第9回 タイマー割り込み比較一致 オーバーフロー 第10回 AD変換右(左)シフトとは 半固定抵抗をもちいて 第11回 シリアル通信レジスタの説明 通信について マイコン間通信でLチカ 第12回 モータードライバ オープンコレクタとCOMS ここを編集
  • お役立ち関数・クラス(AD変換)
    対象マイコン:Atmega88シリーズ 引数:なし 返り値:なし 説明:AD変換を右寄せで初期化する関数 //ADC設定の初期化void adc_init(void){ADMUX = 0b01000000; //AVCCを基準、右寄せ、ADC0(PC0)に接続//変換器を有効、//16分周(1MHz/16=62.5kHz)AD変換には13クロックかかるため62.5kHz/13=約5kHzADCSRA = 0b10000100;_delay_ms(5); //分周器の動作安定待ち}  対象マイコン:Atmega88シリーズ 第1引数:AD変換器に接続するピン番号(0~5) 返り値:AD変換の結果 説明:AD変換を実行する関数 //AD変換を行う関数uint16_t adc(int pin)&...
  • お役立ち関数・クラス(シリアル通信)
    1. はじめに  シリアル通信を行うクラスです。対象のマイコンはAtmega88シリーズですが、「Class_Serial.cpp」の中身を少し変えるだけで、他のマイコンにも使えます。 2. 使う準備  次の2つのファイルをAtmelStudioに読み込ませてください。ファイルを読みこませる方法は、AtmelStudioの使い方(応用編)の別ファイル関数の使い方という所に載っています。  ・Class_Serial.hpp  ・Class_Serial.cpp 3. プログラミングについて  「Class_Serial.hpp」をインクルードしてください。シリアル通信を始める前にser0.begin()を呼び出します。引数はUBRRnレジスタに設定する値です。データシートで確認してください。serial0.println()で引数の文字列を改行文字をつけて送信します。...
  • AVRシミュレータの使い方
    マイコンの開発をしている際に,「今この変数はどんな値になっているのか」等を知りたくなる時が多々あるかと思います.AtmelStudioでは,PC上でAVRの動作をシミュレートし,プログラムを一行ずつ進めた際にどのような動作をするかを確認する機能があります.このシミュレータを使った確認作業をデバッグといいます. 試しに次のようなプログラムを作成して,デバッグを行ってみましょう. #include avr/io.h  int main(void){DDRD=0b00000001;PORTD=0b00000000; for(char i=0;i 255;i++){PORTD=i;}}  シミュレータの設定 初めに,AVRシミュレータをプログラムの実行環境として設定します.Solutio...
  • 第8回
    タイマー 主にタイマー機能を用いたPWM動作について説明します。 前回触れたポートの入出力からマイコンのピンを0V、あるいは5Vに出来るようになりました。 PWMを使えばピンの出力状態を見かけ上0~5Vの間に設定することが出来ます。 つまりLEDの明るさやモーターの速度を変えることが可能になります。 タイマーについて PWMの前に、タイマーのことを少々。 言葉からも想像できますが、時間を計る機能がマイコンに内蔵されています。 どのように時間を計るか まずマイコンにはクロックが決められています。 これは既にこれまでのプログラムの中に登場しています。 #define F_CPU 1000000 1秒間に1000000回、1μ秒単位で時間を計れると考えてください。 このクロックを数えて時間を計ります。1カウントで1μ秒ですね。 ただクロックを0,1...と...
  • 第11回
    シリアル通信 通信について 複数の機器間で情報のやり取りする時の通信として、パラレル通信とシリアル通信があります。 パラレル通信 パラレル通信では、通信する機器同士の出力と入力を繋げます。そうすると、0か1の情報をやり取りすることが出来ます。ただ、この通信では1bitの情報しかやり取りできません。なので、それ以上の情報量のものをやり取りするとなると、それに合わせて信号線を増やす必要があります。例えば、8bitの情報をやり取りする時は、8本の信号線が必要になります。さらに、この場合だと単一方向にしか通信できないので、双方向の通信を行う場合には受信用の信号線と送信用の信号線を用意する必要があり、双方向で8bitの情報をやり取りするなら16本の信号線が必要になります。 シリアル通信 シリアル通信で使われる信号線は、やり取りする情報量によらず、送受信それぞれ1本ずつだけでオッ...
  • 第10回
    AD変換 アナログ値からデジタル値に変換します。 以前ポートのところで入力ピンを扱いましたが、PINでは0と1しか判別出来ません。 センサでいうとスイッチのON/OFFしか判別できないということです。 しかし世の中の情報は多くがアナログです。 AD変換により扱えるセンサの幅が広がります。 可変抵抗 例えばアナログの情報としてボリュームが挙げられます。 音量や照度を調節するつまみを想像してください。 実際は可変抵抗の利用です。 可変抵抗の回路記号はこんな感じです。(http //www.asahi-net.or.jp/~qq3y-nkdo/ocl/feet/KairoA3/KA_005.html) bの記号がまさに可変抵抗の内部を表しています。 両端間の抵抗値は一定で真ん中の端子と端との間が可変となります。 ただ抵抗値を変えたいだけなら真ん中と端の2...
  • プラグイン/ニュース
    ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //www1.atwiki.jp/guide/pages/266.html#id_542badf7 たとえば、#news(ゲーム)と入力すると以下のように表示されます。 大阪商業大学で「世界の民俗ゲーム」展 文化の多様性と伝播の様子を紹介 - 東大阪経済新聞 『ザナック(コンシューマー版)』がレトロゲーム配信サービス“プロジェクトEGG”にて配信開始。戦闘機ZANACを操縦し、暴走したシステムと戦おう! - ファミ通.com ゲーム・ネットばかりの子どもにイライラしない、「ちょうどよい」約束の作り方とは?専門家に聞きました(ベネッセ 教育情報サイト) -...
  • @wiki全体から「マクロ」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索