AVRマイコンのCコンパイラについて

このQ&Aのポイント
  • AVRマイコンのCコンパイラについての質問です。
  • AVRマイコンの開発環境において、ライブラリ関数のリファレンスが見つからない状況です。
  • AVR達人の方に情報を教えていただきたいです。
回答を見る
  • ベストアンサー

AVRマイコンのCコンパイラについて

PCでは、Cやアセンブラの経験もそこそこある本職のプログラマですが、マイコンは初心者です。 AVRマイコンに興味がわいて、早速使ってみたのですが、 開発環境は、AtmelStudio6と、AVRStudio4の両方を試しています。 どちらの開発環境も、ライブラリ関数のリファレンスがどこにあるのか わからない状況です。 サンプルをみると、_delay_ms()などの関数とincludeファイルがいくつかあるので、 ライブラリ関数がないわけではなさそうです。 ネットで検索しても、ライブラリ関数のリファレンスに相当するものをみつけられません。 AVR達人の方、どこに情報があるのか教えて頂けると幸いです。 情報は日本語が望ましいですが、英語でも構いません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

達人ではありませんが、avr libcのマニュアルならこれです。 http://nongnu.org/avr-libc/user-manual/ _delay_ms()はutil/delay.hにあるのでこちらです。 http://nongnu.org/avr-libc/user-manual/group__util__delay.html

TheStonePonyNJ
質問者

お礼

参考になりました。 ありがとうございます。 日本語の情報はやはりないのでしょうか? 英語だと速読できないので。。。

