Yahoo!ジオシティーズ ゲストブック  

   2006/3/27 (Mon) 02:16:46
[名前] :   kkk
[URL] :   
[コメント] :   「徒然なるままに」のWinAVR20060125の件ですが、
AVR-Wikiの「雑談」で同様の報告がでています。
「chcp 437」で英語モードにすると文字化けしないそうです。
でも英語モードだと不便な場合も出てくるかな?
また、AVR-Wikiの「WinAVRバグ情報」の一番下にgcc-3.4.6版を作成しておいていますのでそちらも確認してみて下さい。(古いWinAVRディレクトリを保存しておいてavr-gccの中のWinAVRディレクトリをそのまま上書きコピーして下さい)
gcc作成(configure)時のオプションの関連だと思いますが、当方にて現象がでないため対応策が確定していません。

   2006/3/27 (Mon) 04:40:52
[名前] :   kkk
[URL] :   
[コメント] :   AVR GCC forum でも出ていました。
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=36814
相変わらず当方で再現できませんのでforumの方法でOkかの確認は取れていません。
   2006/3/27 (Mon) 10:50:28
[名前] :   kuman
[URL] :   
[コメント] :   kkkさん ありがとうございます。
gcc-3.4.6版を使わせていただいたところ文字化けがなくなりました。

今までは気がつかなかったのですが、
#include <avr/io.h> (表示のため全角を使っています)
を書かなくても正常にコンパイルされています。どうなっているのでしょう。
   2006/3/27 (Mon) 11:58:39
[名前] :   kkk
[URL] :   
[コメント] :   文字化けの原因はおそらくgcc作成時のconfigure に --disable-nls が指定されていないため翻訳ルーチンが動いてしまうものと思われます。
AVR-Wikiのgcc-3.4.6は--disable-nlsを付けてコンパイルしてあります。
#include <avr/io.h>の件は
他に使用しているヘッダの中で includeされているためと思います。
avr-libc-1.4.3では
boot.h / eeprom.h / interrupt.h / pgmspace.h / sleep.h / wdt.h
でincludeされているようです。
   2006/3/22 (Wed) 10:01:52
[名前] :   akibow
[URL] :   
[コメント] :   徒然なるままに 時々読ませていただいています。
mega48には内蔵発振の速度を変更するレジスタ OSCCAL があります。これに入力する値を変更して発振周波数自体を調整してもOKです。
   2006/3/25 (Sat) 01:27:39
[名前] :   kuman
[URL] :   
[コメント] :   いつもありがとうございます。

個別の偏差は修正できるのですが、本当に必要なのは温度に対する恒常性だと思います。

一つだけの例ですが、mega48を内蔵RC発振として、ヘアドライヤーで暖めたところ5〜7%ほど高くなりました。

手持ちの12MHzセラロックでは0.1%程度の変化があり、12MHzの水晶では10の-5乗でほとんど動きませんでした。

少しシビアな条件では内蔵RCは使えないようです。
セラロックも個体偏差(水晶よりかなり大きい)と温度による偏差の合計で場合によっては苦しいのではないかと思います。
その点、さすがに水晶は安心できるようです。

digi-keyのように7〜80円で買える水晶が近くにあればうれしいのですが。
   2006/3/10 (Fri) 18:26:41
[名前] :   巳摩
[URL] :   
[コメント] :   かなりお久しぶりです。またまたAVRで遊んでいます。
ただ、最近よくavrがお亡くなりなるのです。
USB接続で5Vにて書き込みをしているのですが回路を組んでさあプログラムを書き込む段になると突然Device Not Foundとなってしまい。ぜんぜんアクセスを受け付けません。強引に-tコマンドで認識させて書き込むと失敗します。書き込み回数は100回くらいしかさせていないのに。
ATTiny26LとATtiny2313とも同じではじめはうまくいくのですが突然コマンドを受け付けなくなります。皆さんは経験がおありでしょうか。
単にチップがハズレなのでしょうか。
   2006/3/11 (Sat) 01:18:48
[名前] :   kuman
[URL] :   
[コメント] :   お元気でしょうか。
avrはWebページのとおりの使い方ですが、今までに昇天したのは、2回です。1度目はTiny26Lで、完成後試運転中にバナナクリップで無理をしているうちにどこかをショートさせてしまいました。2回目はmega48TQFPに下駄を履かせてDIP型にしているとき、勘違いしてVccとGNDにレギュレーションの良い電源から逆電圧をかけてしまい、気がついたときは煙がうっすらと...。
それ以外では経験がありません。
ライタはChanさんのもの−−以前はISPライタ、最近はCOMポートSPI Bridge−−を使っています。
いずれもターゲットの5Vから電源を供給しています。
USBライタでも経験がありません。どうしてでしょう?
   2006/3/11 (Sat) 15:57:24
[名前] :   akibow
[URL] :   
[コメント] :   ヒューズビットを書き込んだ後に
書き込めなくなった
なんてことはないですよね?
   2006/3/11 (Sat) 19:58:02
[名前] :   巳摩
[URL] :   
[コメント] :   確かに思い出してみるとヒューズビットを書き換えた後何回か書き込みができてだめになりました。
外部クロックやクリスタルにして何回かは書き込めたのですが。もしヒューズビットの書き換えが間違っていた場合、書き換えた直後からアクセスができなくなるはずなのですが。
現在は新品で内部クロックRC8MHzにして使っています。
外部クロックのとき時は京セラの水晶発振をつかい、100円のクリスタルのときは8.00MHzのものです。
パラレルライタは持っていないのですが、パラレルライタで原因が探れるなら挑戦しようかとも思います。
   2006/3/15 (Wed) 22:59:50
