atmel / avrの最近のブログ記事

mrga8など最近のAVRマイコンを取り扱ってなかったりAVRライターなどがラインナップから消えていたので、秋月はもうAVRを見捨てたのかと思っていたら、、、AVR最強のマイコン ATMEGA128(日本語データシート) を販売開始してました。しかも今のところDigi-Keyよりやすい

秋月の通販販売ページ

でもTQFPパッケージなんて、素人には使いにくいんだよね。
DIP変換基盤と一緒にやすく出してくれたら買うんだけどなぁ。

shlogのエントリーを参考にmega8のシリアルの送信受信をやってみる。

作ったハードのテストもかねて、
エントリーにあるソースを使ってやってみたらあっさりできた。
が...どうもシリアル送信の動作が時々おかしい(こないときがある)のでハードが変なのかとハードをしらべる。

別のハードでも同じ症状だったので、様のソースを解析。

switch(uart_recv_data){ // 受信データが
case 'o': // oの時
LED_SET();
if(c != uart_recv_data) uart_send_str("LED_SET\0"); // 前回と同じ文字で無ければ
break;
case 'x': // xの時
LED_CLR();
if(c != uart_recv_data) uart_send_str("LED_CLR\0");
break;
default: // その他の時
if(c != uart_recv_data) uart_send_str("ERROR\0");
}
c = uart_recv_data;

以上のソースがmainの中で実行されていて、解析中に割り込みが入ったりした時におかしくなっていたので、UART受信割り込みの処理の方に、解析のメソッドをうつす。

うまくいった。

書き換えたソースコード


久しぶりのWINAVRなので苦戦した。

*****以下覚え書き*****

・翔様によるとどうやら

uart_recv_dataはグローバル変数として、volatileで宣言しないとならない。

らしいので覚えておく。

■秋月のライター
ソフト
秋月電子通商
ライターの改造
ライタの製作

■AVR
AVRのデータシート日本語訳
HERO'S Download Index

AVRGCC 
AVRFreaks.net

■AVRの工作

実験ボードの作り方
H8をぶっ飛ばせ、そしてAVRであそぼう!!

LED A/D変換
AVR マイコンを使ってみよう
ATMEL社の8ビットRISCマイコン

C言語の解説 A/D変換など
e-kiyo lab. AVR Toy Development
秋月電子製 AKI-AVRプログラマー利用記

AVRでカメラ認識
AVR STK500

RS232Cとの接続
Visual Basic & AVR RS232 interface

このアーカイブについて

このページには、過去に書かれたブログ記事のうちatmel / avrカテゴリに属しているものが含まれています。

前のカテゴリはWiring I/O boardです。

次のカテゴリはbookです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

atmel / avr: 月別アーカイブ

Powered by Movable Type 4.01