関連するQ&A

  • AVRマイコン

    AVRマイコンについて質問があります. AVRはスタートアップルーチンや ベクターテーブル等は 開発環境でコンパイルする際に自動的に 付加されると聞いたのですが 起動時にどのタイミングで スタートアップルーチンやベクターテーブルが 読まれ,どのように使われているのか 調べたのですが分かりません. どなたかご存知の方は教えていただけないでしょうか?

  • AVRマイコンの開発環境をインストールするには

    AVRマイコンの開発環境をインストールしたいのですがどのようにすればいいのでしようか 手順を教えてください。

  • AVR Studio 6のCコンパイラについて

    今まではAtmelのマイコンでのコーディングの時にはAVR Studio 4をインストールして、C言語でのプログラミングのためにwinavrというCコンパイラをダウンロードしてインストールして使用していました。 最近のAtmelの開発環境はVersionが上がっていてAVR Studio 6というのが使用できるようになっていたので、インストールして使用してみたのですが、この開発環境をインストールすると既にC言語のコーディングとかコンパイラができるようになっていました。 この標準搭載のCコンパイラはwinavrのものなのでしょうか? それともAtmel自信のCコンパイラなのでしょうか? ご存じでしたらご教授よろしくお願い致します。

  • AVRプログラム 関数から戻ってこない

    AtmelStudio6 で、ATmega64A向けにプログラム行なっているのですが、 すごく、単純なところで困っています。 ICEは、AVR JTAGICE です。 main() のみで処理をさせると普通に動くのですが、関数に飛ばすと飛んだ先の 関数から戻ってこなくなるのです。 ツールかレジスタの設定が不十分なのかもしれません。 -- 問題のプログラム -- #include <avr/io.h> #include <avr/iom64a.h> #include <avr/interrupt.h> #include <util/delay.h> void test(void){ DDRA = 0xC0;//<ここは、実行される }//デバッガで見ると、ここで止まっている。 int main(void) { cli();//この関数はライブラリにあるので戻ってくる test();//この関数から帰ってこない // DDRA = 0xC0; //test();の内容をここに書くと、正常に処理して通過する。 PORTB = 0xFF; //B出力レジスタ DDRB = 0xF7; //B方向レジスタ PORTC = 0xFF; DDRC = 0xDB; while(1) { //TODO:: Please write your application code LEDを点滅させるプログラム <略> } } ------------------------------------------------------- 何方か心当たりのある方は居ないでしょうか?

  • AVR Studio 4?5?Atml 6?

    AVRISPmkII を使用したいと思っています。 開発環境はWin7 64bitです。 インストールしようと思い調べていたら 【マイコン編 1回】 零からの電子工作 第36回:後編 開発環境構築 http://www.nicovideo.jp/watch/sm14483389 【AVR】電子工作のススメ 第一回「マイコンのススメ」 http://www.nicovideo.jp/watch/sm7775003 この動画が作成された時点では5が出ていたみたいですが 最新版の危うさと情報の少なさから4を使用していました。 なので私も4を使おうと思ったのですが公式サイトではもう公開していないのか 見つかりませんでした。 こんなサイトがあるみたいですが何だか怪しげで・・・相談にのってください http://www.mikrocontroller.net/articles/Atmel_Studio なので5を使おうと思って AVR Studio 5のインストールと留意点 http://jsdiy.web.fc2.com/avr_as5inst/ ここを参考にしましたがやはり5は公開されていないようで Atml 6しか見つかりませんでした。 ただ、6は情報が全然見つからなくトラブルが無いか不安です。 どうするのが最善だと思われるでしょうか? ご見識がございましたらご意見いただけますようお願いいたします。

  • AVRマイコン UART動作異常

    AVRマイコンのATmega168にてPCとRS-232Cにてシリアル通信(UART)を行うと最初のスタートビット'L'が正常に出ず、スタートビット'L'の後すぐに'H'に戻ってその後データビットを送っています。2回目以降のスタートビットは正常に'L'が指定したボーレートの時間幅で出ており、問題はありません。最初のスタートビットが正常に出ない原因がわかりませんので教えてください。 システムクロック:1MHz(内部発振器のみ) ボーレート:4800bps データビット数:8bit ストップビット数:1bit パリティビット数:なし -------------------------------------------- #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #define sbi(addr,bit) addr |= (1<<bit) #define cbi(addr,bit) addr &= ~(1<<bit) void port_init(void){ PORTB = 0xFE; DDRB = 0xFF; asm("NOP"); } void uart_init(void){ sbi(DDRD,1); cbi(DDRD,0); asm("NOP"); } void uart_putchar(unsigned char c){ loop_until_bit_is_set(UCSR0A,UDRE0); // asm("NOP"); UDR0 = c; } void _delay_1s(void){ int i; for(i=0;i<100;i++){ _delay_ms(10); } } int main(void) { port_init(); uart_init(); UCSR0B = _BV(TXEN0); UCSR0C = 0b00000110; UBRR0H = (uint8_t)0; UBRR0L = (uint8_t)12; while(1) { uart_putchar(0b01011010); _delay_1s(); } return 0; } -----------------------------------------------

  • AVRーUSBについて

    AVRマイコンを使って以下の機能を実装しようとおもっています。 ・AVRからデータをノートパソコンに送信し、受信したデータをパソコンの画面に表示する ・ノートパソコンからAVRにデータを送信する ノートパソコンのためUSBポートしかないのでUSB通信にしようと思っています。あとFT232などのUSBシリアル変換機も持ってないのでUSBの通信の仕方で通信しようと思っています。 そこで質問なのですがAVRでUSB通信を実現できるらしいAVR-USBライブラリを使って上記の機能を実装しようと思っているのですが配布サイトからダウンロードしたもののどのソースを使ってどの関数を使うのかソースを読んで見たもののわかりません。とうかアドバイスや参考になるサイトや資料があったら教えてください. あと、もうひとつ質問なのですがUSBとパソコンの通信の仕方はどのように行っているのでしょうか?信号線が二本だからI2Cなのかとおもっているのですがそうなのでしょうか? どうかよろしくおねがいします。

  • 8080用のクロスコンパイラは、ないでしょうか。

    8080用のクロスコンパイラは、ないでしょうか。 TK-80シミュレーターにて、プログラム開発をしたいのですが、さすがにアセンブラはきついので、Cコンパイラを探しています。 フリーのソフトで、MS-WindowsかLinuxで動作するクロスコンパイラはないでしょうか。 (8080アセンブラを出力するCコンパイラ) 以前探したときは、(確か)C言語をZ80にコンパイルして、それをさらに8080用アセンブラに変換するのを見つけましたが、うまく動きませんでした。 何か情報をもらえるとありがたいです。 よろしくお願いします。

  • macでAVRマイコン(ATtiny13)を開発

    macでAVRマイコン(ATtiny13)を開発しようとしています。 当方初心者です。 環境は mac osx 10.9.5 Xcode 6.1(認証済) macports 2.3.4 ライターAVR ISP mkII Arduino(0023) Mavericsでは、USB接続するにはavrdudeが必要との事で、 sudo port install git-core libusb avrdude としてmacportsにavrdudeをインストールしようとしますが、 Error: git-core has been replaced by git; please install that instead. Error: org.macports.configure for port git-core returned: obsolete port となり、エラーになります。検索しても見当たらず、全く対処法が分かりません。 現状、ArduinoでUSBポートが出てこず、AVR ISP mkIIを接続できない状態です (ATtiny13は接続してあり、電源も供給していますので、AVR ISP mkIIの左下のLEDは 緑に点灯しています。上部のLEDはmac起動時に一瞬点灯しますが、すぐに消えます)。 お詳しい方、ぜひご教授お願い致します。

    • 締切済み
    • Mac
  • Atmel Studioでdelay関数でエラー

    現在Atmel Studio6.2でATmega88のプログラミングをやっています。 LEDを1秒間隔で点滅させるプログラムをやってみてます。 http://sourceforge.jp/projects/cc1101driver/scm/svn/tree/2510/branches/CC1101_source_ATmega88_AVRS6/AVRGCC1/ このプログラムでdelay関数として #include <util/delay.h> このヘッダーファイルをインクルードして int main() { hw_setup(); while(1) { B_CTL_HIGH; _delay_ms(1000); B_CTL_LOW; _delay_ms(1000); } } このようなプログラムを組んで見たところ次のようなエラーが出てきます。 (エラー内容) Error 1 __builtin_avr_delay_cycles expects a compile time integer constant c:\program files (x86)\atmel\atmel toolchain\avr8 gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h 163 28 CC1101_ATmega88 このエラーの解決方法をご教示頂きますよう、お願い致します。