[名前] :   akibow
[URL] :   
[コメント] :   書き換え後不安定動作する可能性があるとすれば
CKOPTヒューズではないでしょうか。
これが適切でなければ動いたり動かなかったりするかも。
   2006/3/5 (Sun) 20:42:13
[名前] :   ぼの
[URL] :   
[コメント] :   徒然なるままに、の記事読みました。

矩形波発生器、参考になります。
ディップソケットの片側を使う切り替えのアイディアも
いいですね。
何でも工夫ですね。
   2006/3/6 (Mon) 07:17:40
[名前] :   kuman
[URL] :   
[コメント] :   そのとき動きさえすれば良いという、安直さかもしれません。
   2006/2/8 (Wed) 17:48:51
[名前] :   亀井
[URL] :   http://m-pe.tv/u/?kouheiyouhei
[コメント] :   こんばんわ。亀井です!全然関係ないんですが今日言っていた僕のHPです!1度見てみてください!
たぶんつまんないですが・・笑
   2006/2/9 (Thu) 20:28:41
[名前] :   kuman
[URL] :   
[コメント] :   連絡ありがとう。
楽しいページに、ゆっくり育ててくださいね。

ここでは、kumanです。
   2006/2/8 (Wed) 17:47:03
[名前] :   sakaguchi
[URL] :   
[コメント] :   毎度の更新有難う御座います。
昨年より 始めたAVR遊びが C言語の使用により
飛躍的に 進歩いたしました。

沢山の人が 次の更新楽しみにしてることと思います。
いろいろなチャレンジ 大変だとは思います。

ぜひ今後とも 頑張ってください。
有用な情報&指導 本当に有難う御座います・
   2006/2/8 (Wed) 21:07:07
[名前] :   kuman
[URL] :   
[コメント] :   お読みいただき、ありがとうございます。

ぼちぼちですが、根気よく勉強とチャレンジに取り組むつもりです。
気長に付き合ってください。
   2006/2/6 (Mon) 20:37:04
[名前] :   akibow
[URL] :   
[コメント] :   電波時計、よくぞ言ってくれました!
ほんとにねえ。10万年なんてどうでもいいのに。
電波受信しにくい地方で購入し、安定して受信できないものだからどんどん狂いまくる(日差2秒で進み、時々修正されるそうな)で怒りまくっている知り合いがいます。水晶時計としてはいまいちのようで。

10万年に1秒なんてキャッチコピー、受けるのですかねえ。正直に「いつもあなたにかわって時刻あわせてます。いつでも誤差ゼロ!(小さい字で、電場受信状況が良好な場合)」の方がよほどかっこいいと思うのですけど。こっちは10万年に1秒じゃなく全く狂わないってことですから。

そもそも10万年もたてば正確な時刻の定義自体が怪しいです。原子時計に合わせた正確な時計は太陽との関係を大幅に狂わせてしまいます(ここ20年で閏秒が11秒)・・10万年もたてば55000秒、15時間ずれてるんですから・・・。

そういえばうるう秒が廃止になるという話がある相ですが、このへんはどうするんでしょう。1時間くらいずれてきたら(6500年後)えいやっと修正するのかな?
   2006/2/6 (Mon) 20:44:07
[名前] :   akibow
[URL] :   
[コメント] :   そういえばうちのDVDレコーダーの時計がほんと狂いません。マニュアルによると、時々NHK教育の時報を受信して修正しているのだとか・・・
一方、基地局に煩雑につながっているはずの携帯の時計はどんどん狂っていきます。自動修正やってくれないのかなあ。

私の腕時計は自動巻で日差+13秒です
時計といえばウルウルする話を1つ仕入れたので紹介
http://mr-coo.com/warai/kowai.html
   2006/2/6 (Mon) 22:45:11
[名前] :   kuman
[URL] :   
[コメント] :   おもしろいお話でした。ありがとう。

今の時計は、7年ほど前に「防水」の文字で買った「お求めやすい価格」の無名品です。でも、1年に1分足らずしか狂いません。
年に1回あわせると±30秒でokです。時々お風呂で洗いますが、まだ電池も替えていません。

こんな水晶もあるのですね。
   2006/2/4 (Sat) 09:30:37
