2009/8/14 (Fri) 12:27:23
|
[名前] : senshu
|
[URL] :
|
[コメント] : AVRマイコンのDWENヒューズビットの件
http://www-ice.yamagata-cit.ac.jp/forum/viewtopic.php?t=89
↑のURLでDWENの扱いを検討中です。RSTDISBLとほぼ 同様に配慮が必要なことを確認しました。
AVRマイコンを使っている方々から、ご意見をいただければ幸いです。
|
|
2009/8/14 (Fri) 12:41:36
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 何かの時行ってしまう、 一方通行は、予備がないときとても困りました。 TADさんの2313専用リセッターなんかも有れば便利ですが、 どんなチップでもと言うとdoragon何かが要って、 或いはchanさんのHVライターが必要に思います。 (chanさんのHVは動作が不順で失敗でした)
|
|
2009/8/14 (Fri) 13:38:39
|
[名前] : senshu
|
[URL] :
|
[コメント] : 実績のあるFUSEデータを書く限り、心配はありません
しかし、DWENビットをプログラムすると、ISP不能に なることを確認しました。
誤ってISP不能にする可能性は十分にあると考えています。 そこで、この手の書き込み指示を検出し、警告を 出したいと思っています。
他のFUSEビットで同様のものが無いかを調査中です。
|
|
2009/8/13 (Thu) 19:47:49
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >ノンノさんはavr-gccには、あまりよい印象がないようですね。 ハイさんざん悩みましたので・・ >ノンノさんは、最終目標を最初からやろうとしている気がします。 おっしゃるとおり最終目標から持っていって全体を決めています。 もう余り時間がないのではと焦っています、どうも言語野が退行しているような感じです。 >光センサに何を使うか知りませんが、デジタルならそのまま、 5桁のダイナミックレンジ周波数で来ます。 >C30コンパイラでは以下の行はエラーにはなりま せんでした。 そうですよね、確か以前は出来たと思っていたのですが、 少し前のことが思い出しにくいのです。 しかし何かの原因でコンパイルできないようです。 (これを少し追求、例えば他のC30コンパイラとか)
|
|
2009/8/13 (Thu) 19:57:01
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >CPU内蔵のTMRは2つを同期(協調)動作させる機構が入っていないので、・・ そうなんですか・・TMR0を高速カウンタ、TMR1を時間カウンタ、他のポートで立ち上がり(下がり、変化)エッジで TMRの同期をとれないかと思っていたのですが、Aポートは難しいようでした。 >インターバル測定回路を作ります。 TMR0に同期してTMR1をスタート一旦時間に達した後(フルカウントでなくとも良い)TMR1を止めずにTMR0の同期で TMR1を止めてその総計同士を比較する・・とか。
|
|
2009/8/13 (Thu) 20:17:57
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 今日は隣の市まで病院、徳島うどん、買い物(積分球の部品)、コインランドリーに行ってきて帰ったら、 水道が来ていました。
後閑さんのPIC16Fの本も改めて買いました、 よく読んでみると、判りやすく書いてあります。
|
|
2009/8/14 (Fri) 12:34:17
|
[名前] : senshu
|
[URL] :
|
[コメント] : CCS-Cの移植には多くの注意が必要です
>後閑さんのPIC16Fの本も改めて買いました、 >よく読んでみると、判りやすく書いてあります。
解説は平易なのですが、C言語のサンプルはCCS-Cで書かれている ので、他のCコンパイラとは表現が大きく異なります。 HiTech-Cなどへの移植にはかなりの作業が必要です。 ご注意ください。
|
|
2009/8/14 (Fri) 12:43:00
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >他のCコンパイラとは表現が大きく異なります。 HiTech-Cなどへの移植にはかなりの作業が必要です。
確かに大分違っていて、悩んでいます。
|
|
2009/8/14 (Fri) 13:33:29
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : CMDからSDCCは動作しました。 MPLABからSDCCを指定して動作させるとerrに成りファイルが出来ませんでした。
何かの設定が未完のようです。
|
|
2009/8/14 (Fri) 13:43:45
|
[名前] : senshu
|
[URL] :
|
[コメント] : PIC16F用の開発には sdccはお勧めできません
他のCコンパイラの採用をお勧めします。
理由は、サポートしていない構文が多く、生成するコード の質も不十分です。
PIC16Fのアーキテクチャは、C言語に向いていないのです。 商用のコンパイラは、多大な努力を払ってこの制約を 回避していますが、その結果、無償版ではその利点を 享受できません。
|
|
2009/8/14 (Fri) 14:23:36
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : > PIC16F用の開発には sdccはお勧めできません 他のCコンパイラの採用をお勧めします。 HI-Tech-Cも検討してみます。
http://homepage1.nifty.com/gigo/pic/ これを見て置き換え方など研究します。 (まずはコンパイラが動かないと関数演算が出来ません)
|
|
2009/8/14 (Fri) 14:31:48
|
[名前] : kuga
|
[URL] :
|
[コメント] : HI-Tech-Cなら
http://www.ne.jp/asahi/air/variable/ エアーバリアブルさん。
|
|
2009/8/14 (Fri) 14:53:36
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : CORDICを使って大幅に計算を省略・・ http://www.initialt.org/float/cordic.html こういう方式が好きです。
|
|
2009/8/14 (Fri) 14:58:00
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : エアーバリアブルさん ここも前に見たんですが、良く判りませんでした。 もっとじっくり見てみます。
2週間の制限を越えてカボチャの馬車にならないように・・
|
|
2009/8/12 (Wed) 11:07:53
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 改題C言語(PIC16F648A) 7segキャラクターの固定領域を作る場合、 「const unsigned char segtb[] = { /* セグメントデータテーブル正論理 */ 0x3F, 0x06, 0x5B, 0x4F, // 0,1,2,3 」 とするとerrに成りました。 同じ事を他の方は次のようにされているのを知りました 「static byte get_7segment_data(byte n) {
/* a -- b| |c --d e| |f -- g */ enum { SEGA = 0x04, SEGB = 0x02, SEGC = 0x08,
switch(n) { case 0: return SEGA+SEGB+SEGC+ SEGE+SEGF+SEGG; case 1: return SEGC+ SEGF ; case 2: return SEGA+ SEGC+SEGD+SEGE+ SEGG; 」 これらは固定領域の使い方が違うのでしょうか? switch文の場合ブランチが増えてテーブル引きより手間が掛かるのではと思っていました。
|
|
2009/8/12 (Wed) 12:53:00
|
[名前] : senshu
|
[URL] :
|
[コメント] : 両方書いて、動作速度を比較してみましょう
掛け算用のハードを持たないPICマイコンでは、 配列のアクセスは速いとは限りません。
実際に書いて動作速度を比較するのが良いと思います。 ハードが無くともシミュレータで十分評価可能です。
|
|
2009/8/12 (Wed) 15:30:41
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >配列のアクセスは速いとは限りません。
PICの場合は「RETLW」でもって来るのと、 ポインタでアクセスのがあるようです。 C言語でこの辺りを意識的に示す事は出来るのでしょうか?
|
|
2009/8/12 (Wed) 16:21:52
|
[名前] : senshu
|
[URL] :
|
[コメント] : 細かなことを気にせずに書けるのが高級言語の利点です
速度のことは気にせずに、目的とするコードを書いて ください。どんな実装であっても、7セグの表示で問題 になるほどの速度低下はありません。
まずは動作するコードを書くことです。
|
|
2009/8/13 (Thu) 02:04:49
|
[名前] : kuga
|
[URL] :
|
[コメント] : コンパイラ次第だが、多分できないでしょう。 C言語でこの辺りを意識的に示す事は出来るのでしょうか? あるソースからどんな機械語を出力するかは、コンパイラまかせです。 コンパイラが限定されないと検討すらできませんが 手持ちCCS-Cにはそんな指定方法はありません。 多分他のコンパイラにも無いと思います。
|
|
2009/8/13 (Thu) 09:24:20
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : sdccとPICについて検索してみました。 約半数がsenshuのページでした。 ざっと読んでみたんですが、否定的なのか肯定的なのか判断できませんでした。
他の方が通して居られるソースをやってみますとエラーが出ます。 内容を調べてみますと、どうもうちのパソコン環境とsdccの 不整合があるようで、エラーが出ます。 これは後から別に解消するとして、 難しい関数などの計算は、C言語などでこなし、特定の入出力機能は アセンブラで面倒を見る方法などは考えられますでしょうか?
|
|
2009/8/13 (Thu) 09:24:44
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 例はLED7segダイナミック表示はBポートを指定、 (液晶も検討しましたが堅牢性、暗いところでの使用などを考え、明るいところでは紫フィルターで対処、少々のフリッカーなどは我慢と言うことにしました) TMR0は外部周波数計測、 TMR1は内部周波数計測と計測同期 両者でレシプロカル測定。 外部SWで任意点校正、測定モード切替など、
第一は光センサーによる照度計、EV(LV)値計算機、 第二は汎用周波数カウンタ、これにレシプロカル方式を応用すると、測定範囲や精度がウンと拡がって良くなります。 言語中枢に異常があるのでどうもプログラムは苦手ですが 全体的な構成方法は間違っていないのではと思いますがどうでしょうか?
|
|
2009/8/13 (Thu) 10:32:12
|
[名前] : kuga
|
[URL] :
|
[コメント] : 1chip レシプロカルカウンタ を検討したことがあるのですが、CPU内蔵のTMRは2つを同期(協調)動作させる機構が入っていないので、 外部補助回路なしでは不可能、あるいは極めて困難という結論を出しました。
|
|
2009/8/13 (Thu) 10:52:58
|
[名前] : すん
|
[URL] :
|
[コメント] : ノンノさん C30コンパイラでは以下の行はエラーにはなりま せんでした。 const unsigned char dat[] = {0x05,0x03,0x02};
最終的に速度が必要なところだけアセンブリ言語で 書く必要あるかもしれないですが、それは Cからアセンブリを呼べば済みます。
なので最初は速度は置いといてまず動くものを Cで書けばいいと思います。 ノンノさんは、最終目標を最初からやろうと している気がします。
|
|
2009/8/13 (Thu) 11:05:43
|
[名前] : kuman
|
[URL] :
|
[コメント] : プログラムのスキルが低く、かつシミュレーションもできないので、
構想を思いつくと部分的に実験することにしています。 まず2桁のLED表示回路を組み立て、特定の数値(文字列)を表示します。成功すれば、必要な桁に拡張します。
周波数カウントを1秒間について計数できる回路をつくり、先のLEDに表示します。
レシプロカルは十分理解できませんが、外部トリガによるインターバル測定なら可能かと思います。 インターバル測定回路を作ります。
光センサに何を使うか知りませんが、デジタルならそのまま、アナログならAD変換でデジタルにすればカウントできるのではないでしょうか。
いずれにしても精度が必要になるならアマチュアの手に負えるものではないと思います。
部分を完成してから、次の部分を考える、のが私の方法です。 もし、参考になれば。
|
|
2009/8/13 (Thu) 11:14:16
|
[名前] : senshu
|
[URL] :
|
[コメント] : PIC16F用には sdccはお勧め出来ません。
ありがたいことに数名の方々がコメントされています。 ほぼ同じ意見のようです。
更に加えますが、sdccはPIC16F用のCコンパイラとして 利用するには完成度が低すぎます。PIC18F用なら使えない こともありませんが、16F用に使うとコンパイラの完成度の 低さに泣く事になると思います。
sdccをPIC16F用のコンパイラとして利用できるのは 限られたエキスパートだけだと思います。
|
|
2009/8/13 (Thu) 11:22:34
|
[名前] : senshu
|
[URL] :
|
[コメント] : PIC24Fシリーズの採用を検討してみてはいかがですか?
PIC16F648Aを検討しているようですが、PIC16F用の無償で 使えるコンパイラは、どれも制限のあるものばかりです。
チップの価格はPIC24Fでもあまり違いはなく、それよりも 高性能で完成度の高いCコンパイラ(PIC24FのCコンパイラの 基本はGCCです)が使える方が遥かに効率的です。
PIC16Fでも商用のCコンパイラはそれなりの機能を持って いますが、実用に使えるのは有償版に限られます。
数百円のコストは開発環境の効率化で即、回収できます。 ご検討ください。
もちろん、GCCが使えるAVRも候補となりますが、ノンノさんは avr-gccには、あまりよい印象がないようですね。
|
|
2009/8/11 (Tue) 16:48:32
|
[名前] : kuman
|
[URL] :
|
[コメント] : 拙作HAGを
hidspxの最初の一歩に加えました。 http://www.geocities.jp/kuman2600/o16use_hidspx.html
|
|
2009/8/11 (Tue) 21:21:51
|
[名前] : senshu
|
[URL] :
|
[コメント] : avrsp, avrspx, hidspxとの関係の解説をありがとうございます。
このことは、私なりに書いているつもりですが、正確に 理解して使っている方はほとんどいないようです。
事実、hidspxは多くのAVRライタをサポートしているのですが、 HIDaspx以外でhidspxを利用する人は少ないようです。
hispxは独立したコマンドであり、HIDaspx専用ではありません。
今回のRSTDISBLの対応をはじめ、おそらく数十を超える 改良を施した hidspxを再発見していただければと思います。
|
|
2009/8/12 (Wed) 10:08:30
|
[名前] : senshu
|
[URL] :
|
[コメント] : 初期のHAGとhidspxGの違いを書きました
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHID_reports07
HAGを元にしましたが、私なりの考えで機能を追加、修正しています。
混乱を避けるため、名前もhidspxGとしています。 kumanさんの解説ページと併せて参照していただければ 幸いです。
|
|
2009/8/10 (Mon) 17:24:37
|
[名前] : kuman
|
[URL] :
|
[コメント] : hidspxの最初の一歩
ダウンロードからコマンドプロンプト窓での操作の基本を書いてみました。 ご意見をいただければ幸です。 http://www.geocities.jp/kuman2600/o16use_hidspx.html
|
|
2009/8/10 (Mon) 20:57:53
|
[名前] : kawana
|
[URL] :
|
[コメント] : hidspxの最初の一歩を実行してみました。 何時も、へたなTypeですがKey入力していましたが、 ドラッグ & ドロップがDOS窓でも出来る事を知りました。hidspx.batを作成していたので、hidspx.batを 選択し、-rfなのに-r実行してしまい、迷いました。 良くFileName確認(.exe .bat)する必要が有りました。アイコンを注視すれば、判るのですが。 マニュアルを文書化する時、美のセンスが少し必要、 図の貼り付けなど、少し面倒な事解りました。 赤矢印線書くにしても、1作業増えますね。 感じの良い絵図と思いました。
(返信に書き換えたので時間が変わっています。kuman)
|
|
2009/8/11 (Tue) 04:11:13
|
[名前] : kawana
|
[URL] :
|
[コメント] : また、お前の好みと思わないで下さい。 さらに、分かり易い文字BOXはと思った点は、 開いたは、開くと、に 実行したは、実行すると、に する案は、どうでしょうか。
|
|
2009/8/11 (Tue) 07:30:28
|
[名前] : senshu
|
[URL] :
|
[コメント] : 細かな表現を指摘しても発展は無いと思います。誤った表記以外は 作者の表現方法として認めるべきです。
しかし、全てをゼロから書けば、自分の気に入った表現で書くことが できます。
ぜひ、kawanaさん版を書いてみてください。
|
|
2009/8/10 (Mon) 09:13:52
|
[名前] : kuman
|
[URL] :
|
[コメント] : kawanaさんへ。 waitについて。
過去にインラインアセンブラに興味を抱いて、waitルーチンを書いていました。 しかし、インラインアセンブラの書き方がWINAVRのバージョンによって変わったのかコンパイルできないことになりました。ラベルの規制が変わったようです。
util/delay.hの仕様を知り、最近のプログラムではこれを使っています(2313PWM簡単な実験)。 古いプログラムではインラインアセンブラが残っています(ソフトウエアによるPWMの方)。これは今のWINAVRは通らないかもしれません。
util/delay.hの _delay_ms() は設定範囲が狭いためと変数による指定ができない(プログラムが膨大になる)ために、これを含むサブルーチンとして使っています。 この_delay_ms() は 0.1 の様な定数も書けますので便利です。
|
|
2009/8/9 (Sun) 11:28:10
|
[名前] : kuman
|
[URL] :
|
[コメント] : 初心者さんとkawanaさんへ
Tiny2313のPWMによるLED点滅のリストを挙げました。 PWM制御は、何を(LED、モータ など)を何で(センサ、スイッチ、タイマ など)制御するかがポイントだと思います。 http://www.geocities.jp/kuman2600/o15pwm.html
|
|
2009/8/9 (Sun) 11:43:24
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanさんの、言われる通りです。目的が明確でないと 適切な方法の議論は、出来ませんね。 目的の実現には、環境、条件、 Deviceの選択、プログラミングについて検討されなく てはならないですね。
|
|
2009/8/9 (Sun) 14:16:20
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : hitechCを入れていたんですが、liteモードではなかったらしいので、アンインストールしてインストールし直しました。 ソースを書いているうち、PICとAVRの両方を書いておいて #if〜#endifなどで自動的に選別したりマーキングで 片方を選択したりと、使い分けられるソースは書けるものでしょうか。
|
|
2009/8/9 (Sun) 14:35:29
|
[名前] : senshu
|
[URL] :
|
[コメント] : アーキテクチャが似ていれば可能です
>ソースを書いているうち、PICとAVRの両方を書いておいて >#if〜#endifなどで自動的に選別したりマーキングで >片方を選択したりと、使い分けられるソースは書けるものでしょうか。
でも、2つのソースを単に並べて書くだけなら、あまり効果はありません。
特に、コンパイラの作成者が異なると使える表現も 異なる場合が多く、#ifdefを多用する必要が生じ、 BUGの温床になる可能性があります。
しかし、同一の作成者による場合には、大いに活用可能だと思います。
|
|
2009/8/9 (Sun) 14:44:36
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 例えば こんな具合ですか? #define pic 0 #if pic #defin avr 0 #else //使えたか? #defin avr 1 #endif
//#define avr 1
/*-------------*/ while (1){ /*-------------*/ #if avr DDRB = 0x00; // オンセグメントのみ出力ポートに PORTB = 0x00; // 全桁OFF? #endif #if pic TRISB = 0xFF; // オンセグメントのみ出力ポートに PORTB = 0x00; // 全桁OFF? #endif dsdtr = dbuf[bufp]; //データバッファからコード取り出し csdtr = segtb[dsdtr]; //コードをカソードセグメント変換 egtr = degtb[bufp]; //アノード、デジット位置 /*-------------*/ if((csdtr & degtr) == 0x00){ PORTB &= ~(1 DIG_SIZE){ // 表示桁を更新 bufp = 0; // 表示桁初期値設定 桁走査データ初期設定 } /*-------------*/ // 1msec遅延 TCNT0 = 0x00; while( TCNT0
|
|
2009/8/9 (Sun) 14:50:41
|
[名前] : senshu
|
[URL] :
|
[コメント] : 移植性の実現は、#ifdef #endif ではありません
#ifdef #endif は便利ですが、多少の違いを乗り越えるのには 有用でも、PICとAVRの違いを解決するのに向いてるとは思えません。
私なら同じ働きをする関数を別のソースに記述し、本当に共通で使える 関数のみをシェアします。
書いてみるとわかりますが、#ifdefを多用したコードは、かなり 読みにくいものです。
|
|
2009/8/9 (Sun) 14:54:17
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 書き方を間違えたようで、次が抜けていました。 /*-------------*/ if((csdtr & degtr) == 0x00){ PORTB &= ~(1<<PB7); // フロートビットL }else{ PORTB |= (1<<PB7); // フロートビットH } /*-------------*/ #if avr DDRB = csdtr | degtr; // オンセグメントのみ出力ポートに PORTB = ~csdtr | degtr; // 桁走査データと合成 セグメントと桁走査を出力 #endif #if pic TRISB = ~(csdtr | degtr); // オンセグメントのみ出力ポートに PORTB = ~csdtr | degtr; // 桁走査データと合成 セグメントと桁走査を出力 #endif degtr <<= 1; // 桁走査データ更新
/*-------------*/ if(++dig_no > DIG_SIZE){ // 表示桁を更新 bufp = 0; // 表示桁初期値設定 桁走査データ初期設定 } /*-------------*/ // 1msec遅延 TCNT0 = 0x00; while( TCNT0 < T1MSEC ); // 8μsec*125=1msec待ち /*-------------*/ }
|
|
2009/8/9 (Sun) 15:01:23
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >本当に共通で使える関数のみをシェアします。 例えば PIC8x7LED.c と avr8x7LED.c とかいて それぞれのMPUライブラリに加えるとかですか?
|
|
2009/8/9 (Sun) 19:10:59
|
[名前] : senshu
|
[URL] :
|
[コメント] : 共用化する方法
>例えば PIC8x7LED.c と avr8x7LED.c とかいて >それぞれのMPUライブラリに加えるとかですか?
教養化するには、それぞれのIOポート名を直接利用するような書き方は 避ける必要があります。PORTAが無いマイコンもあるでしょうし、 PORT1という名前かもしれません。こうした名前が不要な関数を用意し、 それを使うということです。
そうすれば、マイコンが変っても同じI/Fで関数を利用することができます。
初めはこうした記述が難しく感じるでしょうが、汎用化には没個性が必要な のです。そのため、特異な個性が失われることもあります。
書き方に工夫し、個性を引き出しながら汎用性を実現する、それが技術者の 腕の見せ所です。
|
|
2009/8/9 (Sun) 19:57:16
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : >汎用化には没個性が必要なのです。そのため、特異な個性が失われることもあります。
この点にこだわっています。 カウンターとして使用するには、TMR0、TMR1をカウンター関係に使って・・と思っています。 としますとポートが限られるので、RBポートに固定しようと思ったのですが、特異な個性を無くしても結果が得られるものでしょうか?
|
|
2009/8/10 (Mon) 03:45:55
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanのサイトは、初心者〜のデ−タバンク的存在 大変綺麗で、解り易い内容になっていると思います。 ただ、一つ希望は、相手レベルにも依りますが、 waitル-チンにASMが有りますが、wikiのwaitus、Waitmsを使用するのは、どうでしょうか。条件さえ 考慮すれば、かなりの精度で使用可能でした。 kuga氏に教えて頂きましたが、URL忘れました。
|
|
2009/8/10 (Mon) 04:19:09
|
[名前] : kawana
|
[URL] :
|
[コメント] : util/delay.h 有りました。下記に記事有ります。
http://avrwiki.jpn.ph/wiki.cgi?page=AVR%A4%E8%A4%AF%A4%A2%A4%EB%BC%C1%CC%E4%28FAQ%29#p17
|
|
2009/8/11 (Tue) 11:13:42
|
[名前] : senshu
|
[URL] :
|
[コメント] : ここまでわかっているなら、実際にやってみましょう。
>この点にこだわっています。 >カウンターとして使用するには、TMR0、TMR1をカウンター関係に使って・・ >と思っています。 >としますとポートが限られるので、RBポートに固定しようと思ったのです >が、特異な個性を無くしても結果が得られるものでしょうか?
OSはこうした点を仮想化し、一定の成果を得ています。実際に書いて 実機で確かめてみることをお勧めします。
|
|
2009/8/11 (Tue) 21:36:03
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 最初の題からは少しはずれてきているので改めた方がよいでしょうか? OSはこうした点を仮想化し、一定の成果を得ています。実際に書いて実機で確かめてみることをお勧めします。
挑戦はしたいと思いますが、どの様に書くのかさっぱり判りません。 タイマーを2個書いてもTMR0をシェアリングしているだけで カウンターとして使ったり、レシプロカルカウンターにするなど出来ないのではと思っています。
|
|
2009/8/8 (Sat) 23:32:17
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 出も下の方が面白いことが書いてあったり・・
|
|
2009/8/9 (Sun) 04:29:39
|
[名前] : kawana
|
[URL] :
|
[コメント] : ノンノさんおはようございます。と言っても、ノンノ さんは、まだ就寝中。ぐうぐう。? 出も下の方が面白いことが書いてあったり・・ ? 私の頭の分析、一時回答は、TOPに書かれるとは、限らない。スタ−トのQ投稿も見ると、面白い事が書いて 有るかもの意味に解釈しました。これで、OK?
|
|
2009/8/9 (Sun) 05:32:43
|
[名前] : kawana
|
[URL] :
|
[コメント] : 第二分析完了 ノンノさんは、この様に書きたかったのだ。 下に、Timerの事、関連事項を書きましたので、読んで 下さいね。の意味だったのですね。? 読んで頂けなかったら、無意味に成りますね。 初心者さん。その後、研究は、進みましたか? (この言葉が、失礼に当たらぬ様願っています。)
|
|
2009/8/9 (Sun) 10:30:38
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 初心者さんが素直な方で下の方は見ることが無くすんでしまうか、 或いは研究熱心な方で下の方を見るか、 さてどちらなんでしょうか? kawanaさんは何を考えて、このようなことを書かれるのですか?
|
|
2009/8/9 (Sun) 11:14:33
|
[名前] : kawana
|
[URL] :
|
[コメント] : 出も下の方が面白いことが書いてあったり・・ この言葉から、ノンノさんの言いたい事が想像つかなかった。
|
|
2009/8/9 (Sun) 18:09:34
|
[名前] : kawana
|
[URL] :
|
[コメント] : 自分の書いた質問に対するスレッドは、最終まで読んでおくというのが原則と思いますが。
|
|
2009/8/8 (Sat) 23:31:39
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : そうですね、下へ行ってしまいます。
|
|
2009/8/8 (Sat) 12:49:37
|
[名前] : kawana
|
[URL] :
|
[コメント] : 初心者さんへ、次回の投稿は新規投稿の方がGood? 下の方へ行ってしまいます。
|
|
2009/8/8 (Sat) 10:11:03
|
[名前] : kawana
|
[URL] :
|
[コメント] : hidspx-GUIで? Command line Option と Command Execute(for Expa rt)が有りますが、使い分けは、どうするのですか? kumanさんの、負担、最小で教えて下さい。
|
|
2009/8/8 (Sat) 11:47:09
|
[名前] : kuman
|
[URL] :
|
[コメント] : 私自身使っていないのですが、 Command line Option はキー機能に付加するもので、 -d10 -ph など hidspxのコマンドに付け加えるものをかきます。 -d10を書いて、読み出しボタンを押すとディレイ10で読み出されます。
これに対してCommand ExecuteはGUIを使わずにコマンドプロンプトに書くのと同じ文法で書くものだったと思います。 試しに hidspx -r を実行してみてください。
すみません。検証していません。
|
|
2009/8/8 (Sat) 12:41:44
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanさんありがとうございます。 だいたい理解しました。 Command line Optionは、ボタン操作で実行する時の 専用のオプションか?後で、試してみます。
|
|
2009/8/7 (Fri) 10:02:57
|
[名前] : senshu
|
[URL] :
|
[コメント] : hidspxにRSTピン無効化のチェックを追加しました
kumanさん、こんにちは。
いくつかのAVRマイコンはRSTピンをIOに割当てることが でき、それを行うとISPが無効になります。
似たFUSEビットにSPIENがありますが、hidspxでは 元々、このビットを無効化できない仕様です。
RSTピンのIO化は少ピンのマイコンには魅力的ですが ISP的には大きな障害となっていた可能性があります。 そのため、その対策を組み込みました。
最新のhidspxを入手し、評価して感想等をいただけれ ばと思います。ISPが無効になって困ることが無くなれば AVRの評価は更に高まると考えています。
|
|
2009/8/7 (Fri) 11:54:07
|
[名前] : kuman
|
[URL] :
|
[コメント] : senshuさん、ありがとうございます。
サイトで話題になっているのを読ませていただいてました。 私のようなアマチュアではresetピンを犠牲にしてまで使うことはないのでセットしないように注意しているところです。(パラレルライタがあれば安心ですが、これのためだけでは負担が大きすぎます)
SPIENはavrsp時代からセットできないことは知っていました(便利だと思っていました)。
数十個のAVRを何度となく書き換えましたがRSTピンの間違いはまだ経験していません。
便利だけれどパッチをどう当てるのかな?と思いながら読んでいました。 「評価」するというのは、プログラムを信用してIO化のセットを書く、ということになります。(ちょっと恐い)
信用して実行するしか無いのですが、パッチを当て損なったらオダブツかな?
|
|
2009/8/7 (Fri) 14:16:03
|
[名前] : kawana
|
[URL] :
|
[コメント] : 下記、Messageを貰いました。御参考までに この書き込みの直後(今朝の10時頃)に、 hidspx-20090807.zipを公開しています。
|
|
2009/8/7 (Fri) 14:57:43
|
[名前] : senshu
|
[URL] :
|
[コメント] : ATtiny2313, ATiny26, ATmega168では、エラーチェックが 正しく行われることは確認済みです。
不安なら、ソースパッチで行っていることを確認していただき、 後は信頼してもらうしかないですね。これはGUIでFUSEを書き込む 処理を書く場合でも同じような不安はあると思います。
それでも心配なら、テストをする必要もありません。
よろしくお願いいたします。
|
|
2009/8/7 (Fri) 15:26:50
|
[名前] : kuman
|
[URL] :
|
[コメント] : とりあえずTiny2313で
試しました。安心して使えそうです。 パッチを当てるとなると心配でしたが、完成していただいたので操作の心配なく使えました。
|
|
2009/8/9 (Sun) 07:47:55
|
[名前] : senshu
|
[URL] :
|
[コメント] : Atmel社のAVRISPにも同様の機能がある
この機能を追加後に、RSRDISBLに関して調べてみると Atmel社のAVRISPにも同様のチェック機能があることを 知りました。
Atmel社でも、このFUSEの設定ミスで泣く人は少なくないと 考えている結果だと思います。
この機能は、多く方に有用と考えています。
|
|
2009/8/7 (Fri) 07:56:03
|
[名前] : kuman
|
[URL] :
|
[コメント] : 初心者さんとkawanaさんへ
ハードのPWM機能を使うとPORTと数も制限されますが、 ソフトなら可能です。 ONとOFFの時間を変えて繰り返しポート出力すれば良いことになります。
過去に8個のLEDを時間をずらせて蛍の様に点灯したことがあります。
データを調べておきます。
初心者さん、pwm out: PortB 3 はうまくいきましたか? データシートには毎回泣かされています。 一生懸命理解しても次の時は忘れています。 頑張ってくださいね。
|
|
2009/8/7 (Fri) 05:18:31
|
[名前] : kawana
|
[URL] :
|
[コメント] : おはようございます。 4個のLEDを別々にpwm制御する。 Timerが4つ有れば可能では、 tiny2313では、3個しか有りません。? A B C 1個は、どれかをTRでInv.Drive (LED ホタルを想像しました。)
|
|
2009/8/5 (Wed) 16:34:35
|
[名前] : 初心者
|
[URL] :
|
[コメント] : 教えてください。 pwmでLEDを強弱に点灯したいのですがどうしたらいいですか
漠然としていますが
attiny2313----R----LED-----GND
上のようなシンプルな回路構成で
|
|
2009/8/6 (Thu) 00:44:18
|
[名前] : kuman
|
[URL] :
|
[コメント] : pwmでのLED点灯は
Tiny2313ではまだ実験していません。 Tiny26と90S2313での実験はレポートしていますのでそれを参考にしてください。 http://www.geocities.jp/kuman2600/k2adc.html http://www.geocities.jp/kuman2600/ledpiko.html
データシートを読み直して、レジスタに必要な値をセットするわけですが、実験のハードを組み立ててデータシートを調べるのに、私の場合は、ほぼ1日かかってしまいます。 すぐに回答できなくてすみません。
|
|
2009/8/6 (Thu) 02:32:36
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanさんの説明箇所を参照して実験してみて下さい。成功体験してみて下さい。 素晴らしい、電子の世界が見えてくるでしょう。 PWM(Pulse W? Modulation)? Pulseの1で点灯、0で消灯、?LEDの接続によっては? 50Hz 20ms 周期ですね。 10ms on 10ms offのProgram-----@ 1ms on 19ms 0ffのProgram-----A これなら、直ぐ組めますね。 次は、timerを使用して実現することですね。 AVRの日本語マニュアルの有るところ知っていますか? (失礼な表現有ったら、許して下さい。)
|
|
2009/8/6 (Thu) 04:15:14
|
[名前] : kawana
|
[URL] :
|
[コメント] : ATtiny2313マニュアル日本語発見しました。
http://reef.path.ne.jp/~hero/pdf/tiny2313.pdf
ATtinyXX VS ATtiny2313 ?
ATnote Replace ?
|
|
2009/8/6 (Thu) 04:28:57
|
[名前] : kawana
|
[URL] :
|
[コメント] : 変な体に成ってしまった。 9時頃寝ると、3時頃起きてしまう。 最近、怒りっぽく成った。暑くて寝れないせいかな? 早く、このじめじめ、飛んでゆけ。 早く、真夏の太陽来い。来てちょうだい。 農業に影響が出ているようです。 全てが、悪い方向へ向いている様な気が。 Programの終了に、有るものは、何。?災害、飢餓、etc.気候変動だら、しょうがない??
|
|
2009/8/6 (Thu) 17:33:51
|
[名前] : kuman
|
[URL] :
|
[コメント] : 毎日の仕事が
無くなって1年になりました。 半世紀を超えて仕事などにでていた体が、行き場が無くなると調子を保つのが大変です。
日課を作っているのですが、やはり時間にはルーズになってしまいます。
これからどうしよう。
|
|
2009/8/6 (Thu) 18:20:36
|
[名前] : kawana
|
[URL] :
|
[コメント] : 体調維持、頭調維持大変 そうですか、もう1年ですか、1年経過、早く感じたのではないですか。私は、この趣味で時間を潰せますが、内の奥さんは、仕事が見つからず、イライラ、 ブッブツです。 どうしましょうといったところですね。体調維持と 頭調維持に努めて下さい。
|
|
2009/8/6 (Thu) 21:30:32
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 毎日が日曜日になって10年ほどになります。 AM4時頃まで起きていたり(大概は2時頃) 昼間で寝ていたりと、成っています。
時間はあっても、根気が足りません。
|
|
2009/8/7 (Fri) 03:15:50
|
[名前] : 初心者
|
[URL] :
|
[コメント] : pwm out: PortB 3
以外の任意のポートをpwm制御できないのでしょうか たとえば、4個のLEDをpwm制御するとか
データシート難しい
|
|
2009/8/7 (Fri) 05:07:43
|
[名前] : kawana
|
[URL] :
|
[コメント] : ノンノさんは、10年ですか、随分前からですね ブッブッ言っていても、しょうがないので、 元気に、やりましょう。
|
|
2009/8/7 (Fri) 08:43:35
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : avrでもできると思うのですが、 PICの高級機種dsPIC30とかですと専用PWMがあります。 チープな機種でしようとすると、どっかが引っかかってきてなかなか難しいものです。
具体的に幾つのポートで、どの様にするとか判った方が、 みなさまも答えやすいと思います。
|
|
2009/8/7 (Fri) 09:02:31
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : attiny2313でしたらPB2、PB3、PB4、PD5が 関連を持ちながらですが4chのPWMに使えます。
|
|
2009/8/7 (Fri) 09:07:04
|
[名前] : ノンノ
|
[URL] :
|
[コメント] : 次ぎにPICですが凄いソフトPWMがあります。 http://www.piclist.com/techref/microchip/pwm.htm
|
|
2009/7/31 (Fri) 04:12:45
|
[名前] : kawana
|
[URL] :
|
[コメント] : 毎度お世話様です。宜しくお願い致します。 HIDaspxプログラマ4台目の事ですが D-Pullup抵抗1.5KがVccでなくPD5に接続されています。Firmなど変更は、必要無しなのでしょうか?
|
|
2009/7/31 (Fri) 08:47:02
|
[名前] : kawana
|
[URL] :
|
[コメント] : WS NAK #214回路図確認したら、PD5から2.2Kで接続 されていました。質問取り下げます。済みません でした。
|
|
2009/7/31 (Fri) 09:12:49
|
[名前] : kuman
|
[URL] :
|
[コメント] : 2.2kとPD5
原典はVcc(3.3V)から1.5kとなっているのですが、 再起動時にUSBの挿抜を必要とするようです。
これをつないだままでも動くようにPD5をプログラムしたのがsenshuさんの工夫だったと記憶しています。
なお、Vccが5Vの時は1.5kより2.2kが適当だと判断されて変更となっています。
|
|
2009/7/6 (Mon) 16:59:44
|
[名前] : kawana
|
[URL] :
|
[コメント] : Turbo Delphi起動出来ました。まずは、kumanさんが 作られたHagのソ−スファイルを読み込んで見たいのですが、どうするのですか?
|
|
2009/7/6 (Mon) 17:24:34
|
[名前] : kawana
|
[URL] :
|
[コメント] : Kumanさん作成の97Hagのソ−ス見ること出来ました。 ありがとうございます。 Deliphi7の学習コ−ス本が有りますので、基礎と例題を勉強してゆきます。解らなくなった時、教えて下さい。
|
|
2009/7/5 (Sun) 20:25:56
|
[名前] : kawana
|
[URL] :
|
[コメント] : Delphi6を勉強したくなりました。Delphi6をInstall して勉強しておきますので、hagのCompileの方法教えて下さい。お願い致します。
|
|
2009/7/6 (Mon) 06:59:56
|
[名前] : kawana
|
[URL] :
|
[コメント] : Delphi7の勉強本を買い、installしましたが、期限切れになっていました。TurboDelphiで勉強したいと 思います。宜しくお願い致します。
|
|
2009/7/6 (Mon) 07:11:45
|
[名前] : kawana
|
[URL] :
|
[コメント] : TurboDelphiに先立ってInstallするFileのZipは、 どこに有るのですか?
|
|
2009/7/6 (Mon) 08:59:32
|
[名前] : kawana
|
[URL] :
|
[コメント] : Turbo DelphiもImstallから2ヶ月とかの期限は、 有るのですか? インスト−ルに先立つてインスト−ルファイル? 窓の杜 PrereqsJp.zip 251MBですか?
|
|
2009/7/6 (Mon) 09:23:25
|
[名前] : kuman
|
[URL] :
|
[コメント] : turbo delphi のインストール
PCの性能が低く使えないのでアンインストールしてしまいましたが、次のようだったと思います。
有効期限は約100年。(二度死ねる!)
事前にインストールするファイル群は PrereqsJP.zip です。 これでgoogleを探すと次のサイトがありました。参考になると思います。 http://www.forest.impress.co.jp/lib/dl_other/t/turboexplor/PrereqsJP.zip_dl.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20061127/254990/?P=3
|
|
2009/7/6 (Mon) 10:56:53
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanさんありがとうございます。 これで、ようやくInstall出来そうです。
|
|
2009/7/6 (Mon) 16:42:39
|
[名前] : kawana
|
[URL] :
|
[コメント] : 2413_bbs2006_update_2_turbo_hotfix_rollup.ZIPは、 どの様にダウンロ−ドするのですか? なにからなにまで、すみません。
|
|
2009/6/30 (Tue) 20:50:20
|
[名前] : ラジオ少年
|
[URL] :
|
[コメント] : kumanさん、早速sp03.exeを使って見ました。 プログラム書き込み以外のコマンドを実行してみましたが 快適に動作します。 私が敢えて作る必要が無くなりました。 ソースも公開されていますので、勉強の為、参考にさせて 頂きます。
|
|
2009/6/29 (Mon) 21:30:16
|
[名前] : ラジオ少年
|
[URL] :
|
[コメント] : Turbo Delphiでシンプルwebbrowserを作って(HPの例題ですが)みました。tpanel、tbotton等の使い方が少し分かりました。ちゃんと機能しました。 dos窓で使用している書き込みソフト(avrxtool32)をdelphiで使い勝手のいいvisual画面に出来ないか?なんて 考えています。 いつになるか分かりませんが、、、
|
|
2009/6/30 (Tue) 08:06:02
|
[名前] : kuman
|
[URL] :
|
[コメント] : 2つのラッパをDelphiで書いてみました
かなり以前のもので不完全なところがあります。 http://www.geocities.jp/kuman2600/n8sp03.html avrsp用です。
最近に書いたものです。 http://www.geocities.jp/kuman2600/n6programmer.html#97 avrspでなく、avrspを拡張したhidspx用です。 hidspxについては http://www.geocities.jp/kuman2600/n6programmer.html#98 をご覧下さい。
自分で書いてみると楽しいものです。
|
|
2009/7/2 (Thu) 18:59:26
|
[名前] : kawana
|
[URL] :
|
[コメント] : ラッパの意味少し理解出来ますが、hidspx.exeとの 関係が解りません。まずは、動作させて見れば良いのですが、それさえ解りません。教えて下さい。 Q1.hidspx.exeが有るデレクトリにCopyするFileは? Q2.実行方法は? Q3.GUIの実行モジュ−ル(exe?)はどれですか? よく読んで、やって見ますが、時間が有るようでしたらで結構ですので、返事下さい。
|
|
2009/7/2 (Thu) 22:53:18
|
[名前] : kuman
|
[URL] :
|
[コメント] : kawanaさんへ
ラッパはラッパー(wrapper)でラッピング(包む)するもの、のようです。 HAGは確かにプログラムですが、本質の内容はhidspx.exeを呼び出してすべてをそれに任せています。hidspxをラッピングして使うだけです。
>Q1.hidspx.exeが有るデレクトリにCopyするFileは? HAGの場合は hag.exe と hag.ini ですが、.ini は無ければ自動的に作ります(エラーは無視します)。
>Q2.実行方法は? hag.exeをダブルクリックします。
>Q3.GUIの実行モジュ−ル(exe?)はどれですか? hag.exeです。
繰り返しになりますが、hagのメニューを選択すると、それに適切なオプションを付けてhidspx.exeを呼び出しています。(その様子は画面に表示しています)
|
|
2009/7/3 (Fri) 05:55:22
|
[名前] : kawana
|
[URL] :
|
[コメント] : kumanさん御返事ありがとうございます。実行出来 感じ掴む事出来ました。 -ph -rp rp.hexで時間がかかる様でした。中断処理が 有ったらいいなと思いました。
|
|
2009/7/3 (Fri) 10:22:06
|
[名前] : kawana
|
[URL] :
|
[コメント] : Readに時間がかかると思いましたが、-d1オプション 忘れていたため、時間がかかりました。 中断処理は、必要ないと思います。
|
|
2009/7/3 (Fri) 10:34:54
|
[名前] : kawana
|
[URL] :
|
[コメント] : -ph -d1 -rp rp.hexで正常read出来ました。ありがとうございます。 SOURCEも添付して有るのだから、MESSAGE変更くらい 自分でしろと言われそうですが、 最後にComplete. or Finish.が有ると良いなと思いました。
|
|
|