2022/1/13をもって お客様がご利用中のブラウザ (Internet Explorer) のサポートを終了いたしました。 (詳細はこちら) クックパッドが推奨する環境ではないため、正しく表示されないことがあります。 Microsoft Edge や Google Chrome をご利用ください。 (Microsoft Edgeでクックパッドにログインできない場合はこちら)
以前、買うだけ買ってほったらかしにしていたNokia6100液晶を使ってみました。きっかけはトラ技11月号にこの液晶を使った製作記事が載っていたからです(この記事について以前書いたもの)。トラ技11月号のソースプログラムはダウンロードできるのですが、PIC用なのでAVRではそのまま使えません。PICのソースを見ながら初期化の手順や描画手順のエッセンスを抜き出してAVRに移植しはじめました。 ということで一応動くものができたのですが、ちょっと疑問がわいてきたので別のソースも参考にして比較検討をはじめました(参考にしたNokia LCD Driver for 4096 Colors by Loren Blaney)。 SparkFunのColor LCDモジュールです。 キャリーボードは液晶が必要とする電圧を全て作ってくれます。必要なのは3.3Vだけです。 SparkFunのColor LCD
先週、SHARPの距離センサ:GP2D12を使った。 http://ww2.tiki.ne.jp/~maro/AVR/programing/#AD_convert http://www.toshu-ltd.co.jp/gaki/electronics/AVR/tech/ADconversion.html を参考に、AT90S4433内蔵のA/Dコンバータを使って距離を計測してみたら、ものすごい精度で計測できる事がわかった。走り抜けたり、ぶんぶん振り回した腕なんかでも感知できた。 http://www.pluto.dti.ne.jp/~nak/h8/h8_tiny.htmlの回路図とhttp://kamuy.elec.muroran-it.ac.jp/robocon2/making/2004/distance.htmlのピン配置を参考に、1番ピンをAVRのA/Dコンバータに差し込む。センサー
CPUレジスタ(32本)、I/O(64byte)、SRAM(128byte)が同じ空間に配置されています。ロードストア命令時にはこれらのレジスタにリニアにアクセス可能です。プログラムメモリは16bit境界でアドレッシングされています。 ●命令セット(アセンブラ) ・General Purpose Registerについて 32本のレジスタはほぼ同等の機能を持っています。リトルエンディアンです。 (1) 即値計算、代入(LDI)、ビット操作(SBR,CBR)はR16-R31のみ。即値コードに値を含む。アドレス直接ロードストア(LDS,STS)、bit skip(SBRC,SBRS)はすべてのレジスタで可能。 (2) 16bit即値計算はR24-R31のみ。ただし値は0-63まで。 (3) インデックスポインタはR26-R31を使ったX,Y,Zの3本。 (4) X,Y,Zを使ったロードストアは
UARTでPCと通信. 動作未確認. #include <avr/io.h> #include <avr/interrupt.h> #define CLOCK 8000000 // マイコンのクロック #define BAUD 9600 // 通信速度 // 受信バッファ volatile uint8_t data[8]; volatile int data_pos = 0; volatile int data_posr = 0; // 受信は割り込みで処理 SIGNAL(SIG_USART_RECV) { if(bit_is_clear(UCSR0A,FE0)){// エラーが無し data[data_pos++] = UDR0; data_pos%=8; } } // w : 約1ms単位 void wait(uint16_t w){ while(w--){ volatile uint
FT232RLを使ったUSB−シリアル変換モジュールを秋月電子で購入してきたので、ワンチップマイコンのAVRのUSART機能と接続してPCへのデータ取り込み実験をしてみました。 USB-シリアル変換モジュールは、24ピンのDIPサイズでかなりコンパクトです。FT232RLは、通信速度が300〜460kbpsに対応しているので、かなり高速にデータのやり取りが可能です。 USBから給電して動作させることも出来ますが、今回はブレットボードから電源を供給して使用してみます。 接続するPCには、FT232RLの供給メーカーであるFTDI社のサイトから必要なドライバーをダウンロードしてインストールします。Windowsからは、USB接続が仮想的なシリアルポートとして認識されて、利用できるようになります。 今回の実験回路です。 AVRはATmega168を使用します。AVRのクロック源は、速度的には、内
UART(USART)の回路がちゃんとできているかチェックする時に使ってるプログラム。 UARTでマイコンが文字列を受け取る。そして受け取った文字をそのままUARTで送り返す。 Arduino+ATMega8で作ったら15行で書けるけど、avr-gcc+ATMega8だと58行必要になる。 同じ動作をするプログラムなのに。 そういえばWinAVR060421が出ているのにまだ移行していなかった。あとでやる。 SourceCode, MakeFile, Hex (AVR-GCC3.4.5) ■コード #include <avr/io.h> #include <avr/interrupt.h> #define TRUE 1 #define FALSE 0 #define NULL '¥0' #define sbi(BYTE,BIT) BYTE|=_BV(BIT) // BYTEの指
hid-data を ATtiny45 の内蔵 RC オシレータで動作させる方法 概要 AVR で USB デバイスを作れる AVR-USB というソフトウェア USB プロトコルスタックがあります。<凄すぎる! これのサンプルの hid-data を ATtiny45 の内蔵 RC オシレータで動作させる方法を紹介します。 というか、元々対応はされてるのですが、使い方の説明が無いのと、ちょっと修正が必要なのとで、 手間がかかったので、調べた結果を紹介します。 AVR-USB を使えば、CP2103 とか、FT232 とかで USB → RS232C 変換することなく、 直接 USB の HID デバイスとして PC からアクセスできるようになります。 ただし、Low Speed (1.5Mbps) だけです。 サンプルの hid-data は、PC から 128 Byte
前回、ATmega168 + FT232RLでシリアル通信するプログラムを紹介した。(http://d.hatena.ne.jp/yaneurao/20080628) 「FT232RLのところを見るとTXD,RXDがAVRのRXD,TXDに結線」されているのだが、これだけではフロー制御されない。フロー制御されないということはどんどんデータを送られるととりこぼしてしまうと言うことだ。 フロー制御を行ないたいなら、RTS,CTSも接続して「これ以上データを送らないでくれ」と言えるようにしておくべきなのだが、そんな結線をするとAVRのI/Oが減ってもったいないので、普通しない。 では、どうするかと言うと、AVR側では割り込みを使って受信して、割り込み内ではring bufferに格納していく。これが基本中の基本…だと思うのだが、あまり解説しているサイトがないのでサンプルコードを書いて解説をしてみ
atmega8も出荷時設定では内蔵1MHz動作なので、ヒューズビットを切り替えなければ9600bpsでシリアル通信する事はできない。 TINY2313のヒューズビット切り替えと同じノリで切り替えれた。 ■切り替え方 データシートの144ページ と17ページ を見るとわかる通り、下位バイトのCKSEL3-0を書き換えると動作クロックが変わる。 ELMさんのライターで >avrsp -rf するとヒューズビットが読める Detected device is ATmega8 Low: 11100001 High:11-11001 Cal: 185 184 181 183 なので >avrsp -fl11100100 すると8MHzにできた。 MEGA8のTXDをADM3202に接続してシリアル通信できた。→ソースコード(avrgcc)
2008年10月18日 Tiny2313とFT232RLを使ってシリアル通信をする。 カテゴリ:カテゴリ未分類 FT232RLを使って、Tiny2313と無事にシリアル通信ができましたのでソースを残しておこうと思います。 回路は、こんな感じです。 (私の経験上、初めて使うため)気をつけなければいけないのが、FT232RLのつなぎ方です。ちなみに、FT232RLはUSBのミニBタイプなのでケーブルを忘れずに買っておきましょう。 FT232RLのTXD→Tiny2313のPD0(RXD) FT232RLのRXD→Tiny2313のPD1(TXD) FT232RLの7,13ピンは、ともにGNDにつなぐ FT232RLの15ピンには、5Vの電気を流す。 次に、Tiny2313ですが上記でほとんど接続は終了です。 VCCに5Vの電気を流し、GNDをつなげば終了です。 FT232RLを使うので簡単です
○ はじめに ATMega8535 は、USART (Universal Synchronous and Asynchronous Receiver and Transmitter) と呼ばれる、シリアル通信を行うために必要な機能を備えています。この機能を使うと PC 等とシリアルポート経由でデータ通信を行うことができます。ここでは実際に、PC のシリアルポート (D-SUB 9ピン) と接続してデータ通信を行います。 USART について 関連レジスタ 回路図 サンプルプログラムと説明 ○ USART について USART とは Universal Synchronous and Asynchronous Receiver and Transmitter の略で、シリアル信号とパラレル信号間の変換を行うための集積回路のことを表す様です(Wikipedia によると)。ATmega8535
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く