[名前] :   akibow
[URL] :   
[コメント] :   outlookの引っ越し問題は頭いたいですね。
私も最近PCの引っ越しをしたのですが、outlookデータの引っ越しには頭を抱えました。前のマシンでエクスポートしていないとかなり大変なことになるのですね・・・いきなりHDDがとんだ(バックアップはあった)ので、かなり苦労しました(何をどうやったのか思い出せない(笑)

というわけで、私はだいぶ前から他のメールソフトです。(outlookを使っているのは妻)単なるデータバックアップでも大丈夫ということでDatulaという古いメールソフトを使い続けています。
作者がご病気ということで更新が滞っているようなので、お勧めはできませんが、まあ使いやすいです。
   2006/2/4 (Sat) 10:18:36
[名前] :   kuman
[URL] :   
[コメント] :   それで、
以前に引っ越し方法を書いてみたものを眺めながら作業しています。
http://www.geocities.jp/kuman2600/memof/outlook-save.txt
   2006/2/5 (Sun) 14:10:41
[名前] :   akibow
[URL] :   
[コメント] :   おおっ!いただきます。
   2006/2/2 (Thu) 13:10:07
[名前] :   大学生
[URL] :   
[コメント] :   計測学を勉強している学生です。周波数カウンタについて分からないところがあったので、ネットで探していたらこのサイトを見つけました。「周波数カウンタにおいて、パルス化した0.1HZの基準信号の間にパルス化された入力信号をカウントしたところ100カウントになった。入力信号の周波数はいくらであるか。また、入力信号の1周期内で10HZの基準信号のパルス数をカウントすると1122であった。入力信号の周期の値を誤差に注意して答えよ。」もし、分かる方がいたら教えてください。
   2006/2/2 (Thu) 13:16:20
[名前] :   bono
[URL] :   
[コメント] :   あなたは馬鹿ですか。
   2006/2/2 (Thu) 21:52:04
[名前] :   akibow
[URL] :   
[コメント] :   まず、どのように考えたかをかいてみましょ。
周波数とななにか?に立ち戻れば簡単。
   2006/2/3 (Fri) 13:36:00
[名前] :   bono
[URL] :   
[コメント] :   明らかに、学校の宿題か課題に見えるものを、自分で考える努力をしないで聞くな、という意味を「馬鹿」に込めています。
誤解なきよう。
   2006/1/31 (Tue) 14:15:49
[名前] :   JJ
[URL] :   
[コメント] :   kumanさんありがとうございます!
試した結果、うまくできました!
水晶使用のことを教えてもらえてなかったらたぶんやってました(-_-;)
これからいろいろ実験してみようと思うのでまたわからないことがあったらよろしくお願いします。
   2006/1/31 (Tue) 09:24:54
[名前] :   JJ
[URL] :   
[コメント] :   kumanさん、お返事ありがとうございます!

度々、初歩的な質問すいません。
私の開発環境はソフトはAVR StudioでライタはSTK500を使っています。この場合は、どうのようにしたらヒューズビットを書き換えられますか?
やはりavrsp.exe で書き換えた方がいいのですか?
   2006/1/31 (Tue) 13:58:24
[名前] :   kuman
[URL] :   
[コメント] :   STK500は使っていないし、AVRstudioも初期以外は使っていないのでよくわかりませんが、調べてみました。

ホームページの「連絡」にstudioの画面を書きましたので見てください。多分これでokだと思います。

ヒューズビットの書き換え時は注意してください。
外部発振器や水晶(セラロック)使用に変更するとその瞬間から変わります。水晶使用に変えると、水晶をつながないと書き換えもできないからです。
ときどきあるようですので慎重にしています。

また質問があれば書いてください。
   2006/1/31 (Tue) 20:05:54
[名前] :   Chuck
[URL] :   
[コメント] :   こんにちは。

外部発振器や水晶(セラロック)使用に変更するとその瞬間から変わります。水晶使用に変えると、水晶をつながないと書き換えもできないからです。

kumanさんのおっしゃるとおりです。ただSTK500には外部発振回路も載っているのでSTK500のソケットに挿した状態で書き換える分にはすんなり行ったり来たりできると思います。
リセットピンの機能を変更するときはさらに注意が必要ですが、STK500であれば復帰可能です。

このあたりの話はすべてAVR Studioのオンラインドキュメントに載っていますので、熟読されることをお勧めします。
   2006/2/1 (Wed) 10:02:17
[名前] :   kuman
[URL] :   
[コメント] :   Chuckさん ありがとうございます。
STK500って便利なんですね。
   2006/1/30 (Mon) 18:15:25
[名前] :   JJ
[URL] :   
[コメント] :   AVRを始めたばかりの者です。
今、ATTINY26を使っていろいろ試しています。
ここで質問なのですが、出荷時に内部の発振器が1MHzに設定されているようなのですが、8MHzなどに設定し直すにはどうしたらいいのですか?
   2006/1/30 (Mon) 19:24:16
[名前] :   kuman
[URL] :   
[コメント] :   お読みいただいて、ありがとうございます。

クロックはヒューズビット(low)を書き換えます。
1MHzでは 11100001 ですが
8MHzでは 11100100 です。

avrsp.exe を使っておられるなら
 -fl11100100 とスイッチを書けば書き換えられます。fの次の文字は小文字のエルです。

ホームページの「AVRコンピュータ」の下の方に私がよく使うヒューズを書いています。
データシートにもありますから、時間のある時に調べてみてください。
わからなければ聞いてください。
   2006/1/25 (Wed) 10:59:47
[名前] :   GO
[URL] :   
[コメント] :   AKIBOWさん、助言ありがとうございます。

実験報告です:

1。PG4にはしっかり切替えSWITCHをつけ、他方はアース、もう一方は解放(NC)にしました。まさか、NCは
+5Vにつながっていることはないでしょうか?

2。 BOOTLOADERによる「AVRDUDE書き込み失敗」とい
うのは、RS232を接続し、GCCーDEVELOPMNT LITEの内蔵
プログラムAVRDUDEでSAMPLE.3の書き込みをやっても、
画面には1行しか出ず、終ってしまうことです。
(SUCCESSFULLY DONEがでません)

3。なお、自分はHIGH 11-11100 は1101100で書い
ております。

4。今回、ATMEGA128基板は4枚あるので、別基板
にAMD232ーICをつけて、新配線でもう一度やってみ
ます。。。。DSUB9への配線はアースとRXD、TXDの3本
だけで、7、8PINはSHORTしてません。

今回、AMD232の7、8にMEGA128から入って9,10
からDSUBへ繋げていき、11,12,13,14 PINは一切つかってません。これが悪いのでしょうか?

今晩も、めげずにやってみます。
   2006/1/25 (Wed) 11:54:48
[名前] :   akibow
[URL] :   
[コメント] :   1。PG4はプルアップ入力になっているようなのでそれでいいですね。
PG4を出力にしてしまった場合に備えて小さめの抵抗(3.3k)も入れた方がいいと思います。
2。通信が成立していないようですね。
まずはブートローダーではなく、通常の通信プログラムをISPで書き込んで動作検証した方がいいのではないでしょうか。
3。1101 1000ですよね。それでいいと思いますー
4。ハードウェアフロー制御の結線をしていないと、PC側の設定によっては通信が不可能になります。CTSとRTSはマイコンにつながないならショートしておいた方がいいと思います。
   2006/1/25 (Wed) 00:41:02
[名前] :   GO2
[URL] :   
[コメント] :   BOOTLOADERによるAVRDUDE書き込み失敗!

AKIBOWさんにお聞きしたいですが、
昨日から自作基板にBOOTLOADERによるAVRDUDE書き込み、
を何度もやってますがみごと失敗してます。しかし、BESTTECH
社のAT128はFC.HEXを入れたら周波数表示をするし、このおか
げで消えてしまったBOOT-LOADERも再び、1F800にDONGLEで
書きなおすと書き込めました。かつ、RS232でAVRDUDEを使って、
BESTTECH社のSAMPLE3をかきこむことができました。

結論:CLOCKは同じ16MHZです。。。

自作基板のヒューズBITは
LOW 10111111 HIGH 11-11100 EXT 11
CAL=160 159 152 154 ですが

BESTTECH社基板のヒューズBITは
LOW 10111111 HIGH 11-11100 EXT 11
CAL=167 168  158 159 です

CALはそもそも何でしょうか? 同じにするにはどうすべきですか?
よろしく、お願いします。
   2006/1/25 (Wed) 09:26:24
[名前] :   akibow
[URL] :   
[コメント] :   ●CALは内蔵RC発振の狂いを修正するためのデータなのでここでは問題にしなくて良いです。

ヒューズビットを解釈してみましたが、問題があるとすれば
LOW 10111111
 BODLEVEL 2.6V選択
 BOD許可 2.6Vを切るとリセットがかかる

HIGH 11-11100 
 CKOPT無効:省エネ発振モード
EXT 11
→ウォッチドッグタイマ許可、ATmega128動作

●CKOPTが非プログラムになっているのが問題かもしれません。ノイズが多かったり発振子への配線が短くない場合にはフル発振モードの方が安定するかもしれません。
●WDTが有効になっている→これはブートローダー内で有効にしていないようなので問題なさそうです。
●もう1つベステクと自作ボードの違いの1つとして、SRAMメモリの追加がありますが、ブートローダーのソース、makeboot.batを見る限り外部メモリに依存したプログラムはなさそうです。
   2006/1/25 (Wed) 09:26:37
[名前] :   akibow
[URL] :   
[コメント] :   ●ブートローダー書き込み失敗というのはどういう失敗なのでしょうか?
●PG4にモード切替スイッチはつけましたか?これがなければブートローダーモードとアプリケーションモードの切り替えができないので書き込めないか、書き込んでも書き込んだプログラムが起動できないかどちらかの問題が起こります。
   2006/1/22 (Sun) 23:37:14
[名前] :   akibow
[URL] :   
[コメント] :   WinAVR 20060119、まだ安定しそうにないですね。
新しい版がでることになるのでしょうか。
http://www11.ocn.ne.jp/~akibow/AVR-LibC_1.4.2/changes-1.4.html
とりあえず簡易訳です。割り込みがちょっと変わりそうです。そのほかは・・まだよく把握してません。

2重インストールはもしかしたらできるかもしれません。PATHさえ切り替えれば+PNを使わないなら・・
   2006/1/23 (Mon) 23:27:51
[名前] :   kuman
[URL] :   
[コメント] :   よく分からない状態で使わせてもらっている、という感じ。
インストールし直して、プログラムを修正して、まともに動かなかったら、後の始末が大変です。

並行して使うなら、二重にインストールして、pathを書き換えるバッチファイルを用意して...とまではいいとしてもプログラムも二重にすることになるかな?

やはり、もう少し待ちましょう。

+PNってなんですか?教えてください。
   2006/1/24 (Tue) 07:08:47
[名前] :   akibow
[URL] :   
[コメント] :   PN=Programmers NotePadです
これはwindowsソフトなのでもしかしたらパス設定だけではだめかも?と。

今回のバージョンの特徴として、 というヘッダがあることがおもしろそうです。先日cbiマクロなどを動かすために作ったマクロ定義と同じようなものが用意されているようです。インストールしていないのではっきりしませんが。

とはいえ安定版とは言えそうにないのでやっぱり様子見ですね。
   2006/1/24 (Tue) 07:09:48
[名前] :   akibow
[URL] :   
[コメント] :   あらら、<>が出ないのを忘れてた
<compat/deprecated.h>マクロのことです
   2006/1/25 (Wed) 10:01:21
[名前] :   kuman
[URL] :   
[コメント] :   ありがとうございました。

思考が単純で、付属が付いてくるPNは苦手で、エディタを愛用しています。avrstudioも苦手です。

新WinAVRは、sbi()やcbi()が復活しているのは面白いと思いました。
   2006/1/20 (Fri) 19:26:22
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんありがとう、さっそくやってみます。

この辺から急にむつかしくなって、びびりながらやって
ます。よろしくお願いします。HIROさんのATmega128.pdf
を読んでいると、専門ではないので圧倒されます。

でも、おかげさまで12月ころよりも読みやすくなりま
した。このサイトのおかげで、OLIMEXなどのATmega128
基板を買わずに済みそうです。
   2006/1/22 (Sun) 21:08:37
[名前] :   akibow
[URL] :   
[コメント] :   この辺から急にむつかしくなって
だってGO2さんが難しいのにチャレンジするから(笑)
   2006/1/20 (Fri) 17:09:38
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんへ AVR-WIKIを参考にし、自作ATMEGA128
のBOOTLOADER部に一応、書き込めました。

AKIBOWさんのサイトにあったドングル回路図でつくった
パラレル書き込み器で、STK500MON.HEXを1F800番地に
書き込めました。

書き込みプログラムはPONY-PROG2000を使用しました。
でも、ここにFC.HEXを書き込むとBOOTLOADER部が消えて
しまうので、現在も実験中です。
   2006/1/20 (Fri) 18:33:03
[名前] :   akibow
[URL] :   
[コメント] :   ISPで書き込みするとブートローダーは消えてしまいます。おそらくほどんどの書き込みソフトは書き込みに先立ってチップイレース(チップの全消去)を掛けているためと思われます。チップイレースを禁止して書き込み動作だけを行えば大丈夫だと思われますが、そういうソフトがあるかどうかはわかりませぬ。
ブートローダーを書き込んだならブートローダーによる書き込みを目指しましょう。逆に、ISP書き込みで行くならブートローダーは要りません。
ベステク基板と同様なブートモード設定スイッチをつけて、このスイッチ設定を変更して起動すればブートローダーはプログラム読み込みモードになるはずです。UART経由でAVRDUDE経由書き込みができるはず。(ヒューズビット設定もお忘れなく)
   2006/1/19 (Thu) 10:28:31
[名前] :   GO2
[URL] :   
[コメント] :   またお世話になります。ATMEGA128 のBOOTLOADERについてです

現在、BESTTECH社提供のBOOTLOADERプログラムを自作128基板に
焼き付けて、念願のAVRDUDEでの書き込み実験をしようと思ってます。

ところが、
ISP焼付けができません。その前にAVREZUSB −rlでATmega128が
正常である、正規データ表示が行われるます。やると、STKBOOT-
LOAEDR.HEXファイルがおかしいといってはねつけられます。
自分の焼付けにつかっているAVREZUSBはCHANさんのAVRSPと同等
ですが、パラレルタイプでないと、BOOTLOADERには書き込めないので
しょうか?  よろしく、教えてください。海外サイトのこの辺をあさりまし
たがちょっとわかりにくいです。。日本語資料はほぼ皆無でした。。
   2006/1/19 (Thu) 13:28:06
[名前] :   akibow
[URL] :   
[コメント] :   このまえヒューズビットを書き直した奴をつかっているんですよね?わかんないなあ・・・
   2006/1/20 (Fri) 00:10:03
[名前] :   akibow
[URL] :   
[コメント] :   AVRStudio経由でAVRISPで焼くのがスタンダードみたいだったのでAVRStudio(4.11)によみこんで見ましたが、同様にhexfile errorで読み込めませんでした。
新しいwinavr対応にソースを書き換えてコンパイルしてもうまくいかないのでファイルが壊れているわけではないようです。開始アドレスが0x1F000であることが問題?
bootloaderはさわったことないもので、お役に立てずに申し訳ない。
   2006/1/20 (Fri) 00:13:27
[名前] :   akibow
[URL] :   
[コメント] :   http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?page=%BB%A8%C3%CC
[BLS領域への書き込み方法]が参考になりそう。
   2006/1/17 (Tue) 17:29:53
[名前] :   kuman
[URL] :   
[コメント] :   akibowさんへ

LCDの文字列定数表示について、lcd.cとlcd.hにlcd_putstr_P 関係の記述を追加しましたが、下記のようにエラーが出てコンパイルできません。
貴ページのlcd.cとlcd.hを用いたときも同様のエラーが出ました。

lcd.h:32: warninng: type defaults int in declaration of prog_char
lcd.h:32: error: parse error before * token
lcd.h:32: warninng: function declaration isnt a prototype

よろしくお願いします。 
   2006/1/17 (Tue) 17:35:06
[名前] :   kuman
[URL] :   
[コメント] :   シングルクォートが抜けましたので、全角で入れます。

lcd.h:32: warninng: type defaults ’int’ in declaration of ’prog_char’
lcd.h:32: error: parse error before ’*’ token
lcd.h:32: warninng: function declaration isn’t a prototype
   2006/1/17 (Tue) 17:36:41
[名前] :   akibow
[URL] :   
[コメント] :   #include <avr/pgmspace.h>が抜けてませんか?
これを外すと同じエラーが出ます。
   2006/1/17 (Tue) 17:54:40
[名前] :   kuman
[URL] :   
[コメント] :   言葉足らずですみません。

#include <avr/pgmspace.h>は
.cファイルとlcd.cの両方に入れてあります。
   2006/1/17 (Tue) 18:01:29
[名前] :   akibow
[URL] :   
[コメント] :   それでは、
#include ”lcd.h”より後ろに#include <avr/pgmspace.h>がある、
ってことはないでしょうか?
   2006/1/17 (Tue) 18:10:37
[名前] :   kuman
[URL] :   
[コメント] :   そのとおり。

後にありました。気が付きませんでした。
順序を変更するとコンパイルできました。

ありがとうございます(毎度)。

なお、2313のSRAM128バイトは文字列定数を表示するにはかなりきびしい感じですね。
これを無視して、13文字×11 なんて作ってみたら
SRAM 150%ぐらいになったと思います。
   2006/1/17 (Tue) 13:21:19
[名前] :   akibow
[URL] :   
[コメント] :   徒然なるままに 06.01.16
全部詰め込んだような物を送って申し訳ない。
いじっているうちに楽しくなりまして(笑)
そこまで厳しいタイミングやメモリでもないのに
レジスタ割付変数なんてやり過ぎですね。
新しいfc、2バージョンともいいバランスだと思いました。

とりあえずなにか作らねば・・・
15分以上のまとまった暇ができないのでなかなかはんだごてを握れない私。
   2006/1/17 (Tue) 13:48:12
[名前] :   kuman
[URL] :   
[コメント] :   お読みいただきありがとうございます。

経年変化というものはどこにでもあるようで、
環境の変化に対応する余裕が減ってくる特徴があるようです。
でも、時間をかければまだできないことはないでしょうから、勉強していきましょう。

よろしくおつきあいをお願いします。
   2006/1/17 (Tue) 07:19:21
[名前] :   
[URL] :   GO2
[コメント] :   なんとか、
Atmega128で秋月通商で販売しているSG12232に画像
がだせました。以下の、岡本システムさんのfileを
そっくり、利用しました。


http://www1.ocn.ne.jp/~oksys/page12.htm
(AT90s4414によるSG12232のグラフィック表示)
   2006/1/16 (Mon) 18:08:59
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんありがとう。

sub.h timer.h glcd.h uart.h に全部書き足しましたら
動きました。
   2006/1/16 (Mon) 11:50:42
[名前] :   GO2
[URL] :   
[コメント] :   すみません、以下が正しいLISTです。

#define BV(bit) (1<<(bit))
#define cbi(addr,bit) addr&=~_BV(bit)
#define sbi(addr,bit) addr|=_BV(bit)
#define outp(data,addr) addr=(data)
#define inp(addr) (addr)
#define outb(addr,data) addr=(data)
#define inb(addr) (addr)
#define PRG_RDB(addr) (pgm_read_byte(addr))

昨日は、これを以下のようにやって数時間うなってました。
/* For old avr-libc */
#define _cbi(p, q) ((p) &= ~_BV(q))
#define _sbi(p, q) ((p) |= _BV(q))
#define _outp(p, q) q = p
#define _inp(p) p
   2006/1/16 (Mon) 14:08:54
[名前] :   akibow
[URL] :   
[コメント] :   そのマクロ定義を全ての*.cファイルに加えるだけでmakeできますよ。main.cだけじゃだめです。
deprecated.hなんてファイルにまとめて、これをインクルードしてもいいです。
   2006/1/16 (Mon) 11:38:36
[名前] :   GO2
[URL] :   
[コメント] :   旧WINAVRのコードを書き換えて、MAKEに成功!

AKIBOWさん、ありがとうございます。ご指摘どおり、
以下の書き換えをやって無事、最新版のWINAVRでも
MAKE&焼付けに成功しました。

#define BV(bit) (1
   2006/1/16 (Mon) 11:16:49
[名前] :   GO2
[URL] :   
[コメント] :   旧WINAVRで書かれた、秋月GLCD情報を利用!

自分は昨年から、以下のおかもとシステムさん
サイトが提供してくれている秋月のグラフィック
液晶をAVRで表示したく思っており、今回旧WINAVR
(2004年バージョン)を利用してグラフィック表示
できました。これを早速、ATmega128でも利用した
いです。。。KUMANさんの、RS232もしたいです。

http://www1.ocn.ne.jp/~oksys/page12.htm
(AT90s4414によるSG12232のグラフィック表示)

目標:
この、おかもとシステムさんのGLCD−FILEを
書き換えて、GO2は最新WINAVRでも表示できる
ようにしたいです。マクロの変換のため、LIB
を見てますが、現在、だいぶ????です。
   2006/1/16 (Mon) 10:41:27
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんへ

ご助言、ありがとうございます。

昨晩、数時間かけてソースの方を、ここのKUMANの
指針どおりに書き直し、移行させて?やってみたら、エラー続出でマクロ(PRG_RDBとかBVとか)書き換え
は現時点では自力では不可能でした。知らない、対
応出来ない指摘文ばかり表示され、これが20行ほど出ました。

(さらに、英語のAVR参考書もここのBBSに推薦して
あったのでAMAZONなどでみましたが、ATMEGA128 など
まで解説してある本が見当たりませんでした)

しょうがないので、別のPC機に2004年版のWINAVRを
INSTALLしたらさっと、MAKEできました。焼けました。

これからもお世話になります。。みなさん、よろしく
お願いします。
でなんとか
MAKEできました。
   2006/1/16 (Mon) 00:32:03
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさんへ  1台のPC機に2つのWINAVRをINSTALLできるか?

最新バージョンより、一つ前のWINAVRでかかれたC-FILEをCOMPILE&MAKEしたいのですが、できるのでしょうか?

最新版ではマクロPRG_RDBやBVがないと指摘され、
MAKEができません。。。自分では対処できません
でした。。。

もう1台のPC機にひと昔前のWINAVRをINSTALLする
しか、ないでしょうか?

#define cbi(p, q) ((p) &= ~_BV(q))
#define sbi(p, q) ((p) |= _BV(q))
#define outp(p, q) q = p
#define inp(p) p

やputs_Pはやってみましたが。。MAKE不可能です
   2006/1/16 (Mon) 09:18:14
[名前] :   akibow
[URL] :   
[コメント] :   ソースの方を移行させた方がいいですよ。
http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?page=deprecated+macro%A4%F2%BB%C8%A4%C3%A4%BF%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%A4%F2%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB
   2006/1/14 (Sat) 12:42:17
[名前] :   GO2
[URL] :   
[コメント] :   秋月から買ったATmega128−chipの利用について

一昨日、850円で買ったATmega128−chip4個
ともすべて動きましたので詳しい報告をします。

まず、http://aitem-lab.com/pdf/pich_siz.pdf
で売っている変換基板が一番安いので利用しました。
この板の2.54o間隔の穴の直径が標準より小さいの
で、全64pinをやすりで削ります。

工作方法
・卓上万力で挟み、平やすりで軽く、50回こすると
 その面は終わり。あと、目立てやすりで内側から
 軽30回くらいこする。次は2pin同時に10回左右
 からこすればちょうど穴に入ります。
 削った真鍮のくずがついているので16pinは水洗い
 をしてください。慣れると、15分で出来ます。
 これを、秋月で売っている、03o径の宝山半田で
 つけると完成です。
   2006/1/13 (Fri) 23:18:53
[名前] :   GO2
[URL] :   
[コメント] :   つづきです。

とやりました。するとすでに焼きこんであった、周波数
表示が出ました。万歳です。。これで、週末はグーグー寝れます。
   2006/1/13 (Fri) 23:12:12
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさん、HINTをありがとう。

早速、今周波数表示しているBESTTECH社のAtmega128の
ヒューズビットを表示させました。avrezusb.exe -rf
とやり、画面には

L=10111111
H=11-11100
EX=------11
CAL=167 168 158 159

と出ました。そっくり、自分も

avrezusb -fl10111111
avrezusb -fh11011100  avrezusb -fx11  
   2006/1/13 (Fri) 12:32:10
[名前] :   GO2
[URL] :   
[コメント] :   AKIBOWさんへ、ヒントをありがとう。

ATMEGA128のPDFを見たら、4、5,7BITはJTAG
モードが許されているときは、I/Oポートとして、
使用不可能であるということはわかったのですが、
これをIOポートオンリーにする設定がよくわかり
ません。

BESTTECHのATMEGA128基板のような設定にするには
どうしたらよいでしょうか?よろしくお願いします。

追伸:
秋月のATMEGA128の2枚目のCHIP基板の半田付けも
今日しました。うまくいって、まったく同様な動作
をします。

AVREZUSB.EXE -rlとすると、ATMEGA128の
情報がDOS窓でちゃんと表示されました。
(先回の2枚目の書き込めた、FC用のATMEGA128
基板はこてでいじりすぎていたら、お釈迦になっ
てしまいました。。。残念です。)
   2006/1/13 (Fri) 16:42:41
[名前] :   akibow
[URL] :   
[コメント] :   ヒューズビット関連を調べてみてください。
   2006/1/13 (Fri) 00:23:34
[名前] :   GO2
[URL] :   
[コメント] :   すみません、以下がお聞きしたいPROGRAM-LISTです
----------------------------------------------
#include <avr/io.h>

int main( void ){
long int i;

DDRA=0xff; /* PortAをすべて出力に設定する */
DDRB=0xff; /* PortBをすべて出力に設定する */
DDRF=0xff;              /* PortFをすべて出力に設定する */


PORTF=0x00;
PORTB=0x55;

for (;;) { /* 無限ループ */
PORTA=0xf0; /* 111110000をPortAに出力 */
for (i=0; i<20000000; i++){
i=i;
}
PORTA=0xff; /* 11111111をPortAに出力 */
for (i=0; i<20000000; i++){
i=i; }
}
}
   2006/1/13 (Fri) 08:41:02
[名前] :   akibow
[URL] :   
[コメント] :   もしかしてPF4,PF5,PF7がHighですか?
それならポートFの兼用機能についてデータシートで調べてみましょう。
   2006/1/13 (Fri) 00:20:49
[名前] :   GO2
[URL] :   
[コメント] :   秋月製のAtmega128で実験しました。
正常に書き込みはされましたが、F-PORTに、5V
を示すBITがあります??? どうしてでしょうか?
AKIBOWさん、KUMANさん。。
PORTA、PORTBはプログラムどおりです。
----------------------------------------
#include <avr/io.h>

int main( void ){
long int i;

DDRA=0xff; /* PortAをすべて出力に設定する */
DDRB=0xff; /* PortBをすべて出力に設定する */
DDRF=0xff;              /* PortFをすべて出力に設定する */


PORTF=0x00;
PORTB=0x55;
  PORTF=0xAA;

for (;;) { /* 無限ループ */
PORTA=0xf0; /* 111110000をPortAに出力 */
for (i=0; i<20000000; i++){
i=i;
}
PORTA=0xff; /* 11111111をPortAに出力 */
for (i=0; i<20000000; i++){
i=i; }
}
}
   2006/1/11 (Wed) 23:53:53
[名前] :   GO2
[URL] :   
[コメント] :   KUMANさん、AKIBOWさんありがとうございます。

報告2つ:

1.AT2313に比べて、今回のATMEGA128の計数は少し
多いので??でした。多分、数えすぎではと
感じてました。修正プログラムをいただいて、勉強
します。

2.以前買ってあった、OPTOMIZEサイトのMINI-EZUSB
を使った書き込み器をつくりました。これ専用の焼
きこみPROGRAMのAVREZUSB.EXを使ってWINDOWS-XPの
USB端子で書き込みをしました。たった今、成功しま
した。これで、WINDOWS98をわざわざ起動しないです
むかと思います。

3.秋月からの4枚のATMEGA128が今日届きまして、
慎重にFPGA64PINを半田付けをして今、書き込みまし
たら前回の基板と同じで、「書き込めた」のにFCプ
ログラムは動かず、周波数を表示しません。。自分
のLEDPROGRAMは一部機能してましたので、もう一度、AT128基板はそのままで、FC回路を新配線でやって
みます。
   2006/1/11 (Wed) 18:10:44
[名前] :   kuman
[URL] :   
[コメント] :     GO2 さんへ

下に書いたように、カウンタの繰り上がりミスが出ると思います。

カウント変数を16bitにすることと、フラグ読み取りで変数を修正する事を考えてください。

メールいただければ、akibowさんのファイルを転送します。(akibowさん、よろしいですよネ)
   2006/1/11 (Wed) 20:20:15
[名前] :   akibow
[URL] :   
[コメント] :   OKです。新たなバグがある可能性も大ですので、そのへんはよろしく。
   2006/1/11 (Wed) 18:00:36
[名前] :   kuman
[URL] :   
[コメント] :     akibowさんへ
プログラムありがとうございました。

不勉強で理解に至らないところは後にして、
1.カウント変数を16ビットにしました。
2. if (bit_is_set(TIFR,TOV0) && f3<128){ を書きましたら、1600kと800kはよくなったのですが、3200kでは256カウント多くなってしまいました。

そこでカウント数代入の直前に
TCCR0=0;/* カウンタ0停止 */と
計算終了後に
TCCR0=7;/* 外部ピン立ち上がりでカウント */ を入れたところ正常に表示されるようです。
これでどうでしょうか。
(&& f3<128 の意味が分かっていません。)

その他の難しいことはぼつぼつ勉強します。
割込中は他の割込は禁止ですが、タイマ0のカウントは進むだろうと、すっきりしていなかったのは確かです。
   2006/1/11 (Wed) 18:24:47
[名前] :   kuman
[URL] :   
[コメント] :   追伸

if (bit_is_set(TIFR,TOV0) ){
は書いています。
   2006/1/11 (Wed) 20:19:15
[名前] :   akibow
[URL] :   
[コメント] :   以前車のタコメータを自作した時に同じ問題で悩んだもので。256パルスに相当する分ぴょこぴょこ表示が揺れたんです(笑
f3
   2006/1/11 (Wed) 23:57:21
[名前] :   akibow
[URL] :   
[コメント] :   ソースコードを書くと不等号などで切れてしまいますね・・・つづきです。
f3<128というのは、
A.割り込みにはいる
B.TCNT0繰り上がり,TOV0ビットが立つ
C.TCNT0取得
D.TOV0ビットのチェック
において、A→B→C→D(g12に+1する必要あり)と、A→C→B→D(g12はそのままでいい)を区別するためもうけています。前者ならBで取得したf3(TCNT0)は0〜、後者なら〜255と思われるので、f3>128でこれを区別しています。
うまくいかないとのことなのでこっちでももう少しソースを吟味して、実際に動かしてみます。
   2006/1/12 (Thu) 00:00:29
[名前] :   akibow
[URL] :   
[コメント] :   f3をsigned int(int8_tやchar)で宣言しているとf3<128が常に成立してしまいます。そちらはOKですか?念のため。
   2006/1/12 (Thu) 00:04:32
[名前] :   akibow
[URL] :   
[コメント] :   +256の原因わかりました・・・・
TOV0が立っていて、f3<128が成立しない場合、
TOV0がクリアされません。タイミングによっては次の計測に影響します。f3<128が成立しなくてもTIMSK=TOV0;を行う必要あり。
   2006/1/12 (Thu) 19:31:19
[名前] :   akibow
[URL] :   
[コメント] :   ということで暫定版
http://www11.ocn.ne.jp/~akibow/AVR/fc04.zip
makefileがmega128用になってしまったので、
2313に使うときは修正お願いします。
fc04_2.c,fc04_3.cは、それぞれ
make TARGET=fc04_2
make TARGET=fc04_3
でコンパイルできます。
   2006/1/11 (Wed) 12:51:26
[名前] :   akibow
[URL] :   
[コメント] :   05.12.26 三度汎用SPIブリッジです。
ですが、使っているポートはCOM1のようですが、任意のボーレート設定ができるポートは限られているようです。一口に16550互換といってもFIFOバッファが増量されていたり任意のボーレート設定のためにプログラマブルボーレートジェネレータを内蔵していたりするものがあるようです。それらの機能がない場合、あってもドライバが対応していない場合には任意設定ができないということかもしれません。
  
▲このページのトップ  

Yahoo!ジオシティーズ


inserted by FC2 system 1