●PIC・AVR 初心者のためのスレッド●

このエントリーをはてなブックマークに追加
1名無しさん@1周年
オールインワンのマイコンチップPIC・AVRについて語るスレッドです。
2あさはかマン:2001/02/06(火) 09:19
Atmel AVRのアプリケーションノートAN-204の
Binary->BCD演算がありますが、
あれ
どうやったら思いつくんでしょう・・・。
3名無しさん@1周年:2001/02/07(水) 03:33
AVRのSOP品売ってるとこ知らない?
4名無しさん@1周年:2001/02/07(水) 08:28
RSコンポネンツではAVR扱ってないけどなんでだろ。
5あさはかマン:2001/02/07(水) 12:55
>>3
若松通商で取り寄せてもらいましょう。多分高い。
>>4
最近ATMELもデリバリーが怪しくなっているせい?
63:2001/02/07(水) 15:57
>>5
取り寄せないと無いですか
値段はいくらくらいになりそうですか?
7名無しさん@1周年:2001/02/08(木) 00:11
ミスミでも買えるらしいよ
86:2001/02/08(木) 01:49
>>7
ミスミってお店の名前ですか?
何処にあるんですか?
9AVR:2001/02/08(木) 02:16
あ!?、あちょー!
あのスレからセパレートされてたのねー。
10AVR:2001/02/08(木) 02:23
>>2
> Atmel AVRのアプリケーションノートAN-204の
> Binary->BCD演算がありますが、
> あれ
> どうやったら思いつくんでしょう・・・。

今ちょっと見てみましたが、あれって昔からある Decimal Corective Addition
まんまのようですよ?
原理の発想はリレー式計数機械の時代と私は教わりましたでっせ。
(秋月のキットのCDに入ってるAN204と同じですよね?)
11名無しさん@1周年:2001/02/08(木) 02:28
さすがAVRさん
12○大理工1回生:2001/02/09(金) 02:56
>>10
どうしてできるのか原理とか知りたいのデスが
もっと詳しくきぼーん
13AVR:2001/02/09(金) 12:44
>>8
ミスミってここだと思います
HP http://www.misumi.co.jp/index1.html
半導体調達サイト http://www.ecagent.com/ecic/customer/iccindex.asp
自分会社知ってたけどまだコンタクトしたこと無いす。個人客で行ってもいいかな?
>>11
ども。いかにも分かってるみたく書いちまってお恥ずかしい限りっす。
>>12
原理つーても…。じゃとりあえず多桁のBCD同士の加算を普通のフルアダー(全加算器)でする方法分かる?
(もしZ80知ってればDAA命令、68000ならABCD命令がヒントだけど古いCPUだからな。知らねーよでもいいよ)
ところでそっちの得意はアセンブラ?ロジック?。システムのインパルス応答とかの用語は聞くのもイヤ?
148:2001/02/09(金) 13:07
>>13
AVRさんありがとう
でも半導体調達サイトに行けないの
なんで?
15あさはかマン:2001/02/09(金) 18:33
>>13
ミスミってメカ部品だと思ってました。便利かも。

>>14
もしかしてブラウザに問題があるのでは?
NNユーザの人とか
Java/JavaScriptを切ってる人ですか?
1612:2001/02/10(土) 04:06
>>13
すみません、氏らねーよの方でお願いします。
アセンブラよりかロジックが高級な気がして好きです。
秋月のキットのサンプルソフトはほとんど分かったけ
ど、このサブルーチンはむずくて保留してました。
プログラムの動きは分かるけど、それでなぜできるの?みたいな
ところを分かりたいです。
17名無しさん@1周年:2001/02/13(火) 00:35
>>13
ミスミは個人客は扱ってないと思うので、個人の場合は○○電機設計事務所(有)
とかのようにするといいらしいです。
18名無しさん@1周年:2001/02/13(火) 00:37
>>13
ミスミは個人客は扱ってないと思うので、個人の場合は○○電機設計事務所(有)
とかのようにするといいらしいです。
1914:2001/02/13(火) 00:49
>>15
>>13
行けるようになりました
いろいろ使えそうで便利ですね
>>17
そうなんですか
それでやってみます
20picer:2001/02/13(火) 19:47
PIC使いはじめました。
16F84の書き込み機械の回路図は手に入ったので、
それを参考にさせていただき無事に書き込むことが
できました。いよいよ、16F874の書き込みを行いたいのですが、
16F874に書き込ことの出きる機械の回路図ご存知の方、もし宣ければ
教えていただきませんか?
21AVR@忘れてた多謝:2001/02/13(火) 23:17
>>16
>>プログラムの動きは分かるけど、それでなぜできるの?みたいな

えーと、プログラムの構造をロジック回路的に書けばこうです。
 
                     自然二進数を入れる
                              ↓
    BCDのシフトレジスタ ← 自然二進のシフトレジスタ
            ↓
        BCDに変換されて見える
最初はBCD側のレジはカラッポで、右のレジには自然二進数が居る。
で、最上位ビットから順に、1ビットずつ、BCDレジの最下位に入っていく。
たったこれだけの動作だっつうことには同意してくれますね。
でわ「これが疑問かな?」と勝手に想像してバラバラ書きます。
22AVR(1):2001/02/13(火) 23:19
(1)自然二進⇒BCD が分からない
   (まさかと思うけど念のためね。もし気分害したら読み飛ばしてちょ)
4ビットの自然二進をBCDに変換するには、
6を足してみて、
●5ビット目がゼロなら、自然二進のまま採用。
●1になったら、足した結果を採用。
という方法がある。
実際に書いて試すと、
0  0000+0110= 0110 ⇒ 足す前の0000を採用 = 0H
1  0001+0110= 0111 ⇒ 足す前の0001を採用 = 1H
9  1001+0110= 1111 ⇒ 足す前の1001を採用 = 9H
A  1010+0110=10000 ⇒ 加算後の10000を採用=10H
B  1011+0110=10001 ⇒ 加算後の10001を採用=11H
となって確かに十進数的に見える。
5ビットもやってみると 1,0011+0,0110 ⇒ 19HまではOKだ。
で、
この「6足す方法」はうひとつの使い道がある。それはBCD同士の加算。
自然二進の加算回路でBCD加算をすると結果はメタメタなのだけれど、
それに6を足すと、あたかもBCD用回路でやったように補正される。
なぜなら、
BCD同士の加算は0〜9までを足すゆえ結果は18までにしかならない。
これは「6足す方法」の守備範囲だから、というわけ。
ゆえに何桁でもOK。BCDの数値XXXXXとYYYYYを自然二進用回路で
加算した後に66666Hを足し、各4bit区切りで上記の判定(●印)をやれ
ばよい。
で、ちょとしたCPUは親切に66Hを足してくれる命令があったりする。
Z80にはDAA(decimalAdjustiveAdd)命令、68000にはABCD命令
23AVR(2):2001/02/13(火) 23:20
(2)BCDを勝手にシフトしたら、壊れてBCDではなくなるのでは?
だいじょーぶ。
プログラムを見れば1回シフトする毎にBCD補正してる。どーいう事かつうと
BCD 0〜9(1001)を左シフトすると0〜18(10010)になる(2倍したのと同じ)。
18は「6足す方法」の守備範囲だから。これだけ。
なのだけども実は、
ここに悪知恵が隠されている。「左シフトして6を足す」のを、「シフトの前に
3を足してからシフト」にする。足した3もシフトで2倍されて6になるから同じ。
で、何が悪知恵かつーと、5ビット目で判断するのが4ビット目になって、
キャリーフラグを使わずにすむ。(例えば8ビットCPU、99H+33H=CCH)
Cフラグに桁上がりすると、まずそれを上位桁に足し込んでからシフトになる。
それに比べりゃプログラムはスッキリ書けるし、事前にCフラグをクリアとか
の、バグりやすい元凶も使わなくてよい。
で、
アトメルのサンプルプログラムもズバリこれね。
試しにシミュレータで見て下さい。(アトメルのサイトにある無料のやつで十分)
変換する数値を 8000H(十進で32768、二進では孤立の1が立ってる)として
ブレークポイントで、シフト後の所で止めて、毎回のBCDを見れば、
00001H
00002H
00004H
00008H
00016H
00032H
 ‥‥‥
16384H
32768H
と、
(自然二進ではなく)BCDで、ちゃんと倍々になってるはず。論より証拠、
自分の眼で見れば深まるぞ。
24AVR(3):2001/02/13(火) 23:21
(3) BCD用のレジスタに自然二進を押し込んでしまって大丈夫なのか?
直感で行くね。
                          自然二進数を入れる
                                ↓
     自然二進のシフトレジスタ ← 自然二進のシフトレジスタ
          ↓
       自然二進数が見える


これは何の疑問もないしょ?1ビットずつ入ってきた自然二進数は
自然二進数的なルールにのっとって倍々されていくわけです。
次に、
                          自然二進数を入れる
                               ↓
     自然二進のシフトレジスタ ← 自然二進のシフトレジスタ
      ↓ ↓… ↓ ↓
      BCD変換回路
         ↓
        BCD数が見える

これもぜんぜん疑問など湧かないっしょ?
で、ここで一発、発想の飛躍がんばってもらうところなのね。左側の
シフトレジスタとBCD変換回路をまとめて「ブラックボックス」と見るの。
入るものと出るものが同じなら途中はどーでも知らねーよっつーやつね。
で、
                         自然二進数を入れる
                              ↓
      BCDのシフトレジスタ ← 自然二進のシフトレジスタ
          ↓
        BCD数が見える

つーわけ。
2516:2001/02/14(水) 20:09
ありがとーございましたーっ!
すっげー!
(1)は、BCDって6を加算するのは知ってたけど0から9までだと思ってて
19までの事は全然でした。そっち分かってないと無理だったんですね。
(2)も全然誤解でした。BCDレジスタはシフト4回で10倍にしている処理で、
途中の3回はBCDが崩れてる?と思ってました。シミュレータで8000Hを
やったらシフト1回ごとに十進で倍々になるんでちょっとびっくりでした!
(3)はもう言うことないです!言葉ありません。僕のアタマでは一生かかっ
てもこんな設計できないだろうなー。。
説明の途中のBCD変換回路って、順序回路でなく組み合わせ回路でBCDに
する回路と思えばいいんですよね。
なんか、ガーンと叩かれた気持ちです。
 それで、もう一つだけお願いしたいんですが。まだ一つだけ気持ちに
引っかかってるのは、8000Hを二進のレジスタでシフトさせても孤立の1
(この言葉すごいヒントになりました)が崩れることなく伝搬していく、だから
任意の数値でもそのまま伝搬していく。しかしBCDのシフトレジスタでは
伝搬で1のビットが増えて広がっていきます。それに下位のビットを入れる
のなら、上位から広がって来てるビットデータと加算をしないと変になる気
がするんです。
あと、シフトは16ビットでBCD補正は15回というのもまだ分かってないです。
このルーチンって、ループ内からCALLではなくジャンプで飛び出す書き方
をしてますが伝統的にこう書くんですか。
26AVR:2001/02/14(水) 23:27
★加算するなら納得
 スルドイ。理解してるな! その通り。 で、ぢつはあの回路も
BCDレジに1bitずつ入ってくる所は加算と同じことになってるのだ。
いい?どんな数も2倍すると必ず偶数になる→偶数を二進で表すと
最下位ビット必ずゼロ→そこに加算するんだから→単に代入(シフト
イン)しても同じこと。
★+3が15回
 ゑ?最後のシフトのあと+3要らんしょ。次のシフト無いんだぞ。
最初のシフトの前も要らんのは分かるっしょ?BCDレジの内容が
ゼロだから。ついでに細かいことを言うと3回目のシフトの前までは
要らんの。まだ3足してもbit4が立たないことが明白だから。
★書き方
それは自由でしょ〜?
そう言うくせに自分もっぱら
 
  BDconv10:
    call  correct    ; add 33H and adjust
    call  shift
    dec  loop_count
    brne  BDconv10
 
だったりして(笑。
このアルゴリズムは質実剛健かつ時代を超越した風格があって
コンピュータが二進である限り世代を越えて使われ続けるっしょ。[EOF]
27あさはかマン:2001/02/18(日) 10:43
28初心者:2001/02/21(水) 09:30
これからPICを使おうと考えてる初心者です。
いろいろな種類があるみたいですが、
初心者が練習するにはどれが最適でしょうか?
29あさはかマン:2001/02/21(水) 09:57
PICは16シリーズなら
安く行きたいのであればPIC16F84、
シリアルが付いてて余裕があるのがPIC16F873、
A/Dコンバータまで使えるのがPIC16CF877と言ったところ。
何れも付加機能の差があるだけで、CPUは同じものなので、
アセンブラの組み方には違いがありません。

ただし、デバッグになれていないと組込みチップは何れも苦労するかも。

個人的には開発環境が比較的楽めな
Atmel AVRの方がお勧めと言う気もしますが。
3028:2001/02/21(水) 19:23
ありがとうございます。 あさはかマン さん。
とりあえず動作確認だけしたいのでPIC16F84で練習してみようと思います。
31あさはかマン:2001/02/22(木) 02:44
そうしたら、まずPICとセラミック発振子、
ライタ用の部品、(なければ)5Vの電源、
その他動かすために必要そうな物を買います。

忘れずにPICのピン数にあったソケットも買いましょう。
PICは回路の失敗に巻き込まれてよく壊すからです。

そして

1:適当なNPNトランジスタ(2SC1815・945とか)
2:10KΩぐらいの抵抗
3:3〜5Vで自鳴するブザー

を買っておきます。

適当なI/Oピンに10KΩの片側、、5V電源にブザーの+を繋いで、
トランジスタの
・エミッタをGND
・コレクタをブザーの−
・ベースを抵抗の残りの片側
に繋いでおきます。

I/Oピンが出力で、Hレベルになると音がでる、というわけです。

まず
最初に、I/OピンをHレベルにして、ブザーを鳴らすプログラムを書きます。

次に、ブザーを鳴らしたあとgoto $命令(でいいのか?)で
次の命令に行かないようにします。

そして、上で書いたブザーを鳴らしCPUが止まるプログラムを
サブルーチンにしておきます。

あとは、プログラムの分岐が正しく働いているのかを調べるとき、
調べたい分岐先にそのサブルーチンを呼ぶようにしておけば
分岐が行われたかどうか確実にわかります。

PICに限らず、どんなCPUでもまず、これを最初にやる事になります。
そんなわけでおすすめ。
3228:2001/02/22(木) 13:47
なるほど、詳しい説明ありがとうございます。
手元にブザーがないのでLEDを使ってみます。
もし製品にする場合、
水晶発信器とセラロックのどちらが最適でしょうか。
そんなに精度はいらないんですが、セラロックは不安定だと聞いたもので・・・
33あさはかマン:2001/02/22(木) 19:08
商品にするなら、必ずデータブックを取り寄せましょう。
そうでないと誰も「値段を教えて」くれません。

周波数誤差はセラロックが1桁以上悪くなってますが、
それでも温度範囲中で3000ppmぐらい。

それで得られる利益を鑑みないとまずいですよね?
34あさはかマン:2001/02/22(木) 19:11
しかし、製品のことを製品を作る人にはなかなか聞けないものだと
思いますがね・・・
35名無しさん@1周年:2001/02/22(木) 23:56
× 水晶発信器 ⇒ 水晶振動子
;
>>セラロックは不安定だと聞いた
聞いた本人に聴け


36名無しさん@1周年:2001/02/25(日) 17:16
CCS社のPIC用Cコンパイラ PCWの購入を考えてます。
日本の商社を経由するより直接アメリカに頼んだほうが
安く上がりそうですが、どなたかアメリカから直接購入された方はおられないでしょうか。
37名無しさん@1周年:2001/03/01(木) 09:05
16F84って何回くらいプログラムの書き込みにたえられるのですか。
38あさはかマン:2001/03/01(木) 12:42
>>37
データブックの1ページ目に書いてあります。
手元にある英語版データブック、11/99版では
「消去が1000回」、となってます。
プログラム次第ではもっと行けそうですね。
3937:2001/03/02(金) 12:56
ありがとうございます。
結構いけるんですね。
データブック取り寄せてみます。
40あさはかマン:2001/03/04(日) 09:10
取り寄せなくてもPDF。
ttp://www.microchip.co.jp/
41名無しさん@1周年:2001/03/05(月) 23:42
あV
42名無しさん@1周年:2001/03/06(火) 00:17
コメン
AVR2343を国内で売っている所はある?
43名無しさん@1周年:2001/03/06(火) 00:47
AVR1200のADコンバーターを実験しています
電池を計ったら電圧が低いく出ます。テスターでは1.62V
で、デジタルをポートに出してから計算すると1.26Vです。
トランジスタは945しか無いのではだめですか。抵抗の計算が
変わりますか
44名無しさん@1周年:2001/03/06(火) 17:44
↑外人さんですか?ニホンゴワーカリマスカ?
45名無しさん@1周年:2001/03/06(火) 22:25
1.62V - 1.26V = 0.36V はVbeかな?
A/Dコンバータの入力にトランジスタをつないでいるのなら、トランジスタをはずしてじかに電池をつないでみてください。
4643:2001/03/06(火) 23:51
あー、変なまま書き込んでしまいました。失礼しました。家には直流の
電圧があまりないので乾電池を測ってみました。マイコンにつないだ
状態でテスタで測ると1.62Vで、マイコンの8BITLED表示を計算すると
1.26Vなのです。トランジスタはPNPを持ってないのでジャンクのA109
というのを使いました。テスターでhfeを測ると94か95です。アプリケー
ションノートは185位で計算してるので、同じ計算でベースの抵抗を半
分にしています。この抵抗を交換してみてもほとんど変化がないよう
です。サンプルソフトのバグでしょうか。
4743:2001/03/06(火) 23:53
>>45
レスありがとうございます。トランジスタは使っていません。マイコンの
入力の抵抗に直接つけています。いっしょにテスターもつないでいます。
48あさはかマン:2001/03/07(水) 00:04
>>46
ひょっとして、ATMELが発行してるアプリケーションノート
AVR400 Low Cost A/D Converter
AVR401 AVR401: 8-Bit Precision A/D Converter
(の、どちら?)のことですか?

・・・ちなみに何の前振りも無しにA/Dというと
AT90S8535等が内蔵している10bitA/Dを普通の人は考えます。
4943:2001/03/07(水) 00:18
>>48
レスありがとうございます。AVR400の8Bitの方です。部品はベースの
抵抗のほかのものはアプリケーションノートと同じ値にしました。
50あさはかマン:2001/03/07(水) 01:01
>>49
終電が終わったときにこの掲示板にいらっしゃったあなたは運が良い。
AN AVR401のほうですね・・・

考えられる理由は・・・

1.クロック周波数や電源電圧
5V電源で4MHz外付け発振子の時について書かれています。
周波数が違ったり、AT90S1200A(内蔵オシレータ発振)では
計算が異なります。

2.トランジスタのVce(sat)
2SA109:富士通・Geドリフト・Vcb=9Vのとき、Ie=1mA/hfe=60
さすがに70年代の終わりの頃から電子開発を始めた
うちの会社の資料室には
ゲルマニウムトランジスタの資料らしき物はありませんでした。

もうちょっと詳しいトランジスタの特性が必要かも。

解決策として、
オシロスコープをお持ちでしたら波形を見て、
AVR401のアプリケーションノートと比較すれば超OKです。

・・・さて寝床をどうしよう。
5143:2001/03/07(水) 01:13
すみません、A1009,NECと表示さてあります。緑色のTO220形です。
クロックは4MHzの水色のセラロックをつけています。オシロスコー
プはありません。ありがとうございました。
52あさはかマン:2001/03/07(水) 01:42
連続なのでさげ。

2SA1009、データシート有りました。
しかし、根っからのスイッチング用で
hfe表記がPulsedになってます・・・

AVR401のソースコードそのものは
さすがにATMEL社内で試してから公開しているので
おそらくバグは無いと思いますが・・・・

あと、最後に電池を2本直列のときの値、3直の時の値を測って
グラフの切片と傾き、直線と点とのずれ(バラツキ)を
求めておくのをお勧めします。

切片は電圧リファレンス(Vref)の状態とトランジスタのVce特性、
傾きはトランジスタのIc特性とコンデンサの性能、
バラツキは回路の直線度を表すはず。
53名無しさん@1周年:2001/03/07(水) 02:01
野次馬でスマソだがそのサンプリソフトのユアルエルでも教えてけれ
54あさはかマン:2001/03/07(水) 02:18
>>53
まず、ネタになってるアプリケーションノート、
AVR401はこちらのページ。ページの検索で引っ掛けてください。
ttp://www.atmel.com/atmel/products/prod201.htm

でPDFはこれ。113Kbyte
ttp://www.atmel.com/atmel/acrobat/doc0953.pdf

で、その行のSee Software Sectionのリンクを辿ると
AN401.ASMに辿りつきます。
ttp://www.atmel.com/atmel/products/prod203.htm#avr401.asm
55名無しさん@1周年:2001/03/07(水) 02:34
あんがと。エーゴは夜中きついなー。あした読むわ。
5653:2001/03/07(水) 09:38
野次馬でスマソ。アプリノートの時間計算のところだが
4MHzをCK/8したクロックで動くタイマは、every 2ms
で動くのではなく 2μsで動くのではないのか?
単純なミスプリントと思うが気になったもので
57AVR:2001/03/07(水) 23:51
もう解決したかな
43さんは以前の16さんですか?
58あさはかマン:2001/03/08(木) 12:42
>>56
多分μという字がなかったので
てきとうにmを充てたものと思われ。

・・・てまさか、計算すると文中のCは実は0.22μFでは?
59AVR:2001/03/09(金) 00:13
ほんとだ。おかしいすね。そのちょっと下の方でベース電流にμAを使っ
てるのに。μが正解でしょうね、二重積分方式のCに巨大な電解コンで
はいかにも変だし。
トランジスタのhfeに頼った電流設定もずいぶん恐いっすね、大昔の
トランジスタラジオの回路みたいだ。ちゃんとしたプロの仕事じゃない
のでは?
60あさはかマン:2001/03/09(金) 01:02
>>59
同意ですね。
所詮ANは参考、という事なのでしょうか?

信用できないANは結構困る気がする。
61AVR:2001/03/09(金) 19:15
8ビットADコンバータ、AVR1200が無いので2313で試みました。(昨夜
作って職場でこっそり。)一発で動きました。測定の再現性も良好。トランジ
スタの電流は大分いい加減でも良かったようで(測定中に変動さえしなけれ
ば)、8ビットタイマを割込みの計数で9ビットに拡張してるから、電流が小さい
方にずれても余裕が2倍あるんですね。大きい方へのずれは(カウント数が
減るから)分解能が粗くなるようです。
しかし、測定値が低く表示される現象は出てこないす。
62名無しさん@1周年:2001/03/14(水) 08:12
AVRって安いけどPICほど話題になりません
なぜですか?
63名無しさん@1周年:2001/03/14(水) 22:59
PIC1GHzって出るんですか?
64名無しさん@1周年:2001/03/14(水) 23:10
やっぱりAVRはまともな日本語解説書がないからね。
俺はAVRの方が好きだけど。
65名無しさん@1周年:2001/03/14(水) 23:12
PICはRISCという、ふれこみになってるが
1命令4クロックかかるなぜだ!!!!!
66名無しさん@1周年:2001/03/14(水) 23:39
昔ここにあったよ。今あるかは知らない
http://ns2.sitedesign.co.jp/~hero/pdf/90S2313.PDF
http://ns2.sitedesign.co.jp/~hero/pdf/90S2323.PDF
http://ns2.sitedesign.co.jp/~hero/pdf/90S8515.PDF
ま、和文が無いとだめな人多いからなまだ
英語教育だめね
67あさはかマン:2001/03/15(木) 12:59
>>65
RISCアークテキチャと、
1クロック1命令実行可能(パイプライン実行)は
あんまり関係ありません。

http://mentai.2ch.net/test/read.cgi?bbs=kikai&key=975273980&st=45
68名無しさん@1周年:2001/03/15(木) 22:27
PICのEEPROMって何回も書き込み可能ですか?
使ってるうちに記憶できなくなるってことはないんですか?
69名無しさん@1周年:2001/03/15(木) 23:41
あさはかマンさんがAVRを薦めるこれだという決め手はなんですか
70名無しさん@1周年:2001/03/16(金) 00:02
ピックよりはまし
ということだろうな
71AVR:2001/03/16(金) 00:18
>>66
ひぇ〜!こんなんあったすか。
でも、そこ引っ越した跡みたいすね、逝き先どこっすかねー
72AVR:2001/03/16(金) 00:25
データシートには、10^6回typとありますよ。自分はデバッグ段階で
バンバンISP書き込みして、ほんのたまーに書けなくなるモノに遭遇
します。(PICの話)
73あさはかマン:2001/03/18(日) 09:12
>>69
C言語がフリーウェアで入手可。
・IOポートの数が多い。
・AT90S2313はパッケージが小さい。
・AT90S8515はIntel8051と互換なデータバスが外に出ている。

て、とこでしょうか。

PICはPICで、ATMELに比べて安定供給されている、
と言うのが魅力です。

ATMEL製品を量産品に積むのは
供給の面から結構チャレンジャーな気がする・・・。
74名無しさん@1周年:2001/03/18(日) 10:43
>>73
出入りの商社が言ってたがPICもいまいち(数が)動かないって(--;
16F84 20台/月の機械に載せる俺もチャレンジャーかも(鬱
75名無しさん@1周年:2001/03/20(火) 09:43
おれも商社に聞いたがAVRよりもPICが薦められたなー
でも和文の取説の方がいいという意見がでて、
H8を採用しようと社内でもめてるよ。
どちらがいいのかな?
似てるようだけどH8のほうが若干規模がでかいし
その分高いんだけど・・・
76名無しさん@1周年:2001/03/20(火) 10:57
若干ってレベルか?(藁
77名無しさん@1周年:2001/03/20(火) 11:30
picってほんのちょっとって感じだな・・・
78AVR:2001/03/21(水) 00:40
自分のところは両方とも海外のコネで入ってます。
79名無しさん@1周年:2001/03/22(木) 00:50
ATMELは国内営業にあんまり力はいってない気がする。
というか、ほとんど代理店まかせって感じでしょうかね。

一応、ATMELはフラッシュメモリを量産品(と言っても、たか
だか3000個ぐらいですが)に使ったときがあったけども、いま
いち対応が悪かったな。
80名無しさん@初回限定:2001/03/22(木) 00:51
ATMELは国内営業にあんまり力はいってない気がする。
というか、ほとんど代理店まかせって感じでしょうかね。

一応、ATMELはフラッシュメモリを量産品(と言っても、たか
だか3000個ぐらいですが)に使ったときがあったけども、いま
いち対応が悪かったな。
81名無しさん@1周年:2001/03/22(木) 01:17
ま、海外メーカーの日本代理店の看板あげてるけど実態はただの商社、
つうのが通り相場でしょう。一皮むけばどこの代理店もメンツは同じよ。
デキる人財が適所に居る場合だけだねサポート良いのは。だがそれも
セールスノルマに追われて長続きしないのが殆どだが。
半導体はちーとも詳しくないけど英語話せて人外と対等に話できます
みたいな人種の溜まり場に戻ったね。半導体商社は。
はやくネット取引社会が熟成して欲しいなーっと。>やる気のないセールスマネージャ
82名無しさん@1周年:2001/03/22(木) 01:27
じゃあ国産メーカーのワンチップはどうかと言うと、これがまた
どこそこのn次店とか錯綜して自由な市場にはぜんぜんなって
ないのな。商社のなわばりばっか。T●芝のマイコンを選定して
エミュレータの段になってあの「青い箱」を見せられたときは目
を疑ったものな。H●立はなんじゃあれ?セガのオモチャ売り専門
の子会社まで建てて心中かよ。PICやAVRの開発環境に慣れた
者にはあの京都製エミュレータの値段には仰天こいた。おれの家よ
り高かったぞ、チーム一揃えで。
やっぱ日本は終わったんだな。。。
83あさはかマン:2001/03/22(木) 08:42
>>82
うち、T芝のT×(あくまで伏字)ですけど
ROMエミュレータすらありません。
お金のないうちの部署にとって
評価ボード無償貸出の存在は大きかったのでした。

あとはgnuのソースウェアだけつかって自力。

・・・これも企業としては問題。
時間がいくら有ったって完成しない気がする・・・・
84あさはかマン:2001/03/22(木) 09:05
しまった。本筋と関係ない愚痴を書いてしまった・・・

それはさておき、AVRのGCCはかなり使えます。
32ビットでも安全に使えるので凄く便利。
定期的に4x8マトリクスキーをスキャンするなんてのも

unsigned long key_scan(void);
SIGNAL(SIG_OVERFLOW0){
unsigned long old_matrix, new_matrix;
old_matrix=new_matrix; new_matrix=key_scan();
if (!old_matrix | new_matrix) {
/*キーボードが押されたときのイベントを発生する*/}
}

これだけでタイマ割りこみから比較まで済んでしまうのは凄い、
けどなんか物足りない・・・
85名無しさん@初回限定:2001/03/23(金) 00:41
>>82
あ、あの青箱見ましたか(w
一時期あれが2箱も置いてありました。でも、うちの場合マイコン
では発注数量が桁違いに多いので、この手のはタダで貸してくれる
場合が結構あったり。

まぁ、自社カスタムの開発環境よりはマシなんでいいですけどね・・
こっちになると、アセンブラとかまで自作だから酷いのなんの(w
8682:2001/03/23(金) 07:39
あの青い箱を客に売ったら犯罪行為っしょ(藁
うちも数セット使ったけど、GNDケーブルのノイズで誤動作が頻発して、2段重ねの
どっちだかのふたを開けたら、HC245がソケットで交換できるようになってた。
いかにも不自然に付いてたので基板の裏を見たら他の客がソケットをつけた事が分かって
爆笑だった。当初、中間の商社が「1セットは無償で貸すが2セット以後は買い取りに
なってる」みたいなブラフをかましてたが、あの件でT●芝の開発元と話したらウソが
バレバレだったな。あの営業マン今どこに居るかな。
87名無しさん@初回限定:2001/03/23(金) 23:39
青箱は売り物じゃなかったのか。まぁ、さすがに作りが凄かった
からなぁ・・。箱に入っているだけマシかもしれないけど。

7セグLEDが山のようについている姿は壮観だったな。
88名無しさん@1周年:2001/03/24(土) 16:12
AVRのCPUをボードから外さないまま書く方法を教えてください。
秋月のライターの基板から6本出てる端子をボードのCPUに
線でつなぐところは、配線を切り離すスイッチを付けるのですか。
VDDも出ているけど、CPUの+5Vも切り離すようにしないとだめ
ですか。
線は普通の線ではだめですか。何メートルまで大丈夫ですか
お願いします。
89あさはかマン:2001/03/24(土) 21:01
困ったときはデータシートをまず読みましょう。
Serial Programming Characteristics、というのがそれです。
秋月のライタが何をするのかが書いてあります。

もっと直接的には
ttp://www.elm-chan.org/index_j.html
90名無しさん@初回限定:2001/03/24(土) 23:57
>>89
つーか、秋月ライタよりはるかに ChaN氏のライターの方が
性能いいしな。俺、秋月キット買ったあとに、このライターの
存在を聞いて、5000円をドブに捨てた気分になったよ(;´Д`)
91あさはかマン:2001/03/25(日) 00:28
>>90
私は秋月の奴はAT90S1200用のパラレルライタだと思って
買って・・・挫折したのでした。

まあ、3.3Vしか供給できない基板に実装した
5V書き換えAVRへの5V電源としては有用かも、と信じたいところですね・・・
92名無しさん@1周年:2001/03/25(日) 00:36
逝ってみたらソフトの大半が削除されてるみたい?
パソコンの設定かな?
93名無しさん@初回限定:2001/03/25(日) 00:40
>私は秋月の奴はAT90S1200用のパラレルライタだと思って
>買って・・・挫折したのでした。
例のサイトにはパラレルライタもあるね。俺は必要ではないから
作ってないけど。ベンチマークを見ると8515などもあっという間
に焼けるみたいだから、大きなソフトを書くときや、大量に石を
焼きたいときには有用そう。

簡単な仕掛けで焼けるという手軽さもAVRの魅力だと思う。
94AVR:2001/03/25(日) 05:44
ChaN製ライターってDOSで動くやつですか?自分最初、只だから
あれを作ろうと思ってたけど、気がついたら秋月製のを買ってしまって
たです。
しかし、ISPという方式は、エミュレータメーカーという一つの分野を
終焉させてしまったですね。
95AVR:2001/03/25(日) 06:23
>>88
秋月のライターなら、ライター側の電源を使う方がいいっす。今回は5Vらしい
のでいいですけど、電池で動いてるシステムだと3ボルトで動いてるICに
対してライタが出す書込み信号は5ボルトっすから。
同じ理由で書込みピンも完全に切り離しできるようにした方が楽す。IOポート
の向きとか負荷の重さとか、ライタのこと気にしないで自由にできますから。
96名無しさん@そうだ選挙にいこう:2001/03/25(日) 18:59
PICの開発環境にはみなさんはどういうものを使ってますか?
やっぱりMPLABですか?
PICくらいの規模のシステムならBASIC+アセンブラの方が
プログラムしやすい気がするのですが、
BASICコンパイラを使ってる人はいませんか?
9788:2001/03/26(月) 06:59
ありがとうございます。紹介してもらったサイトは検索で知ってました。
5Vと書きましたが電源アダプタです。測ったら3.8Vでした。
ボードのまま書き込むとうまくできないのはこれが原因ですか。ライター
で書くと何度もソケットから外してソケットがゆるくなるし足も曲がるので
ボードを作りなおします。切り離すのは専門的なスイッチを使うんですか?
線の長さもお願いします。1メートルは長すぎですか?
98あさはかマン:2001/03/26(月) 09:07
>>97
慌てない慌てない。

まず、
・どのチップで
・どの電源電圧・周波数でで
・どうして信号線を切り離さないとまずそうなのか、
・どうしてISPケーブルを伸ばさなければいけないのか

をお教えください。

・・・全てのスイッチに専門分野がついて回ってるのですから、
専門的スイッチなんて言ってしまうと後々要らぬ勘違いをしてしまいますよ。
99名無しさん@1周年:2001/03/26(月) 09:33
>>96
MPLAB + PICSTARTPlus + PICC(PCM/PCB) っす。
Cは不得意なのでASMで書いてるほうが多いですが。
10088:2001/03/26(月) 16:02
チップはAT90S2313−10PC
電源はACアダプタ・周波数は4メガ
線を切り離すのはACアダプタとライターの電圧が違うから。VCCをスイッチ
にしたけど書けなくて、あと4本も全部スイッチにしたら書けました。けど
スイッチ5つは大きすぎる切り替えしめんどいです。プロの人の技術を知りたいです。
あのサイトの回路はHC126とか無いから作れないし秋月のライターでやりたいです。
ケーブルを伸ばすのはつないだまま動きまわらせたいから。2m希望です。
101うさだ:2001/03/27(火) 01:12
>>100
HC126って3ステートバッファでしょ?
べつにほかのロジックIC使ってできるでしょ
あと、ケーブルを繋ぎながら動かすのはあまりお薦めしないです
ケーブルも短い方がいいよ
102あさはかマン:2001/03/27(火) 09:01
>>100
HC126はどうやらChaN氏の手持ちの部品だったのでしょう。
HC244で代用できます。

それと、ChaN氏の回路と秋月の回路は原理は全く変わりません。
#言っちゃ悪いが、秋月のライタの上のAT90S1200は意味無し同然。
したがって、注意書きも全く同じです。

以下>行はChaN氏のページから引用。

>a.RESETピンに大容量のキャパシタを直結してはいけない。ただし、ノイズ防止のために 1nF程度を接続すると良い。
ISP回路の出力能力を超えてしまい、ISP回路を壊す恐れがあります。

>b.リセットICを使うときは、OC出力のみ使用可能。
ロジック出力ではISP回路の出力と衝突します。

>c.ISP動作が回路に悪影響を与えないように配慮すること。
ISP時で与えられる信号でモータが誤動作したら困ります、と言う意味。

>d.ISP中は外部からドライブしてはいけない。
他の系統の入力回路(たとえばセンサのロジック出力)とかがISPピンを駆動していると、
ISP回路が必要とする信号と衝突してうまく動かなくなります。

>e.ISP動作に影響を与えるような重負荷は接続しない
ISP回路やAVRの駆動能力を超えれば、当然動きません。

まさしくこれで必要充分。
出力能力はデータブックを読むとお判りになるかと思います。
HCロジックはどのメーカでも互換品と言われてるとはいえ
油断すると手痛い目に会うので個別のメーカのデータブックを絶対に読む事です。

#さらにデータブックを読んだからと言って油断すると誤植で痛い目にあいます。
##よりによって16ビットバスの位置に誤植とは・・・
###目の前のこの基板は如何してくれよう・・・

純粋にロジック入出力な回路のケーブルを30cm以上延ばすことはナンセンスです。
延ばしたい場合ば入出力の特性を規定して、ケーブル中のグランドを強化して延ばします。
逆にいえば、ISPのような兼用信号で、且つ信頼性がないと困るものは
延ばせません。

どうしてもとあらば、秋月のライタ(ChaN氏のライタでも可)の部品を
自作基板の方に載せてしまえば
延ばす部分は専用信号(RS-232C)と電源、両者とも相当延ばせるので
あっさり解決します。
103AVR:2001/03/28(水) 07:50
>>100
長いケーブルなら>>102さんの方法がベスト。会社ではPICの当初からそうしてるす。
プログラマの机というのは一般的に物だらけで汚いので、デバッグする物はサイドテー
ブルに置いて、そこからRS232でパソコンと。基板のマイコンをソケットに変えて手作
りの補助基板を挿す。それには切り替え回路が。CMOSの4066というアナログスイッ
チゲートで切り替えてる。切り替え信号は秋月ライタが出すVccがピッタリ(会社のライ
タは全くオリジナルなので専用信号がある)。大抵はこれで足りてるが、IOピンに電流
を多く流す物には、小型の電磁リレーを使ってる。
個人で家にあるのは秋月のライタだけっす。ケーブルは約20センチ。>>102にもあると
おり長いと恐いす。もしチャレンジしたかったらCMOSの4066で知恵を絞れば?。
ただしオンしても150オームぐらい直列抵抗があるので、電流いっぱい使ってると難しい。
104あさはかマン:2001/03/29(木) 09:18
MIPS組んでてふと思った・・・

ビッグエンディアンって何がお徳なのでしょうか?
リトルエンディアンの方が作りやすいんだけどなー。
105名無しさん@初回限定:2001/03/29(木) 23:49
VRAMは大体原点側がMSBだからドットシフトするときは
便利だけど。それぐらいしか思いつかない。

いままでずっとリトルエンディアンばっかで、最近SHでビッグ
エンディアン使うようになったけど、どうも慣れないな。
106名無しさん@1周年:2001/03/30(金) 00:45
エンデアンてインデアン?
107名無しさん@1周年:2001/03/30(金) 02:22
endian
108あさはかマン:2001/04/01(日) 12:38
エンディアン[endian]
ガリバー旅行記(スウィフト著)の中で出てくる小人国の種族(?)の名前。
卵を尖った方から割る種族を「リトルエンディアン」と呼び、
卵を丸い方から割る種族を「ビッグエンディアン」と呼び、
長年の戦争を続けている。

・・・

ハードウェアでは、16・32・64ビットなどの大きな整数をメモリに格納するとき、
アドレスの下位(小さいアドレス)が大きな桁側になるものをビッグエンディアン、
アドレスの下位が小さな桁側になるものをリトルエンディアンと言い
RISCは宗教上の理由でビッグエンディアンが殆どです。
109名無しさん@1周年:2001/04/02(月) 03:09
0x12345678

+000000 12
 000001 34
 000002 56
 000003 78
110名無しさん@1周年:2001/04/02(月) 06:41
0x12345678 =0だろ?
111名無しさん@1周年:2001/04/06(金) 02:22
xは掛け算のしるしに使ってのではないです。
アタマ(左)から一文字ずつ判断していけるようにセコい文法を課してるのです。
最初が英字でないからこれは変数(代数記号)ではない、定数(具体的な数字)だ。
2文字が数字でないから、単純な10進数ではない、xは16進数だと約束してある。
といった具合。プログラミングとか何とか言っても、実態はセコいもんです。
112あさはかマン:2001/04/06(金) 09:13
そーか。
C言語の記法では伝わらない事も有るのか・・・・

110さんの0の意図がやっとわかりました。
113名無しさん:2001/04/06(金) 22:58
コンパイラの話やん
114七師:2001/04/07(土) 00:44
>110さん
そのつっこみ、面白い!
PICで16ビットデータ処理をしていた後で、ハイになったところ
だったのでしばらく笑えました。
ビックがリトルかは、通信する相手に合わせますが、スタンドアロンでは
ビックにしちゃいます。見やすいし。
115名無しさん@1周年:2001/04/07(土) 02:49
歴史的にIBMとかCDCとかあったの?
116名無しさん@1周年:2001/04/07(土) 02:55
CDCて?。バローズとかユニバックじゃなくて?
タスクとプロセスもそうだよな。同じものなのに両陣営で名前を変えやがって
117案山子さん:2001/04/07(土) 05:01
×ビック
○ビッグ

日本人は「ッ」のあとの濁音を無視する癖があるので気を付けよう
例:ベッド、バッグ、デバッグ

池袋ビックカメラのBICは社長が若い頃旅したアフリカで
原住民と木登りかなんかで競って勝ったので送られた称号だという説あり。
118名無しさん@1周年:2001/04/07(土) 05:21
>>116
タスクとプロセス、どちらかがどちらかを産業スパイしたというのは
本当なのですか?どっちがどっちなの。
119>>117:2001/04/07(土) 06:50
Fuck you !
120名無しさん@1周年:2001/04/10(火) 19:15
DSPというのは、普通のマイコンとどう違うんですか。
何が強くなって何が無いとか。
個人で始める費用はいくらぐらい必要ですか。
メーカーは国産ですか。
お願いします
121120:2001/04/11(水) 12:31
DSPの中が分かるサイトをお願いします
122あさはかマン:2001/04/14(土) 11:28
昔と今ではだいぶ様相が違う
(と言うより私には違いが良く解らない)ので詳しい解説は避けます。

国産DSPはやめときましょう。
TIのスタータキットで我慢してください。

ここらへんも参照。
http://mentai.2ch.net/test/read.cgi?bbs=kikai&key=974246611&st=34&to=38

123 :2001/04/15(日) 01:51
ageといておきますね
124名無しさん@1周年:2001/04/19(木) 12:38
先月ライターのケーブルを長くする事を教えていただきました。
次の設計ではCPUの電池を別にするので3Vを計画しています。
ライターの電源は6.3ボルト電池2本でも大丈夫ですか。
切り替えはリレーに変えたいので名前と値段を教えてください。
ライターの電源は6.3V電池2本でも大丈夫でしょうか。
ケーブルはいま4mですがもっと長くしたいのです。何メートルまで
大丈夫ですか。パソコンに使ってあるリボンケーブルのように細く
てもいいですか。
 それから別のお願いなんですが英語のホームページを見ながら
翻訳するフリーソフトを紹介してください。
125あさはかマン:2001/04/19(木) 13:04
>>124
それは物の尋ねすぎ。
時間が無いかも知れませんが、
Try&Errorという言葉もありますように
まずは実験して見てはいかがでしょう?

ケーブルが4mでも動くときは動くし、動かないときは動きません。
その昔、T芝Z80モドキ(10MHz)のバスを
4mx2本の線を引っ張り出して動かした事もあります。

伝送がうまく行く/行かないは、本当に経験上の問題で、
もし動かなければ何らかの対策を講じて何とかするものなのです。

電源電圧についてはAVRのデータブックを見れば一目瞭然なはず。

リレーで(どこを?)切り替えるのであれば、
リレーは接点や駆動コイルの扱いが難しい電子部品だ、
と言う事をお忘れなく。

それと、翻訳フリーウェアは当てにならないし、
PDFは今のところ一発では翻訳できません。
たいした英語ではない(単語を除けば中学レベル)なので
印刷して翻訳しましょう・・・その努力は無にはならないはず。

・・・・

自分で動作が理解できない回路を設計・製作するのは
危険以外の何物でもありません。
そういうことです。
126名無しさん@1周年:2001/04/21(土) 12:50
初めまして、お願いです!。どうしても変な動きをします。そこだけ抜き出しました。
最初の日に電源を反対につなぎました。時間は10分ぐらいでした。
すぐ直したら動いたのでこわれてないと思っていました。
LPM命令だけこわれた可能性はありますか。
      
AVRASM ver. 1.21 MUZUI.ASM Sat Apr 21 12:33:04 2001
    
000000 e0e3 ldi r30, low(data)
000001 e0f0 ldi r31, high(data)
000002 95c8 lpm
    
000003 data: .db 1,2,3,4,5,6,7,8,9,10,11,12
000003 0201
000004 0403
000005 0605
000006 0807
000007 0a09
000008 0c0b
   
Assembly complete with no errors.
127あさはかマン:2001/04/21(土) 12:58
で、動かすとどうなるんですか?
128名無しさん@1周年:2001/04/21(土) 17:18
>>124前回自分がリレーも使ってると書いたやつなら、オムロン社のMH6Pという名前。
切替え型接点が6組あってぴったりなんだけど残念ながら製造中止品。(廃品流用です)
それに巻線抵抗が25Ωなので(5Vで0.2アンペアも食うので)、電源がしっかり確保
できてないとだめだし、駆動のトランジスタとか経験が少々要るので、リレーはお奨め
でないす。それよか0.2アンペアも使えるなら、電子回路でゼイタクなことができてしま
うので、ぜひそっちを薦めます。前回はCMOSのアナログスイッチを使えたのでしょ?
 それから、
電源は、3ボルトで書けるかどうかを真っ先にデータシートで見るべし!
秋月のライーターだけど、いっしょに回路図が付いていたはずで内部は5ボルトだけで
動くから電圧レギュレータのあとに直接5ボルトを入れることができれば高い電圧は不
要、と書いてあったような‥。
 パソコンとのケーブルずいぶん長いんすねー、いっそ思い切って光でCMO1の信号
ラインをつなぐ方法を作ってしまえばどうです?
 翻訳ソフトは絶対に自分のアタマで!英語に慣れる絶好のチャンスなんだから。
画面見ながら声に出して読むのね(一人英会話)。学校の英語みたく無言でアタマの
中で翻訳しないで、エーゴのまま肌で理解するようにする。例えばプログラム書くとき
いちいち日本語の意味を考えながら書かないでしょ、あれと同じことをするだけ。
129名無しさん@1周年:2001/04/21(土) 17:23
>>126
むははは、たぶん壊れてはないっしょ。
 過去にZ80とかパソコンのアセンブラの経験があったりして、邪魔してたりして(笑
130あさはかマン:2001/04/21(土) 18:26
>>129
たしかにそう、ソースが確かに間違いですね。
怪しいとは思ったけどつい感情的になってしまった。

冷たかった分お詫びでサービス。
ldi r30, low(data * 2)
ldi r31, high(data * 2)

dataと言うラベルはアセンブラによって
データ領域の開始位置のPC(ProgramCounter:実行番地)が
割り当てられます。

しかし、AVRは16bitで1命令なので
8bitのデータを置くと考えると、
当然アクセスできるメモリは2倍になるわけです。

そんなわけで、LPM命令はPCに1ビット下ケタを追加して、
無駄なくアドレスが出来るようになっています。

しかし、アセンブラが勝手に命令によってラベルの数値処理を変えると
たとえば
ldi r31,(data + 1)
のような、ラベルを含む計算式を書いたときに解釈があいまいになり
危険なため、そういった処理はしません。

で、データのラベルは必ず2倍します。

まあ、これは初心者の人は絶対にはまります・・・

あと、質問するときは「LPMがおかしいと解った理由」を
書いておきましょう。

しかしAVR、10分逆挿ししても壊れない。頑丈過ぎ・・・
普通EEPROM混載デバイスなんて1秒で10回は逝けるものですが。
131名無しさん@1周年:2001/04/21(土) 20:09
昼にカキコしてから代わりのCPU買ってきたけど…全部同じでした
>>130さん、ありがとうございますっっ。Z80アセンブラをやりました。少しだけですけど。
それで同じだと思ってました。初めての人は絶対はまってもおかしくないんですね!
うれしーー、ありがとうございましたです。
132AVR:2001/04/21(土) 23:59
>>131解決したようでおめでとーございまーす。質問の時容疑範囲を絞って、かつアセンブル結果をコピペする手慣れた様子からして、少々どころか十分経験ある人に思えましたよ。
アセンブリ言語も流派がいろいろあるようですね。
 この過去ログ読んでふと思ったですが、PICもAVRも非ノイマンなわけですが、昔の本に載ってるノイマンボトルネックの限界とか危機とかいう表現は的が外れていたのではないかと。ノイマンでは
なく、もっと原初のゥィーナーのサイバネティクス自体にある性質では?と。
ま、現在は、欲しけりゃ(キャシュメモリを)何系統でも作ってやるぞという時代。を経て、いやもうこれ以上あってもそんなに性能上がりませんのでもうこの辺で、という時代。を経て‥
133名無しさん@初回限定:2001/04/22(日) 00:30
126のやったことと同じことで俺もはまった経験有り(w
みんなやるのねー
134名無しさん@1周年:2001/04/22(日) 09:27
124です
色々聞きすぎました、どうもすみません。
ISP書込みは2.7Vからできる事は分かりました。でもライターの
インターフェースが5Vだからそのままではだめなんですよね。
リレーはあきらめました。ISP端子は出力にしてレベル変換回路の
回路を作ります。
トランジスターで作る場合はエミッター接地インバーターにしてコレ
クターの電源をつなぐ相手のVddにすればいいんですよね。
しかしICで作る場合ですが、この前のHPの回路はICに電源電圧
よりも高い電圧と負の電圧が入ってますが、どうして大丈夫なん
ですか。それが分かりません。もしいいのなら、同じ事をマイコンの
ISP端子でやっても良いことになりませんか。
135あさはかマン:2001/04/22(日) 10:04
>>134
実は、HS-CMOS(74HCシリーズ)のICの入力には
保護用ダイオードが入っていて、

・入力ピン高い電圧がかかると
保護用ダイオードがVCCと導通して入力ピンから電流を吸い込み、
VCC+0.6Vに電圧を抑えようとします。

・同じく0V以下の電圧がかかると
保護用ダイオードがGNDと導通して入力ピンへ電流を吐き出し、
GND-0.6Vに電圧を抑えようとします。

これを利用しています。
抵抗をはさんでおけば、保護用ダイオードが壊れるほどの電流は流れません。

そして、3V電源でもこれと全く同じ事が出来ます。
3V電源でもHCロジックは動くので、例のISPライタを3V電源に接続すると
問題無く動くわけです。

しかし、ATMEL AVRについての公式なデータではピン保護回路について何も触れていないので
ピンに電源電圧より高い電圧をかけた場合、
(ATMEL社の開発者以外の人は)何が起こるか実際にやって見るまでわかりません。

そんなわけで、AVRに抵抗式レベル変換はかなりチャレンジャーな選択です。

秋月のライタはRS-232変換IFのMAX232が5V電源である都合、
MAX232のHレベル出力が5Vに達する可能性があるので、
ライタコントロール用のAVRも5Vで動き、全体は5V系専用になります。
136名無しさん@1周年:2001/04/24(火) 01:06
うーん。パソコンのCOMポートて、今後ずーと生き残るのだろーか
137名無しさん@1周年:2001/04/24(火) 10:19
>>136
既にノート系はCOMコネクタ無くなってきてますね(USBのみ)

USB→RS232C 変換アダプタ使ったら COM8とか9になって、ラダーソフトが
対応してなかったなんて話しも聞いてます。

TP530が壊れて 新しいの物色してるんですが どうしようかなぁ
LAN内蔵機に無線LAN追加して デスクサイドと現場で使い分けたいけど可能かも不明(^^;

雑談sage


138名無しさん@1周年:2001/04/25(水) 01:10
134です。
>>135
やっと分かりました。ネットで詳しいデーターブックを見たら書いてありました。
元々は、静電気で壊れるのを防止するダイオードですね。
HC125は無いけどPC9821のジャンクから抜いたHC244を持ってい
ます。これでもできると思うので作ります。ありがとうございました。
139名無しさん@1周年:2001/05/02(水) 11:36
ICEとまでは言わないが、H8みたく、232Cで繋ぐモニタ位は欲しいよねぇ。
特に初めてADCを使う石だと、結線とかが不安だし。
PICとかAVRで、モニタボードあります?
140あさはかマン:2001/05/02(水) 12:45
ATMELの評価ボード(スターターズキット、STK200)は
うちの問屋経由で8000円を割っていました。
ICEは三万切ってたような・・・・
141あさはかマン:2001/05/02(水) 13:02
そして、PICの評価ボードについては
もはやAVRとは比較にならないほど豊富な
キットや参考回路例を使ったほうが良いかと。

いずれにせよ、どちらも簡単には壊れないので
一発配線してみて、トライ&エラーをお勧めします。
142nanashi:2001/05/03(木) 12:50
あさはかマンさん
> 国産DSPはやめときましょう。
> TIのスタータキットで我慢してください。
なんて上のほうで言ってましたけど
どうしてですかH立とかもDSPだしてるみたいですけど
なにか問題あるんですか?
近々、はじめようと考えてるんですけど・・・

あと本でPICは世界第2の出荷台数だと聞いたのですが
1位はなんなんですか?
143名無しさん@初回限定:2001/05/03(木) 15:51
AVRのICEってどんな感じですか?
便利なものなら買ってみてもいいかなと思うけど。
144あさはかマン:2001/05/03(木) 17:30
>>142
これはDSPでは当てはまらないかも知れませんが、
経験上、評価用に開発キットと言語は問屋さんから貸し出し
というパターンになるとまれに悲惨な目に会います。

判らないことをメーカへ直接質問しても回答がすぐ帰ってくるとは限らず、
問屋さんはメーカへプレッシャーを与える程度しか手伝ってはくれません。
かといって喧嘩すると他の製品の部品調達にダメージを与えかねません。

ようするに、評価用の貸し出しをしてくれる日本の問屋さんを
私はあまり信用してはいないと言うことです。

#データブックやファームの間違いを
#自分で探す羽目になることもあるのです。

その点でTIは開発キットを「市販」しているので
評価の為に自分でリスクを負えるという点で
しがらみを気にせず割と良いかと。

もちろん、量産の時はこの話は当てはまりません。

>>143
私は見たことも使ったこともありません。
一回でも最初に組んだプログラムが走ってしまえば
必要性余り無し。
AVR STUDIOでは、SLEEP命令以外ほぼ現物どおり走ります。
145名無しさん@1周年:2001/05/03(木) 21:28
費用を少しでも抑えたいのでリセットICを省きたいと
思ってます。(ミ○ミ製で130円しました)
トリップポイントがVDDの下限だったので
ブラウンアウト・リセット、パワーアップタイマーを
を利用してMCLRを5Vをに直結したのですが何か問題があるでしょうか?
テストしてみましたが今のところこれといった問題でていません。
実用に耐えれるのでしょう?

AC100Vの単相インダクションモータをPWM制御で、
0〜60Hzの間を4段階ぐらいで速度コントロールしたいと考えてます。
PICを使用可能ならば使用したいのですが、比較的ノイズがでる環境下
なのでやはり専用のドライバICを使用したほうがいいのでしょうか。
ノイズ対策としてウオッチドックタイマを使用しただけではやっぱり
物足りないですか。
146名無しさん@1周年:2001/05/07(月) 05:51
g
147あさはかマン:2001/05/07(月) 09:22
>>145
リセットICが必要な場合と言うのは

・電圧が定格電圧を超えるスパイクが出る場合
(チップの内部シーケンサが狂うことがある)
・周辺回路のリセットも必要な場合
・リセットに時間が欲しい場合
(電源を入れてからすぐには入力ピン・出力ピン電圧が安定しない場合)

・・・そういったところでしょうか?他にもあるかも知れません。

ウォッチドッグタイマは
元来ソフトウェアバグや、
割り込み応答に追従できなくなった時(スラッシングという)に
リセットをかけて取り敢えず制御を戻す、
つまりソフトウェアの誤動作を防ぐためのもので、
ハード的には運が良ければリセットが掛かる程度の
期待しか持たないほうが良いです。

プロセサを実装する回路設計を丁寧にやれば
ノイズはそんなに怖くはありません。
ノイズに問題があればドライバ回路を分けるのも吉かと。
148145:2001/05/07(月) 22:19
以前、なにも対策をほどこさずMCLRを5Vに直結していたら、時たま
PICが動かないことがまれにありました。よく本には5Vの立ち上がり
は遅いときはリセットICが必要だ。なんてかいてますけどこれが
原因だったんでしょうか?まあおまじないとしてリセットICは
安心感があります。
149名無しさん@初回限定:2001/05/07(月) 23:16
>>144
なかなか使用経験者はいないなぁ。

ISPでがしがし書き換えて逝けばいいってのはありますか・・
H8なんかと違って、100回しか書き換えられないってことはないし。
150あさはかマン:2001/05/08(火) 08:51
MCLRはシュミットトリガ入力なので
適当な抵抗とコンデンサを繋いで
時定数回路を組めば大丈夫かも。
151名無しさん@1周年:2001/05/09(水) 04:48
age
152名無しさん@1周年:2001/05/09(水) 21:50
売っているICSP専用の書込み器を見たことないんだけど、
自分でつくらないとだめなんですか?
153名無しさん@1周年 :2001/05/10(木) 00:40
PIC16F876をISPしたいと思っています。
16F876のデータシートには
他のドキュメントを見ろと書いてあるのですが
ISPの資料を見つけられません。

ドキュメントの在りか、もしくは
参考になるWebをご存知の方いらっしゃいましたら
教えていただけないでしょうか?
154名無しさん@1周年:2001/05/12(土) 12:17
PICで周波数可変の方形波発生器をつくろうと考えているのですが、
発振子の精度を上げるだけで精度のいい発生回路を構成できるものでしょうか。
155名無しさん@1周年:2001/05/13(日) 20:40
g
156あさはかマン:2001/05/15(火) 18:34
>>152
一番出回っているPIC16X84などが単電源で書き換えできないので
ライタに複雑な回路を積む必要があり、
ICSP専用機は私の知っている限りではありません。

>>153
ttp://www.microchip.com/10/lit/suppdoc/specs/index.htm
ttp://www.microchip.com/10/tools/picmicro/program/icsp/30277c/index.htm

>>154
ソフトウェアのマシンサイクルを計測して使う場合や
タイマカウント出力を使う場合、ハードウェアを外付けする場合は
理論的には問題なく出来ます。

分岐命令中の割り込みは1クロックの誤差になるので
割り込み利用のソフトウェアではデューティ比の条件がつくことがあります。
157名無しさん@1周年:2001/05/15(火) 23:16
どなたか17、18シリーズのPIC使われている方はいませんか。
私は16シリーズしか現在のところ使ったことがないです。
いしのお値段も高そうだし、Cコンパイラも高いし。
使うメリットはあるのでしょうか。
158名無しさん@1周年:2001/05/21(月) 22:19
g
159名無しさん@1周年:2001/05/24(木) 06:51
EEPROMとプログラムEEPROMの違いについておしえてもらえないでしょうか?
プログラムEEPROMは電源の供給を停止すると消去される程度まではわかるのですが。
160ななしの:2001/05/24(木) 12:41
電源切ってもEEPROMは消えないでしょ?
161名無しさん@1周年:2001/05/25(金) 12:11
消えないよねぇ?
プログラムEEPROMってなに?
162名無しさん@1周年:2001/05/25(金) 21:56
CCS社CコンパイラPCWに通常のEEPROMとは別にプログラムEEPRMなるもの
データを書き込むための関数があります。
たしかに電源を切るときえてしまうのでこれがなにものかを知りたいのです。
163あさはかマン:2001/05/26(土) 09:04
>>162
データブックを読みましょう。EEPROM以外のEEPROMで
プログラム書き換え可能なものは無いかと。

おそらく、EEPROMを頻繁に書き換えることを防ぐために
書き換えをバッファリングしていて、
書きこみ動作を行わないからデータが飛ぶのでは?
164162:2001/05/26(土) 21:06
はいデータブックをみたのですが
よくわかりませんでして・・・
165名無しさん@初回限定:2001/05/26(土) 23:44
>>164
コンパイラが勝手に名付けている機能だったら、コンパイラの
マニュアル見た方がいいんじゃないの?
166162:2001/05/28(月) 20:30
どうやらプログラムメモリにデータを書き込むためのものらしいです。
プログラム自身を破壊するおそれがあるから注意してつかう必要が
あるみたいです。
ところでPIC START PLUSにアダプタをつかたらICSPがでるのでしょうか。
167162:2001/05/29(火) 20:25
すみません日本語になってませんでした。
×をつかたらICSPがでるのでしょうか。
○をつけたらICSPが可能なのでしょうか
168名無しさん@1周年:2001/06/04(月) 22:54
PICのportBは弱いプルアップができるなんて英語の
データシートには書いてるんですが
スイッチ入力のプルアップ抵抗の代わりにはなるの。
10kくらいの抵抗に相当するんならいいんだけど・・・
169名無しさん@1周年 :2001/06/05(火) 08:40
↑思いっきりこの機能を使っていますが、
いままで問題になった事は無いです。
170あさはかマン:2001/06/05(火) 08:46
>>167
使ったこと無いので何とも・・・・

>>168
英文データブックのDC/AC CharacteristicsのIPURBという項目を参照。
171あさはかマン:2001/06/05(火) 10:23
AVRの実力を知っていて英語に強い人は以下のページをお勧め。

AVR Freaks
ttp://www.avrfreaks.net/index.php

AVR-GCCがCygwin環境無しにあっさりと入手可能。
おまけにAVR Studio3.5上でシームレスデバッグを実現した模様。
おすすめです。
172名無しさん@1周年:2001/06/05(火) 22:39
>>101 うさとは?
173名無しさん@初回限定:2001/06/05(火) 23:46
AVRはアセンブラでしか書いたことないんだけど、avr-gccって
コード生成効率とかはどんなもんなんでしょうか?
174あさはかマン:2001/06/06(水) 01:13
まあまあです。最適化は割と掛かります。
ただし、なんか(ソフトウェアとして)安定してないです。
仕事では使わないほうが良いと思われ
175うさだ:2001/06/09(土) 01:06
私的に上げたいだけだけど
>>172
それは突っ込みの仕方が間違っています
176あさはかマン:2001/06/09(土) 09:07
>>171の続報
どうやら、AVR Freaksのavr-gccと
gnu snapshotのgccはBFDオプションが違い、
AVR Studioと一緒に動作するのはAVR Freaksのgccだけの様です。
#どんなにやってもsnapshotからはavrobj出力を取り出せなかった・・・

avr-gccの出力をavrobj形式に設定した上に、
出力ファイルの拡張子を.objにするとAVR studioで読みこめます。
変数は表示されませんが、何処のコードを実行しているかわかるので
デバッグがずいぶんと楽になります。
ちなみに変数はAVR Studio4.0から対応になるらしいです。

これ御試しあれと言いたいです。
AT90S2313(大体400円以下)から使えて、
割り込み完全サポートで、おまけにフリーウェア。

恐るべし。
177名無しさん@初回限定:2001/06/09(土) 23:47
いま、AVRで趣味で作ってるモノがあるので、そっちで試してみようかな。

取り敢えず今日、火を入れてみたけど、参考にしたUSB-Aコネネタ図面が
間違ってて、いきなり1A以上流れて泣きそうになった(w
ポリスイッチ入れておいてよかった・・
178うさだ:2001/06/11(月) 00:47
>>176
えっ 2313からってことは1200では使えないんですか?
まあ今は1200ほとんど使ってないからそれでもかまいませんが

それと、AVR Studio4.0はいつ出るんですか?
179名無しさん@初回限定:2001/06/11(月) 07:31
>>178
1200はRAMがないからねぇ。さすがに無理でしょ。
180あさはかマン:2001/06/11(月) 09:36
>>178
AVRのC言語はスタック指向の本格的なものです。

1200はスタックからレジスタへ値を取出せないので
C言語型関数(スタックにローカル記憶領域をとるタイプ)
そのものが成り立たないのです。
181うさだ:2001/06/12(火) 01:13
>>179>>180
そっか、0だったね
182名無しさん@1周年:2001/06/16(土) 21:16
PICのPWMをテストしてみました。
たしかにデューティーが可変できたのですが、
この機能を使用して単相モータの速度制御ができないでしょうか。
デューティーを可変しつづけていけば、できないこともないきがするのですが。
183名無しさん@1周年:2001/06/21(木) 21:19
あげます
184名無しさん@1周年:2001/06/22(金) 03:39
>182
できるよ。
ttp://www.picfun.com/equipj37.htmlとかトラ技とかでも扱っていた気がします
参考にしてがんばってください。
185名無しさん@1周年:2001/07/02(月) 15:09
winNT、win2kでPICSTART Plusを使っているんですが、
書き込み中に頻繁に固まります。シリアルの設定は
ヘルプでの指示通りです。ライタ側ファームを
最新にしてもダメです。問題なく使えてる方っていますか?
186名無しさん@1周年:2001/07/03(火) 22:18
PICでクロックジェネレータをつくってます。
デジタルスイッチをPICに接続して
周波数を可変にしたいんですが
タイマーの割り込みにかかるロスのため
正確なクロックを作り出せん。
なにかコツでもあるのですか。
187名無しさん@初回限定:2001/07/04(水) 00:41
>>186
波形出すだけなら、命令の実行クロック数を計算してループ
でタイミング取った方がいいんじゃない?
188名無しさん@1周年:2001/07/10(火) 00:30
age
189名無しさん@1周年:2001/07/19(木) 14:48
AVR Studio の最新版(Ver3.5だっけ?)で、Edit->Fontを日本語に
設定すると直後は正常に表示するんだけど、再起動で欧文フォント
選んじゃってる。せっかく漢字でコメント書けるのにぃ。
まぁ、エディタのカーソルが対応しないのは、諦めるとしてチョット残念。
190名無しさん@1周年:2001/08/17(金) 00:46
age
191名無しさん@1周年:01/09/21 10:06 ID:dkTzgy2Y
PICとかAVRに繋ぐ、シリアルのDAコンバータで
通信販売で気軽に買えるものって何かないですか?
192名無しさん@1周年:01/09/25 23:08 ID:r4w5SPvQ
 CCS社のPIC用Cコンパイラですが、Ver3に上がってから日替わり更新してるので、
業務用開発に使って良いのか不安です。
 Ver3の32bit演算は使いたいし、Ver2.734の安定感も捨てがたいし…
今、実際に使われている方のご意見きぼーん!
193名無しさん@1周年:01/09/26 09:40 ID:ep9N/yE.
>191
PICは忘れたけど、AVRならPWM出力あるけどRC積分で使うんじゃダメなの?

どうしてもシリアルD/A使いたいのならMAXIMに無料サンプル貰うとか。
最近やっとアナデバも無料サンプルくれる様になったんだっけ?
申し込んだ事ないけど。
194HP200LX:01/09/28 11:48 ID:SkRf.jQk
PIC互換で4倍速と言うSCENIXはどうでしょう。
SX-KEYを買ったのですが1回使っただけで埃かぶってます。
195あさはかマン:01/09/28 12:55 ID:vQT8GiRs
あのクラスのマイコンの中でも特に、
PICはコアが使いにくい欠点をカバーする程
多品種で安定な供給と安直な書き換えが売りなわけで

いくらPIC互換でも、IPを売るタイプでラインナップの細いScenixは
客先の細かな仕様を尊重する時にFlashマイコンを使う傾向がある
日本には向かない可能性大。

#おまけに速度ではAVRが僅差で追い上げているという状況。

Scenixマイコンと開発環境は、
自分から「こういうのどう?」と作るときは、巧く使えば強い味方。
しかし、他人から頼まれて物を作る時にはあんまりお勧めできないって事です。
196ななし:01/09/28 13:52 ID:YLGputZ6
>>195 なるほど、よく分かりました。
197名無しさん@1周年:01/09/28 15:22 ID:XeEUvCV6
PICのPWM出力って877で2本だっけか。もっと多く出せるやつあったっけ?
198ななし:01/09/28 15:49 ID:YLGputZ6
FED-Cはどう?。Ver7で浮動小数点使えるようになったみたいだけど。
199名無しさん@1周年:01/10/07 10:18 ID:BMUWlHM2
FED-Cって9800円くらいでとても安い気がします。
Cコンパイラとしての位置付けは
HITECH-CとPCWの間とか宣伝されてますけど
性能の方はどうなんでしょうか?
200名無しさん@1周年:01/10/09 23:57 ID:VAcCUnjY
PICのEEPROMを使用するときに気になることがあります。
それはPICがEEPROMにデータを書込み中にタイミングよく
電源がOFFすると書込み最中だったデータはどうなるのか
という問題です。消えてしまうのでしょうか?もしくは
それに対する対策なりはあるのでしょうか?また外付けの
シリアルEEPROMなども同様の問題が発生する可能性が
あるのでしょうか。
201あさはかマン:01/10/10 23:49 ID:LediBD0s
>>200
そりゃまあ・・・書いてる途中で電源が切れれば、
書き込み用トランジスタは保護されますが、
書き途中のデータ構造は救い様ありません。

そんなわけで、フラッシュメモリを使う場合は
電源が落ちる直前に電源電圧低下検知回路からの割り込みを入れておくと安心ですが、
電源に信頼性のある昨今では、普通そこまでしません。
202名無しさん@1周年:01/10/12 14:08 ID:LfPoRYMs
ImagecraftのAVR用Cコンパイラdemo版良いですよね。

でも、10/5付のVer6.23をインストールしても
レジストレーション画面でハジかれて動作してくれない。
前のバージョンだと大丈夫なんだけど。
Ver6.22bが記念版として特別だったのかなぁ。

ココの社名って略すと”イメクラ”なのねぇ。
203200:01/10/13 19:44 ID:J9.Ct5pA
レスありがとうございます。

実は電源は昔ながらの変圧器、ブリッジダイオード
三端子レギュレータといった構成なんです。

心配なんで電源電圧低下回路で電源を監視しといて
電気二重層コンデンサで最後のEEPROMへの書込みを
持ちこたえようと考えたのですがこれは考えすぎですか?
もしくは三端子レギュレータの発振防止用コンデンサ(47μF)
で十分ですか?
204保守係:01/10/14 00:25 ID:EZSHrkh.
>>199
 去年FED-CのVer3買いました。
Cは初めてでしたのでCの参考書も一緒に買って練習しました。
そんなレベルなので語れないです。
 なら出てくるなよ!って・・・(ゴメン)
205名無しさん@1周年:01/10/14 08:36 ID:axZP7zkd
>>202

デモ版はなんらかの機能制限があるのですか?
PICからAVRに乗り換えようと思っているとこなんですよ。
AVRの方が速くて安いし。PIC18シリーズはまだ出回らないし。
ただ安定的にAVRが供給されるかが心配・・・・
206あさはかマン:01/10/14 09:42 ID:iWWhCUVN
>>203
つまり、保護回路をいれるなら

1.
回路の消費電流から、
PICの定格動作電圧範囲の下限になるまでの時間を求める。

2.
PICのデータ書きこみに掛かる時間を求める。

3.
電源線の低電圧検知回路の動作下限を上記2つのパラメータから決める。
このとき部品定数の誤差を見ておく必要がある。
マージンが足りなければ1.へ戻り、コンデンサの容量を増やしたりして
時定数が足りるところまで持ちこむ。

・・・
設計上トラブルを起こしやすい部分でもあります。
不揮発にする必要があっても、何時か電源を入れることが判っている場合は
バックアップ電池+発振停止スリープの方が安全です。
207202:01/10/15 10:45 ID:79I3ZKw4
>>205
1.生成できるコードサイズが制限されている。(1kByte以内だったカナ?)
2.インストール後30日で試用停止になる。(以降どうするかは各自の裁量で)

AVRの供給は、そんなに数量も使ってないケド、別に困った事ないですけど。

PICはたま〜にアセンブラで使うだけので、Cコンパイラは未評価です。

IAR system(www.iar.com)のPIC/AVR/H8等のデモ版は専用オブジェクトしか生成できないので
書き込み→実行確認ができないので、評価できないモノでした。
208あぼーん:あぼーん
あぼーん
209203:01/10/15 22:44 ID:iJmeJ4Gz
なるほど
バックアップ電池+sleepが確実ですか。
でもいつ電源を入れてもらえるか心配・・・・
210:01/10/16 13:35 ID:GmXWBnNQ
古い話でスマンが、22の解説がいまいち分からんのよ
ハードウエア回路を例にした説明なのかな?
自然二進数を入れるとはレジスタにパラレルロードなの?
211AVR初心者:01/10/23 08:30 ID:nLYyQb6m
これからAVRをやってみよと考えているものです。ちなみにPICは
経験済みです。AVRのコンパイラを選定するにあたってgccにするか
ICCAVRなどのメーカ製にするかなやんでいます。コンパイルの正確性
、関数、使いやすさなどはgccとメーカ製を比較してどうなんでしょうか。
212あさはかマン:01/10/23 09:04 ID:uMWt9umn
gccの性能は非常に高いです。
AVR Studio上で実行個所のトレースを取る事もできます。

そのかわり、
売り物に組みこむのであれば、使用許諾書を良く読む必要があります。
213AVR:01/10/23 18:00 ID:HxlKGjMZ
>>210
 どもすみません、読み返したら自分でも分かりづらかったです。手品の
 タネは3つあってですね、
1. 6(0110)を足す方法の有効範囲は、ゼロ(0000)から19(10011)までOK
2. BCD数値(0〜9)は左シフト(2倍)しても最大18までしかならず、上記方法が有効
3. ゆえに普通の左シフトをしつつ1シフトごとに上記補正をすれば「BCD的左シフト」が実現できる
ということです。
(右シフトの方法は頭の体操にどうぞ)
214AVR初心者:01/10/23 20:39 ID:nLYyQb6m
あさはかマンさんどうもです。
AVRに書き込むことのできる道具はあるので
gccを使ってみようかと思います。
215名無しさん@1周年:01/10/23 20:51 ID:8WPVcvqo
216あさはかマン:01/10/23 21:40 ID:uMWt9umn
>>214
AVR-gccに詳しいサイト(再掲)

AVR Freaks
ttp://www.avrfreaks.net/
英語ですが、ここにAVR-GCCの全てがあると言っても過言でないです。

ttp://ww2.tiki.ne.jp/~maro/
日本語です。内容も結構興味深いです。
217名無しさん@1周年:01/10/24 17:57 ID:HbGxhepW
Cを使うべきてこと?
機械屋には…
218AVR初心者:01/10/24 20:47 ID:oUWtyIg6
だだいまAVR-GCCをセットアップ中です。
結構てこずってます。
簡単にできる方法はないものでしょうか?
219あさはかマン:01/10/24 22:34 ID:jPVJ3bMQ
>>218
ここのAll-in-one Install programを試してみてYO!
ttp://www.avrfreaks.net/AVRGCC/download.php
220AVR初心者:01/10/24 23:21 ID:oUWtyIg6
名前: AVR初心者
E-mail:
内容:
オールインワンパッケージをインストールして

ttp://www.toshu-ltd.co.jp/gaki/electronics/AVR/AVR.html
の解説をたよりにどうにかコンパイルまでは成功しました!!!
どうもです!!!!
でもこれちょっと初心者のひとには分かりづらいですよね。

つげは石を手にいてれ書き込んでみようと思います。
221名無しさん@1周年:01/10/31 04:30 ID:a7LkxvyP
PIC初心者です。
PCWでレジスタって直接叩けないんでしょうか?
マイコンは今までずっとアセンブラでやってきたのでよくわかりません。
どなたかお願いします!
222名無しさん@1周年:01/10/31 05:11 ID:BfmoDB1H
あわてないでもう少し状況が分かるように書いてくれるといい。
とりあえず、
http://www.hdl.jp/pic/ccsc/ccsc_faq.html
深夜だけど仕事ですか。
223221:01/10/31 05:27 ID:a7LkxvyP
>>222

リンクありがとうございます。仕事は疲れちゃったんで帰ってきちゃいました(^^;

で、具体的な話ですが。
UARTの受信バッファをクリアしたいんですけど、Cだとどうすれば良いのかわからないんです。
とりあえず、#ASM〜#ENDASMで解決しましたけど、アセンブラを使わない方法は無いんでしょうか?
224名無しさん@1周年:01/10/31 20:17 ID:oWwpwpun
age
225221:01/11/01 04:10 ID:Uy7Z2mPn
うお〜誰も教えてくれない。
もしかして俺ってすっごく的外れな質問してます?
226名無しさん@1周年:01/11/01 04:44 ID:LsI4aVQM
ここは、もし仕事上の質問だと分かれば放置を覚悟した方がいい。
おれはそのCは知らんしマイコンも専門外だが、
↓でライブラリをダウンロードしてみ。参考にならんか。
http://ww2.tiki.ne.jp/~maro/PIC/C2C/#c2clib
222の人が紹介してるサポートサイトにメールすればイッパツじゃないの?
227221:01/11/01 04:56 ID:Uy7Z2mPn
>>226
>ここは、もし仕事上の質問だと分かれば放置を覚悟した方がいい。
なるほど。言われてみれば当然の話ですね(笑)。失礼しました!
ありがと〜>226
228PIC16F873:01/11/01 13:13 ID:HszNB6AT
>221
EXAMPLESディレクトリのサンプルソース見ればわかりますよ。
#byteでアドレスを直接宣言すればいいのでは?
229名無しさん@1周年:01/11/02 00:33 ID:oWDEU5F8
>>228
それでダメだったから聞いたと思われ。アセンブラの経験ありだから。
230名無しさん@1周年:01/11/07 16:05 ID:BaCKHH0c
PICプログラミングポケコン。さすが目のつけどころがシャープ?
http://www.sharp.co.jp/corporate/news/011105.html
231 :01/11/07 16:48 ID:IAvxIfIO
>>230
おお、いいな。これ欲しい。
値段書いてないね。いくらだろ?
232名無しさん@1周年:01/11/07 18:49 ID:X+r9libh
ポケコンとはポケットマネーで買えるコンピュータのコトだから
300えんくらいかな?
233名無しさん@1周年:01/11/07 21:16 ID:2P2rrMXA
PICアセンブラの隠し機能でパララックスや秋月のツールにある
ボーランドのIdealモードみたいな構文食ってくれないかな。
(マクロでも良いけど)

フラッシュROMを書き換えてAVRにも対応できるなら、いとうれし
234名無しさん@1周年:01/11/07 21:21 ID:Rri3QUi5
つーか、Sharpってまだポケコンの新製品作ってたのか・・・。
235名無しさん@1周年:01/11/08 00:51 ID:pK3zLnyU
つーかまじ値段教えて。
正月にでも買いたいです。
236AVR:01/11/08 01:00 ID:yp3WCSW1
>>234
数少ない日本の伝統芸だからやめないで欲しいす。

そのポケコンのサイトにあった一文、
>>検定試験に必要な度分秒(60進数)計算機能を搭載
購買ターゲットは?
237名無しさん@1周年:01/11/08 02:18 ID:oTyExEqy
以前発売してたPC-G850Sってポケコンは14,500円だそうです。
http://www.sharp.co.jp/sc/gaiyou/news/990930-2.html
あとはてきとうに推測してください。
けどこれ学校向けだから一般販売するのかな?
238名無しさん@1周年:01/11/08 06:01 ID:wLFiEOpw
なんかイタい
239名無しさん@1周年:01/11/08 11:15 ID:g0LifHNC
クリーンコンピュータだとしあわせ
240名無しさん@1周年:01/11/08 23:05 ID:QXZisygz
っつぅか、秋月に売っている液晶表示機と、16C877あたり組み合わせれば
簡易モニタ付きスタンドアロンPIC機って出来そうな気がするが。
キーボードが問題だな。ポケットボードあたりを流用するとか。
241名無しさん@1周年:01/12/03 14:25 ID:SDhTANkF
PICアセンブラのPAのサイトが消えてるんですけど。
今どこにあるんでしょ。
私はあれがないとPICのプログラムが組めません。
242AVR:01/12/04 01:19 ID:7A9JWv4v
ほんと消えてますね。あれまあ。すると秋月のサイトにあるバージョンだけですか。
243名無しさん@1周年:01/12/04 22:23 ID:pe0Pnzpz
PICを乾電池で長時間つかえるようにしたいのですが
PICの動作電圧を落とすことはできないのですか?
データシートには3Vのときの消費電流などが記載されているのですが
低電圧駆動専用のタイプを購入する必要があるのでしょうか?
244名無しさん@1周年:01/12/05 00:12 ID:aX3F3a6C
だそうですよ。
245ЯVA(w:01/12/05 01:55 ID:kuta4Umq
もし間欠的な処理(例えば毎秒10回、1回あたり数ミリ秒の処理)でOKなら、
スタンバイモードを使えば相当長く持ちますよ。例えば電池3個で1年以上動くも
とかのをやっtます。
246ЯVA(w:01/12/05 01:59 ID:kuta4Umq
特に低電圧品てのがあるのか知りませんが、普通に売ってる16F84でも
下は2Vをギャランティーしてるみたいですね。
247名無しさん@1周年:01/12/05 10:47 ID:QSObP/Ty
>>241
見てないけど、PIC-MLで落合さんに直接聞いてみれば?
PAってparallaxのアセンブラと同等な書式だったっけ?
ftp.armory.com/pub/user/rstevew/PIC/Parallax
一応参考で
248名無しさん@1周年:01/12/05 15:13 ID:ZaCK2kdL
PICライタを使いたいのですが、私のノートPCにはシリアルポート
がありません。
USB<=>RS-232C変換コードを使おうと思っているのですが、
これでも動作しますか?
249248:01/12/05 15:16 ID:ZaCK2kdL
シリアルのPICライタはこれを使おうと思っています。
http://cgi.biwa.ne.jp/~jr3roc/pic/
250名無しさん@1周年:01/12/05 20:27 ID:3KkdQUoh
パラレルタイプでは駄目ですか?>>249
251248:01/12/06 11:27 ID:1doVMYx3
>>250
パラレルポートもないんです(T T)
あと、電源を別途用意したくないのでシリアルの方がうれしいです。
252暇人:01/12/06 17:07 ID:5TKdZtwc

最近の 16F628とか 90s2313とかについている
アナログコンパレータって応用として何に使うモンなんですか?

すんなりADコンバータついてるほうが嬉しいのにナァ...

というモレは厨房ですか?
253名無しさん@1周年:01/12/08 13:24 ID:23zNdygV
>>248
つかえますよ。
IOデータのを持っているのですが、それを使用して書き込むことができました。
もしうまくいかないときはデバイスマネージャーのポートを見直してみれば
使えるようになるはずです。
254253:01/12/08 13:26 ID:23zNdygV
あ、実際に使ったライターは秋月のキットでした・・・
255あさはかマン:01/12/08 14:03 ID:Zql7l/TM
>>252
いろいろと使えます。

・電池の残りを電圧でチェック
・A/DまたはD/Aコンバータを作るとき
・微小な振幅の交流信号を入れる時。特に音波などに有効。
・アナログ値を返す、けどON/OFFしか要らないセンサをつなぐ時

まあ、なんにせよ大きさと値段の制約が無いなら
A/Dを積んだほうがよい場合が多いですが。

>>248
ソフトウェアを見る限り、8割方動きそうです。
秋月キットならば間違いなく動きます。

#USBシリアルって高い・・・・
##USB-PIC/AVRライタを作ったら売れるのかな・・・?
256名無しさん@1周年:01/12/08 14:53 ID:23zNdygV
USB-PIC/AVRライタを安く作ったら売れるかも・・

でも、USBシリアルは高いけど、結構いろいろ使えるから
持っておくといいですよ。

シリアル使いたいって思うこと時々ありますからねぇ。

ま、PCにシリアル端子がついていれば必要はないんだけど(笑)
257名無しさん@1周年:01/12/08 18:54 ID:4Lv6+r8e
sage
258248:01/12/10 08:19 ID:ygj/mIEr
>>253,255
ありがとうございます。
一番簡単そうな、このPICライタを使おうと思っております。
http://cgi.biwa.ne.jp/~jr3roc/pic/

>>256
USBシリアルって何で高いんでしょう...
259名無しさん@1周年:01/12/11 00:16 ID:VoTsfffh
ホント。なぜ高いのか。
260名無しさん@1周年:01/12/11 00:22 ID:YUpGHNFE
買う人がいないからかも・・・
261名無しさん@1周年:01/12/11 01:27 ID:3KRI/SlI
最近USBシリアル買いました。便利です。

USBシリアルはシリアルをエミュするところが結構面倒くさい
らしいです。Win2Kだと標準ドライバがあるからいいけど、Win98なんか
だと独自ドライバを作る必要があったりで、それを同梱するためのライ
センス代とか。

それよりも、あまり売れないから、というのが理由のような来もするけど
>高い理由
262名無しさん@1周年:01/12/11 01:38 ID:2DnFJxhw
誰かavrで自作してブレークスルーしてくれ。
自作する人数が減ったからか?>高価
263名無しさん@1周年:01/12/11 07:30 ID:nvVW0sjG
ATmegaって高いですね・・・
H8と比べてどう利点があるのでしょうか?
264258:01/12/11 09:54 ID:XE6D+2mD
USBと携帯電話を繋ぎ、COMポートとして通信するケーブルが
比較的安く売られていますが、
これを改造したらUSB-Serialとして使えないかな。。。
265暇人:01/12/12 02:18 ID:EpgEN0Wv

>>264
> USBと携帯電話を繋ぎ、COMポートとして通信するケーブルが
> 比較的安く売られていますが、
> これを改造したらUSB-Serialとして使えないかな。。。

最近の安もの USBシリアルならおな〜

じくらいの値段では?
266名無しさん@1周年:01/12/17 00:59 ID:c6O3WLAx
アセンブラで虚数データの書き方が分かりません。
267名無しさん@1周年:01/12/17 01:14 ID:Gs8U7qDO
>>264
エレコムのだったら5,000円は切っているとおもうけど、これでも高い?
(いや確かにマウスに比べりゃ、ずいぶん高価ですね)
268名無しさん@1周年:01/12/17 01:49 ID:Qlt2FP0c
>>266
ネタかと思ってたけどひょっとしてマジ?
269名無しさん@1周年:01/12/17 02:08 ID:fSNDFRL9
>>258
成功したら教えて下さい。
私は、それ作って動かなかったんで秋月のキット買いました。
USBシリアルの環境でね。
270名無しさん@1周年:01/12/17 23:35 ID:Qa7hq+yh
最近秋月って面白そうな品物減ったね。
不正競争防止法対象商品が扱えなくなったってのを
差し引いてもさ。
271名無しさん@1周年:01/12/18 07:56 ID:vx+Iz8YH
16LF877を電池動作させることを考えてます
電源範囲が2〜6Vなので1.5V×3の4.5Vで使用し、
一本あたりが0.9V程度の合計2.7Vになるまで
PICを駆動しようと思います。
このときPICを電池で直接駆動していいものでしょうか?
それともDC/DCで電圧を一定値にしたほうがいいのでしょうか。
EEPROMも使用するので電池で直接駆動した場合
write時とread時の電圧の違い(たとえばwrite時2.7V、read時3.5V)
も心配です。
272あさはかマン:01/12/20 21:33 ID:vdJDhmBJ
冬!
273あさはかマン:01/12/20 21:40 ID:vdJDhmBJ
>>271
定格電源電圧範囲の間ならデータブックの内容は保証されます。

ちなみに、電源電圧を下げると
ひょっとすると書き込みに掛かる時間が増えるかも。

それと、2.7Vに達したときに電源を切る回路、もしくは
2.7Vに達した時点でPICがSTOPするシステムを構築しないと
2.0Vを切っても動作しつづけようとするので危険です。
274名無しさん@1周年:01/12/21 12:56 ID:UQ2Y1BrD
そういえば、秋月スレってないんだっけ?
275 :01/12/21 14:38 ID:fmu1X2R+
>不正競争防止法対象商品が扱えなくなった
具体的に何の商品でしょうか?
276名無しさん@1周年:01/12/21 16:08 ID:eAh7SxFr
>>275
シリアルコピーマネージャ、ビデオコピーガードキャンセラ。

今一番欲しいのはパッシブカラー液晶モジュールを実用化するキット。
数年前買ったままほっぽりっぱなし。「AKI-80、AKI-H8等の
表示器用に最適です。」とか書いてあったから簡単に使えると
思って買ってしまった。
277名無しさん@1周年:02/01/23 13:12 ID:OokEL+MH
>>241-242
遅レス。
昨日見たら復活してましたね。

秋月のAVRライタを8,28pinに改造する情報が出てましたが、
正規品は新版になっているのかなぁ?

(28pinのAT90S4433ってPBポートが6bitになっちゃうんだね)
278名無しさん@1周年:02/01/23 17:18 ID:4m7wXr5r
PICの外部接点による割り込みにがよくわからないのですが、
RB0の立下り(立ち上がり)による割り込みと
RB4などの状態による割り込みはどう違うのでしょうか。
結局どちらも同じように働くと考えてしまうのです。
状態による割り込みはある一定の幅を持ったパルスが検出されないと
作用しない(ノイズにつよい)といったことがあるのでしょうか???
279あさはかマン:02/01/23 19:00 ID:YmuzbIDl
>>278
状態変化(エッジトリガ)以外にレベルトリガが出来ます。
外部機器から割り込みを出しっぱなしに出来るということ。

何が便利かというと、

割り込みがさほど重要じゃないときに
割り込みフラグをリセットして後回しにしても(割り込みの保留と言う)、
信号が出つづけている限り何度でも
割り込みを再立ち上げする事が出来るのです。
280名無しさん@1周年:02/01/24 06:54 ID:X69tQTfF
>>277
>>秋月のAVRライタを8,28pinに改造する情報が
HPキボーン
281277:02/01/24 11:12 ID:NHu7b+o9
>>280
フツーに秋月からLinkを辿ってちょ
(10月に更新されてた)
ttp://www.akizuki.ne.jp/update/taka/avr_pgm/avrpgm.htm
282277:02/01/24 11:47 ID:ki+KisHI
AT90S4433でPBが8bitで無くなったのはイタイ。
PDは8bitだけどシリアル,外部割り込み兼用でフルで使えない場合が多い。
2313と比べるとA/D用に2ピン(2bit)分が犠牲になった感じ。

後から出すんならピン割り当てを上位互換にして欲しかったなぁ
A/Dは4chにして2313からの変更が最小限になる配置を妄想すると

1:/RESET
2:PD0(RXD)
3:PD1(TXD)
4:XTAL1
5:XTAL2
6:PD2(INT0)
7:PD3(INT1)
8:PD4(T0)
9:PD5(T1)
10:PC0(ADC0)
11:PC1(ADC1)
12:PC2(ADC2)
13:PC3(ADC3)
14:GND
15:AGND
16:AREF
17:AVcc
18:PD7
19:PD6(ICP)
20:PB0(AIN0)
21:PB1(AIN1)
22:PB2
23:PB3(OC1)
24:PB4
25:PB5(MOSI)
26:PB6(MISO)
27:PB7(SCK)
28:Vcc
283名無しさん@1周年:02/02/01 14:14 ID:ZzZLFtVs
AVR/PICじゃないけど同じマイコンってことで...。
最近CygnalのC8051F300を使ってみました。
UART/I2C/TIMER/ADCと内蔵機能が豊富
使えるI/O数は8本とちょっと少ないけど
内蔵OSC(24.5MHz)、1命令/1or2クロックで動作するので結構ヨサゲです。
最大の問題はパッケージが3mm角なので小さすぎること(笑)
284名無しさん@1周年:02/02/01 19:24 ID:x5s51v/x
>>283
三洋がOEMで出してるヤツでそ。
評価ツールやchipの単価高くなかった?
漏れは、それで諦めた
285283:02/02/01 19:40 ID:ZzZLFtVs
>>284
チップ単価は$10.59、評価キットは$99ですね。
AVRにくらべてチップ単価が3〜4倍するのでたしかに高いけど、AVRだと力不足の時には
選択しにはなるかなと。(それに趣味なのであまりコストには気を使ってません(^^;)
286あさはかマン:02/02/01 20:03 ID:D2qM28ev
>>283
三洋のホームページでスペックは押さえてます。
I2Cバスがおいしい所です。I2Cあると結構便利。
3mm角というパッケージでないと他ベンダのMCS-51系マイコンに対して
勝ち目がないのが辛いところです(藁

本当にインテリジェントなIPMとか作れそうだし
CSPの実装技術があるならぜひ使ってみたいチップの一つ。

実はATMELもMCS-51互換チップとして89シリーズを出していて
その上位機種として90シリーズであるAVRを位置付けているようです。

AtmelのMCS-51シリーズ
http://www.atmel.com/atmel/acrobat/feature.pdf

そういう経緯あってなのか、AT90S8515は本家i8051/i8751に対して
そのまま置き換えが利きそうなピン配置になっています。
287名無しさん@1周年:02/02/01 20:42 ID:Kgj3Lohq
ところでAVRとは何の省略形?
AはAtmel…
288名無しさん@1周年:02/02/01 21:18 ID:ZzZLFtVs
>>286
F300はたしかに小さいけど、ピン間0.5mmなのでハンダゴテで実装可能っすね。
289あさはかマン:02/02/01 21:34 ID:D2qM28ev
>>288
そういえばQFPでしたっけ?
CSPだと思ってた・・・
290名無しさん@1周年:02/02/01 21:48 ID:ZzZLFtVs
>>289
http://www.semic.sanyo.co.jp/c8051/jp/f300/images/f300_image_04.gif
QFPじゃないけど0.5mmもあれば手ハンダOKでしょ。
291あさはかマン:02/02/01 23:43 ID:D2qM28ev
何とかなりそうな気はするけど
やっぱり
リフロー用でしょう・・・これは。

#SDRAMに無理やり遅延スタブ線をつけたときのことを思い出す・・・・
292名無しさん@1周年:02/02/02 00:13 ID:YGShd8oS
まあお仕事で使うときはリフロー使うけど
趣味でやるなら手ハンダ数分でOKだったです。
293名無しさん@1周年:02/02/02 00:20 ID:Bl7zX4Ap
>>287
頭文字がAの人とVの人が作ったRISCとかって昔読んだ憶えが。
本当かどうかは知りませぬ。
294名無しさん@1周年:02/02/04 17:33 ID:SacTPr5F
PICでI2Cをやってるけど、うまくいきません。スレーブでi2c_read()のコマンドを出した後にプリント文を表示させたら、スレーブのアドレスが表示されて、データが表示されず、うまく行きません。どうしたらよいのでしょうか?
295あさはかマン:02/02/04 20:19 ID:vm5N+Uew
うーん・・・PIC Cは使ったこと無いのでわかりませんが、

一般の組み込みに措いて、c言語のPrint系関数は非常に遅いうえに、
シリアルポートには秒間1000字ぐらいしか出せませんので、
処理速度に重大な影響をもたらします。

通信処理が終わるまでデータをそっとしておいて
通信し終わった後データを表示する構造にするのはいかが?
296名無しさん@1周年:02/02/05 17:57 ID:DAU4jG1G
そういえば、ふと疑問。AVRのタイマ割り込みって、数値上はかなり小さい時間で割り込み
かけられそうだけど、実際の所どうなんだろ。
10MHz、1/64にして、カウントを0xffからカウント(1カウント目でOVF割り込み)にして、
ちゃんと動く物なのか、気になる。ご存じの方いらっしゃいます?
297名無しさん@1周年:02/02/06 11:41 ID:G9gJopMH
13us周期のタイマ割りこみはやったことあります。
298名無しさん@1周年:02/02/07 13:41 ID:b68jRpt5
>>295
やってみたけどだめでした。ほかに何か原因が考えられますか?
299名無しさん@1周年:02/02/07 22:50 ID:tvP63MuC
>>298
http://www.hdl.co.jp/pic/ccsc/ccsc_faq.html
ここは参考にならん?I2Cの事も若干のってるようだが。

I2C、FPGAじゃやった事あるけどPICじゃ経験無いしな。
I2Cだけアセンブラで組んでみたらどおだろう?
300嶋は僕の父ではありません:02/02/08 02:08 ID:pW0AoMD5


            ┏━━━┓
          ┏┫      ┣┓ 300ゲットォ〜
          ┏┫      ┣┓
          ┏┫      ┣┓
          ┏┫ Z80 ┣┓
          ┏┫      ┣┓
          ┏┫      ┣┓
          ┏┫      ┣┓
            ┗━━━┛
301名無しさん@1周年:02/02/08 18:12 ID:qf4QCE/u
windows で焼いたmp3がxmms-1.2.5のプログラムリストで
日本語が表示できません。どうすればよいのでしょうか?
302名無しさん@1周年:02/02/09 11:00 ID:vGNbpK/o
>>287
Alf and Vegard's RISCですな。
トラ技2000/7にノッテターヨ
303名無しさん@1周年:02/02/24 10:09 ID:QOZ2jlFU
PICライタを自作して
バックギア連動ドアミラーsageを作ってみました。

PICってオモスィロイ。
304名無しさん@1周年:02/02/24 12:10 ID:KU3VYOjB
おおそれは。
305あらら!:02/02/24 12:11 ID:KU3VYOjB
おおそれは。
参考にさせてくださいよ。
電源は何ボルトでどうやりましたか
クロックはいくつですか
ソフトのリストを公開きぼーんです
車種も
306名無しさん@1周年:02/02/24 14:11 ID:WYLcpUoP
今は机の上で5Vの電源で動かしてます。
電源はACCの12Vから7805をカマして取る予定です。

クロックは10MHz。
車種は先代インプレッサだけど、ミラースイッチASSYにNISSANって
書いてあるよ。

実は車側の解析がまだなんだ。age、sageのスイッチをリレーで
ショートさせるんだが...誰か配線図持ってません?←逆質問

リストはちょっと待ってて。
307ドアミラーsageれ:02/02/24 15:01 ID:WYLcpUoP
スイッチ解析完了〜♪
リストは明日秋葉に来ればあげるよー

7805を買うために秋葉に逝くのも何だかなぁ
学校に寄ってデータシートをたっぷり印刷して来るか。
308名無しさん@1周年:02/02/24 21:43 ID:3ygCaMsi
>>306
君ねえ。ここは工作自慢の披露板ではないぞ。
そんな態度してるとまともなカキコは2度とレス付けないぞ。
少しは大人の付き合い方を覚えろ。
309名無しさん@1周年:02/02/25 01:00 ID:F+UYZmbT
車の配線なんかは、ディーラに逝って整備マニュアルの電装編見せてもらえば
参考になるはず。といっても、単なるスイッチだってわかってるなら、そこに
SSRでも入れれば。
なんでもいいが、データシートは印刷するとかさばってしょうがない気がする
のだけどどうよ。
310名無しさん@1周年:02/02/25 09:33 ID:6UPgppMV
>>308
しばらくROMに徹して修行します。

>>305
という訳で、申し訳ないですがご自分で...

>>309
どうもです!!ただのスイッチでした。SSRでもOKだと思いますが、
手元に5Vのメカニカルリレーが転がってるので利用したいのです。
4066もあるので、こっちが使えればもっと楽ですが、ちょっと怖い。
311305:02/02/25 23:26 ID:HH21XTyH
じゃ、そゆーことなら。。
312名無しさん@1周年:02/02/27 00:13 ID:x95Joy3P
うりゃ!アゲ
313名無しさん@1周年:02/03/08 15:17 ID:sz548KS5
AVR Studio 4
が出てるけど、誰か使ってみた?
314名無しさん@1周年:02/03/09 14:33 ID:KzDH3j9b
>>313
日本語がきちんと表示できるようになったし、全体の見た目も良くなったのですが
ATMegaしか対応してないみたいですね。そこが残念です。
315313:02/03/09 22:06 ID:M+eZ/3uz
>>314
ほんとだ
だめじゃん
でも日本語表示が改善されたのなら今後に期待(Ver3.54?)
316_:02/03/10 23:27 ID:m84+6vRO
chanさんのサイトにあるAVRパラレルライタを作ったんだけど
8ピンAVR(高電圧シリアルプログラミングモード)だけ書き込
みできない鬱死・・。
317名無しさん@1周年:02/03/22 07:26 ID:2xXckOpG
まったくの初心者かつ厨房ですが、PIC使って
プロコンの代わりをさせたいんですが、
(入力6点、出力4点、タイマー6点ほどの規模)
どうすれば良いか教えて。
318名無しさん@1周年:02/03/22 07:38 ID:t+LWyFTn
なぜAVRにしないのかが疑問である。なぜあえて困難なPICを選択したのか。
もしアプリが豊富にあるというのなら、わざわざここで聞かずにアプリから探せ
と小一時間思うが。
319317:02/03/22 09:00 ID:2xXckOpG
>>318
ありがとうございます。AVRのほうが楽なのですね。
ところで初心者でもわかるAVRの学習キットのようなものが
ありましたら教えてください。小生、ソフトウェア
まったく無知です。
320名無しさん@1周年:02/03/22 09:04 ID:Mpw1mnhK
PICが使いにくいのはintel系(Z80含)の
アセンブラ経験があるからですか?
321名無しさん@1周年:02/03/22 13:25 ID:5q2SZVYB
>>317
タイマー6点をどう処理するかが初心者には難しいと思われ...

純正のニーモニックが体質に合わなければ、上の方に書いてあるpa.exeか
パララックスがちと楽。(まぁマクロ書いても良いけどね)

AVRでもタイマは1個だよん。いっそH8にするとか。
322317:02/03/22 14:08 ID:2xXckOpG
>>321
するとAVRでは無理なのですね。
やはりマイコンいじらないとだめですか
ああ、むずかしそう。
323名無しさん@1周年:02/03/22 14:18 ID:3bbPZazz
無理ってなぁ。タイマ6点の精度にも依るけど、高い精度が必要でなければ
タイマ1個で処理出来るだろう。それと、>>321。AVRはタイマが2個乗って
品種の方が多いぞ。
プログラム的に1つのタイマを分割して使うことを考えてみるのがいいと
思うけど、がんばってみたらどうよ。
324あさはかマン:02/03/22 15:19 ID:q3/cpz3q
それ以前にタイマ6つを独立して動かすのも
割り込み応答速度とか考えると避けて通りたい道の一つ。

複数タイマの駆動は、余程の速度が必要なときか、
ハードウェアでタイマ同士(タイマ->DMAとかも)が
連携する場合とかに使えますが、
割り込みが介在すると精度すら怪しくなる気が。

H8の多連タイマはむしろ3相交流PWM発生用だと思うし。

・・・ところで
AVR Studio4はCPUエミュレータがベータ版のようです。
多分、4.1リリースの時にはClassic AVRのサポートは付きそうだと思われます。

ついにgcc出力のデバッグで、
エディタ上でCソース上の変数が読み出せるように成ったとか。
325>317:02/03/23 06:10 ID:cu8Zo8xy
しーっ!このスレには、常陸の国の患者(間者ではない)が潜んでおる!
自分の信仰するマイコン以外に客がつくのが妬ましくてならず、素人を
ウソでたぶらかしてでも自スレに引きずり込もうと常々から画策しと
るのじゃ!
くれぐれも御油断めさるでないぞ!
326317:02/03/23 08:47 ID:QnojgxaO
ご忠告ありがあとうございます。
くわばら、くわばら
327名無しさん@1周年:02/03/23 09:40 ID:LnicB+le
プロコンって何すか?
328317:02/03/23 10:31 ID:QnojgxaO
プログラマブル コントローラーの略で、予め用意されてる命令語を
使って、簡単なラダープログラムを組むことによりシーケンス制御
を行うことができる装置です。
工場の生産ラインでの制御とか、自販機に多用されています。
329名無しさん@1周年:02/03/23 18:08 ID:0IkpzOcs
>>318
本屋にPICの本はうなる程売っているが、AVRの本は無い。(トラ技とかで特集はあっても)
H8の本も少量だし。
330名無しさん@1周年:02/03/24 00:16 ID:4ZCS1C1K
>>329
本にするほどのネタがなかったりして(簡単過ぎて)
ちなみにAVRの本は一冊あるね。(あまり役にたちそうもない内容だったが)
331名無しさん@1周年:02/03/24 13:02 ID:BiAG+Uy1
たしかにAVRはアプリケーションノートとデータシートを見て、他の人のソース
を眺めれば大体わかるぐらい簡単なCPUでした。

自分はアセンブラでROMデータ参照で、アドレス×2でlpmするのが必要という
のがひっかかったぐらいかな・・
332名無しさん@1周年:02/03/24 13:51 ID:pporONIY
 資料が少ないから逆燃えるんじゃ?(w

 どつもこいつもPIC、PICって言うから反発してAVRを
使いたくなるのが心情かと。

 ただ、AVRはPICに比べて変な癖がないからデータブック
だけでも十分な気がする。
 CQ出版の本を持ってるけどアレだけで十分じゃないかな。

 なんて言うかAVR同人誌でも出しますか。(w
333317:02/03/24 21:21 ID:eFVRv2kZ
おすすめのAVRの品番教えてください。
334名無しさん@1周年:02/03/25 00:52 ID:TKRjjmUf
335AVRER:02/03/25 01:57 ID:/CO5nn/7
てーか英語の奴よめよみんな。。。

あまえてんじゃねー
336ЯVА:02/03/25 01:58 ID:AaolDbMC
>>317,333
お勧め品種、2313 はいかがすか。店頭単価¥370_ポッキリ。

勧誘ページ
http://www.mtl.t.u-tokyo.ac.jp/~iizuka/avr/

日本語のデータシートpdf。(どういうわけかカラーで1.3Mちょと大きいです)
http://gd4-082139.gd.icnet.ne.jp/~hero/pdf/90S2313.PDF

アセンブラは嫌い、Cもワケワカ、ベーシックならなんとか…
http://www.tctvnet.ne.jp/~jcl/bascom.html
337329:02/03/25 11:01 ID:YIM8a/L1
>>329
今までハードウェアに興味はあったが、敷居が高かったとかいう人に
とって、初めてワンチップいじるとしたら、やっぱ日本語解説本が
多いPICの方から入るんじゃないかと。
データシートだって日本語化されているしね。
という僕は、AVRの方が命令が素直なので、普段はAVRでやってますが、
H8/3664のキットが秋月で半完成品で売っているので、ちょっと
手を出しましたが、シミュレータが高いのがアレですねぇ。
PICもAVRもシミュレータはダウンロードできるもんねぇ。
338321:02/03/25 11:18 ID:hdm3iDR+
>>323
言葉足りなかったね。ゴメソ
1200か2313,8515かによって違うもんね。

>>324
>ついにgcc出力のデバッグで、
>エディタ上でCソース上の変数が読み出せるように成ったとか。

既に、ElfCoff.zipでAVRStudio上で変数見れますが、意味違う?

>>325-326
漏れの事?
AVR使い出してからは、PIC使ってないけど。
最終的に何使うかは317さんの好み次第。選択肢としてH8と書いただけだけど...

で結局タイマ6個はどう使うんだろう。
339名無しさん@1周年:02/03/26 02:18 ID:LWl59EqH
マイコン開発よりロジック設計の方が得意なので>>317氏のような問題だと
FPGAでやりたくなってしまう。
マイコンでタイマー6本は、時間計測のし方と精度によると思うけどややこしそう。

スレ違いなのでsage
340あさはかマン:02/03/27 23:06 ID:siqeAQvV
>>338
ElfCoff.zip・・・知らんかった・・・・・

鬱し。
341初心者3号:02/04/02 16:15 ID:wbtizDTs
秋月のAVRライタ買った→ライタと通信できません→ハァ?
→Chan氏のLPT_ISPアダプタ製作→金とコネクタないからプリンタ分解
→Divice is not working→ハァ?

憂鬱だ...
342名無しさん@1周年:02/04/05 13:16 ID:6WLV1PIv
AVR Studio 4.0 が4/1にバージョンあがってる
http://www.atmel.com/atmel/acrobat/AvrStudioFactSheet.pdf
読むとAT Mega以外も対応したそうな
人柱求む(なんせ4/1だから)
343age:02/04/07 07:07 ID:WY3DIY/l
>>341さん
まじレスですが、DSUB25Pのコネクタの9番ピンと12番ピンが
接続されていないのでは?
D7とPEの信号線同士を接続してないのでは?
わたしもこれではまりました。
344初心者3号:02/04/08 18:06 ID:Y13niOrs
>>343
D7 と PE と BUSY の3つを接続してました。
BUSY だけ外したところ問題なく書き込めました、
ありがとうございました。
345名無しさん@1周年:02/04/12 00:34 ID:sSjL8noC
PICのTIMER0をプリスケーラと一緒に使って、一定時間の割り込み周期を作りたい
のですが、割り込みルーチン内でのTIMER0値再設定で悩んでいます。
TIMER0値を再設定すると、プリスケーラまでクリアされるので意図する時間より
ほんの少し長い周期になります。
仕方がないので、TIMER0を再設定せずに使うか、TIMER0の再設定までの遅延を
ソフトで作って調整するなどの方法を考えています。
何かほかに良い方法はないものでしょうか。
346名無しさん@1周年:02/04/12 00:48 ID:kCQiS8zM
AVRに乗り換える事を強くお薦めします。
347名無しさん@1周年:02/04/12 08:16 ID:KMcjutra
>>339
気持ちよくわかる俺Verilog屋なのにマイコンのことイマイチよくわからん
あのアセンブラの命令が。
ANDとかORは不定さえ入力しなければ誤動作しないし。
自分で繋ぐから動作わかるし。
でもマイコンのこと見切れたらマイコンの方が楽なんだろうな。
348345じゃないけど:02/04/12 21:06 ID:qwD4m9KF
AVRだとぷりすけーらはクリアされないのですか?
349名無しさん@1周年:02/04/12 22:36 ID:u4v211lk
AVRも関心はあるのですが、なにぶん PIC Starter Kit も買ってしまいましたし、
16F84も20個ばかり友人に貰ったばかりなのです。
それにしても、なんでプリスケーラまでがリセットされなきゃいかんのでしょうか。
350名無しさん@1周年:02/04/12 23:46 ID:KwMgcGXn
>>348
各タイマ専用の制御レジスタがあって、その中にリセットするビットがある。
それいじらなければリセットされにゃい。それよりもAVRちゃんは割込ジャンプ
テーブル方式だからPICに比べたら大人と子供だよ。PIC全部誰かを騙して売り
つけなされ。人生の時間をそれだけ損しますぞ。
351名無しさん@1周年:02/04/13 01:27 ID:Dy/bEE2L
>345
tmr0はいじらずに、割り込み処理内でカウンタ回すのが楽。
352345じゃないけど:02/04/13 01:41 ID:RLAdyBqN
>>350
解説どうもです。AVRを選んどいてよかった。
353名無しさん@1周年:02/04/13 11:55 ID:D8Ntu5sG
>>350
ありがとうございます。
PICの割り込みはひとつだけ使っているぶんには我慢もできるのですが、何種類かの
割り込みを使うようになると憂鬱になります。
>>351
どうもです。。とりあえず今回はその方法で組むことにしました。
354名無しさん@1周年:02/04/14 02:05 ID:35GaG1Us
なぜ国産がセカンドソースせんの?
355名無しさん@1周年:02/04/15 01:32 ID:3uvtB8f/
avrfreaksにつながらない。。。
356名無しさん@1周年:02/04/16 00:56 ID:mDU1xGq2
>http://www.avrfreaks.net/error.html
>We have experienced a major Hard Disk Crash here at AVRfreaks.net. :(
ガ━━━━━(゚д゚)━━━━━ン!!
357 :02/04/20 14:55 ID:/K1bfm8i
http://www.avrfreaks.net/
復旧したぞヽ(´ー`)ノあげ
358名無しさん@1周年:02/04/23 09:09 ID:PRe+MNSU
あたらしい SXマイコンがでたみたいなので使ってみたいのですが
よいCコンパイラがないでしょうか。結構検索でしらべてみたのですが・・
C2CとCCSのコンパイラはみつけました。
C2Cは完成度が不安ですし、CCSのは統合環境のPCWしかないみたいなので
結構高いみたいです。
359名無しさん@1周年:02/05/02 23:03 ID:wLHgLRoZ
249のPICライター製作してみたんですが、エラーが出て
書き込みも読み込みも出来ません。
どなたか同じような経験の有る方いらっしゃいますか?
いらっしゃいましたら、解決法がわかれば教えていただけませんでしょうか。
360名無しさん@1周年:02/05/03 04:31 ID:LPxd6pwh
どんなマシン使ってどうやったらどんなエラーが出たのか何も書かないで聞いても答えるの無理だと思わない?
361名無しさん@1周年:02/05/03 09:36 ID:bwO9CySa
359です。PICは16F84Aで、使ってるパソコンはバイオのノートで
COMポートが外付けのものです。また使ってる書き込みソフトは
IC-PROGというものです。
ちなみにエラーの内容としては、書き込み時に「次のアドレスで照合エラー
0000h!」、読み込み時にはエラーはでないがまったく読み込んでないという
内容です。どなたかおわかりになるかたがいらっしゃいましたらお教え
いただけませんでしょうか。
362名無しさん@1周年:02/05/03 10:03 ID:IRhoBOm1
vddとMCLRの電圧を計ろう
363名無しさん@1周年:02/05/03 23:50 ID:gF2IKBqC
ボードの作り間違いは本当にないのか?
おれもVddが何ボルトになってるか知りたいな。
ライターは他にもいっぱいあるからな
364名無しさん@1周年:02/05/05 19:01 ID:Ur0jbFPF
age
365名無しさん@1周年:02/05/06 01:21 ID:TyaYT92G
PIC用のBASICコンパイラおしえてください。
できるだけフリーでおねがいします。
366名無しさん@1周年:02/05/06 05:14 ID:WNdK6FJz
すでに検索した上でのカキコだと思うんだけど、以前にあった所みんな
消えちゃってますね、いまあるのは商品ばっかですね。
Cなら試食版がマイクロチップのHPにもあるんですね。。。どうです
Cに乗り変えたら。どうせ遊びでしょう?
367名無しさん@1周年:02/05/06 09:55 ID:XJAfFgCC
遊びだからこそBASICでやりたいと思われ。
368あぼーん:あぼーん
あぼーん
369名無しさん@1周年:02/05/06 11:11 ID:Rw6QXPN1
何が何でもBASICならCPU変えれば?
8052とか
H8もあるのかな?

海外のサイトも探してみた?
いくつか試してココで報告しる!
370365:02/05/06 13:11 ID:awUSUTEc
BAISスタンプという手もあるようですが、どうも金がなくて・・・

>366
Cは結構でまわってるようですね。
Cは結構使ってるんですが(LINUXプログラムで)どうもPIC用では、使いにくくて(使える命令が少なくて)。

>367
そのとうりです。

>369
8052やH8はBASICがあるんですか?
海外のサイトも検索しましたが、あまりありませんでした。(PIC16F84用が無い)

371名無しさん@1周年:02/05/06 13:54 ID:yxfJUFkK
>>370
8052はBASIC-52
H8は秋月でBASICコンパイラあるでそ

googleでCPU名+「BASIC interpreter」で検索してみそ

C使えるならAVRかH8にすれば良いのに


親切終了
372名無しさん@1周年:02/05/07 04:33 ID:Wzy2KoZ3
AVRとPICって世界的なシェアではどっちなの?H8は違うらしい事は予想つくが
373名無しさん@1周年:02/05/07 12:19 ID:yYJA/LsB
PICでDA出力出したい時にはどうしてます?
すなおにDAの石に8ビットパラレルで繋ぐのが普通でしょうか?
374名無しさん@1周年:02/05/07 14:35 ID:Cx6DwyLf
分解能や速度によるけどぉ

抵抗ラダー
PWM→整流回路
シリアルD/A
375名無しさん@1周年:02/05/09 18:07 ID:v7y0Ifr/
PIC16シリーズについているUSARTのRX、TXのTXのみを使用して
もうひとつはIOポートとして使用したいのですが可能でしょうか。
376名無しさん@1周年:02/05/09 18:55 ID:nM94wjYJ
入力あっらたデータ送るの書いて動かしてみたら?
377名無しさん@1周年:02/05/12 21:54 ID:WgbVKo7A
>>373
今月のトラ偽に、PICに繋ぐ、ラダー抵抗D/Aが載ってたよ。
ところで、このラダー抵抗D/Aって、集合抵抗みたいな
ワンパッケージになったのってないのでしょうか?
378名無しさん@1周年:02/05/13 00:02 ID:DzZQEjnH
>>377
SOPのなら使ったことがあるよ。メーカー名忘れちゃったけど。
松下とかリケンあたりを調べてみてはいかがでしょうか。
379名無しさん@1周年:02/05/13 00:07 ID:qtSw2RpL
>>377
 KOAにあるよ。
380名無しさん@1周年:02/05/13 00:58 ID:4RaJDxfU
そんな抵抗アレイは何十年も昔から抵抗メーカーのカタログにあるじゃん。
トラギ信者さんは全く世間を知らないんだねー。専門馬鹿とも言えない、
なんて言えばいいんだろう。やっぱ技術者ではナカータたというコトなのかな。
新人は世間知らずになるような本を読んじゃダメだよー。メーカーのカタログ
を直接見て学べよ。
381名無しさん@1周年:02/05/13 02:03 ID:m/F5+/3i
>>380
 トラ技の記事で一つも新しい事が無いとか自分の知ってる事しか載らない
なんて言う奴は思い上がりってるとしか思えない。

 ある程度技術が解ってきて、トラ技の掲載範囲を少し超えただけなのに
いきがるんじゃないよ。

 教えて君もアホアホだが知ったか馬鹿はそれを超える馬鹿だ。
382  ↑  :02/05/13 02:57 ID:199AAalc
今どき珍しい脳血管障害が来たよ
383名無しさん@1周年:02/05/13 08:06 ID:/BObCWrD
>>382
病気・障碍を嘲笑するような書き込みは不愉快です。
384本題に戻して:02/05/13 11:04 ID:CTdlpNSg
ラダーはベックマンとかも出してるね。

精度の問題はどうなのかな?
ラダーだと相対精度の規定はされているが、
D/Aとしての直線性は保証されないでしょ。
絶対精度は電源電圧,各I/O出力電圧の差と
共にスパンの精度に影響するし。








モメる前に何で誰もPWMや他の方法を薦めないの?
385名無しさん@1周年:02/05/13 12:22 ID:W5UNbO3Q
千石で、DAC08が300円で売っていた様な覚えがあるなぁ。
PIC16F84でも、タイマー割り込みを他に使っていないのなら、
PWMがなんとか作れるよね。(タイマーオーバーフロー割り込みで、
デューティー比となるタイマー値をセットする)
386名無しさん@1周年:02/05/13 21:17 ID:/BObCWrD
>>384
>モメる前に何で誰もPWMや他の方法を薦めないの?
>>377さんが引用されている雑誌記事が、DDSだったらからではないかと
思います。
387名無しさん@1周年:02/05/14 03:08 ID:brZBHFUa
トラ疑信者に他宗派を勧めても無駄。逆切れして狂うだけだという過去の実績がある。トラ擬スレ、クリスマスツリースレ参照。
388名無しさん@1周年:02/05/14 04:26 ID:YVJgGvZt
>>387
 その見識では大した仕事もしてないんだろうな・・・
 信者も大概だが信者叩きも見飽きた。揉め事を持ち込まないでくれよ。
389名無しさん@1周年:02/05/14 04:57 ID:el3Oi0fI
だね。いつももめ事は信者が発端だから自重して欲しい。
390激亀レス:02/05/16 02:40 ID:q5Wur5oi
>>265
IPI
http://www.ipishop.com/
でUSB-serial変換チップが800円ででてましたよ.
しかもチップメーカがwindows用のドライバを無償提供してくれてる

割と使い道が多いかも.
391名無しさん@1周年:02/05/16 02:53 ID:tIuY0dQt
見あたらない??
392名無しさん@1周年:02/05/16 18:44 ID:c3QwnUpS
>>391
お探しになっているのはこれでしょうか。
http://www.ipishop.com/ftdi.html
393名無しさん@1周年:02/05/17 12:51 ID:MgsDwVWH
ChaN氏のAVRライターって、やっぱりWin2k/XP系統では動かないんでしょうか?
これだけの理由で共立ドングルライターを使っています(^^;)
win98/DOS環境を今更構築するのも面倒で。。。。
394avrgcc-場違いかな?:02/05/17 18:55 ID:P4K4tEPx
どしろうと質問で申し訳ないんですが、教えてください

avr-gccで、同じ2バイトのSRAM変数を上位下位ばらばらに扱ったり
まとめて2バイトで扱ったりするにはどうしたらいいのでしょうか?
unionつかって
union LoHi {
Uint16_t i16;
Uint8_t b8[2];
};
とでもするのが普通なのでしょうが、AVRの乏しい資産でこれだけの
ために配列使うのが何となく芸がないような気がしています。
ポインタ使う手もあるのでしょうけど、あちこちでこのような
操作が生じそうなので、もっと美しい方法がないかとあがいています。

union LoHi {
Uint16_t i;
Uint8_t Lo,Hi;
};
これだとLoHi.iもLoHi.LoもLoHi.Hiもみんな同じアドレスを指し示すんですよね?

Uint16_t i;とUint8_t Loが同じアドレスを指し示して、
Uinit8_t Hiが次のアドレスを指すようにするスマートな方法はないでしょうか?
395名無しさん@1周年:02/05/17 21:11 ID:cFtD7mpY
>>394
別に配列でやってもよいとは思うんだけど...。
union LoHi
{
Uint16_t WORD;
struct
{
Uint8_t Lo;
Uint8_t Hi;
} BYTE;
};
ってのはダメ?
396394:02/05/17 21:48 ID:sBrJE+v6
>>395
あ、そうか、struct入れ子にすればいいだけのか・・・
アホな質問に答えていただいてありがとうございました。
397どしろうとですけど:02/05/26 08:10 ID:ze7hBe6g
>>100
あの回路の126って、接続スイッチを入れている間は単なるバッファとして
働いているんですよね。接続スイッチなし版などまさに単なるバッファ。
(もしかしたらC1とRで遅延回路形成してる?でもLPT版はそんな考慮してない)
接続スイッチ版のほうはまさに>>100さんの言う4信号のスイッチですよね。
結局どうしても切り離したければこれしかないように思えます。他に該当品は
たくさんあると思いますが。

電源電圧の違いですけど、ISP中だけターゲットの電圧を5Vにするのは
できないでしょうか?たぶんターゲットが低電圧のままだとHiレベル信号が
高すぎて問題あるような気もするのですが?
(絶対定格でRESETpinを除くpin許容電圧はVcc+0.5Vまで)
398どしろうとですけど:02/05/26 16:08 ID:ze7hBe6g
ぎゃ、ごめんなさい、大昔のリストに間違えてResしちゃいました。
とっくに終わった議論のようですね。
399初心者にもなれない(^^:02/05/26 18:39 ID:7EyUmk1u
共立電子が出しているドングル基板でAVRのISP書き込みを行おうと
思っているものです。ところが、どうしても書き込みが安定しては
できません。(数度は成功しています)
素人で何が問題かよく分からないので、とりあえずかけるだけ状況を書いてみます。
長文ごめんなさい。

現象:
 たまに書き込みに成功するが、多くは失敗する。
 Readはしばしば成功するが、やはり時々失敗する
 失敗するときはAVR2313が確認できないとATMEL AVR ISPがメッセージを
 出してくることもあるし、Writeに失敗したと言ってくる場合も多い
 ちなみに、同じ2313を外して秋月のAVRライターで書き込むと何事もなく書き込める


PC側で使っているソフト=Windows2000SP2+ATMEL AVR ISP2.4 + avrgcc (2001/08)

接続:
PCのLPT1:から1.5m延長25pin-dsubケーブルで共立ドングル基板に接続(全結線なのは確認済み)
関係あるかどうか判りませんが、このLPT1:には普段はCanonのプリンタがつながっており、
ドライバもインストールしてある状態です。
ドングル基板からは共立のキットに付属していた50cmほどのフラットケーブルで接続

AVR側:2313、10MHzセラロック接続
電源は78M05。入力側に10μF、出力側に0.1μF積層セラコン接続で、
これに9V電池(単3×6本)接続
今のところPD6にLEDがpullupでつないであり、
PB2〜7にLCD用のコネクタを接続
念のためISP中はLCDは抜いてあります。
電源OFF状態でのPB2〜7相互の導通はないのでショートはないと思います。

同じ基板・AVRで、点滅プログラムのavrgccによるコンパイル、ISP転送、動作確認は一度は成功しています。
400初心者にもなれない(^^:02/05/26 18:40 ID:7EyUmk1u
長すぎると怒られたので、分割して続きです。

ISP-I/F
AVR マイコンを使ってみよう
http://www.psn.ne.jp/~z-gypsy/kousaku/avr/index.html
このページを参考に、対応pinを直接接続しています。
Windows2000での動作実績もこのページを見てOKだと考えました

http://www.anc.meta.ne.jp/~eleshop/DIGIT/DATA/AVR/check.pdf
ドングル側のコネクタのハンダ付けを反対にしてしまったので、
ドングル側とターゲット側で、コネクタのpin番号対応は同じになりました(^^;)
上記PDFのドングルの回路図(P11)ともにらめっこして、
pin1/3/5/7=GND
pin9=+5V(2313-20pin)
pin2=MISO(2313-18pin)、
pin4=SCK (2313-19pin)
pin6=RESET(2313-1pin,念のため47k-pullup)
pin8=LED+470Ωを介して+5V
pin10=MOSI(2313-17pin)
(これ書きながら全て導通チェックしました)

上記共立電子提供のPDFによると、LEDでプルアップして、IF間にDiodeを
かませていますが、参考にしたページ(AVR マイコンを使ってみよう)では
直結になっています。面倒だったし、これで動くならと直結させてしまった
のですが、実際動かないところを見ると、やっぱりプルアップが必要なの
でしょうか?74244(OCではない)の仕様を見る限りでは直結でも問題ないの
ではと乏しい頭で考えているのですが、いかがでしょうか?
その他見逃している点などありましたら教えてください。

実は先に秋月のライターも買っていたので、これでやっても
いいのですがいちいちAVRを抜き差しするのが面倒なので
できれば共立ドングルで行きたいのです。
秋月ライターにISP信号線らしいランドが6つ並んでいますが、
これを引っぱり出してもISP書き込みできるんでしょうか?
401初心者にもなれない(^^:02/05/26 18:50 ID:7EyUmk1u
もう1つ。
ATMEL AVR ISPでプリンタポートチェックすると、LPT1指定で
Port available, STK200 or Old Kanda ISP Dongle Found
と返ります。ドングルの認識はしているようです。
Advanced ISP settingsはデフォルトのままです。
Reset=Active Low,20ms,Shutdown=Reset High,
Advanced Option: Disable Signature Check = CheckBox OFFのまま
402名無しさん@1周年:02/05/26 19:06 ID:JtOUU1R7
LPT1:を使うプリンタドライバを一旦外して試してみたらどうでしょうか?
403初心者にもなれない(^^:02/05/26 19:19 ID:xc+JqvbP
やってみます、と言いたいけどそのたびにドライバはずすのも辛いので、
プリンタをUSB経由に切り替えとくというのでお茶を濁してイイですか?
(USBでもシリアルでも使えるCanon F620ですが、USB経由だとなぜか
安定しないのでLPT1:に繋いであったんです)
404名無しさん@1周年:02/05/26 19:39 ID:JtOUU1R7
はい。そのプリンタが使用するポートがLPT1:以外ならよいです。
(LPT1:を使用するプリンタが1つも無い状態にする)
405名無しさん@1周年:02/05/26 20:57 ID:aZYWyUHM
yapp使うといいかも。
漏れも書き込み不良でえらい嵌ったが,まさかソフト変えるだけで
直るとは思いもしなかったよ。
406初心者にもなれない(^^:02/05/26 21:48 ID:xBOWjRpi
全プリンタの出力先をとりあえずFileにして、再トライしてみました。
認識、ERASE、READはほぼ問題なくできるようになりました。
関係はしているようです。しかし、Writeすると4バイトほど書き込み失敗して
しまうようです。ケーブルの問題かと思い、ドングル基板をPCに直接刺して
みましたが、変わりありませんでした。
一度失敗すると、次の操作はISPライターソフトが必ずハングアップする
ようで、どうもうまくいきません。

なんかWindows2000がらみのような気がしてきたので
(ISPAVR2.40の日付は1998,サポートOSもWin95/3.1らしい)、
新版ならどうかとアトメルHP探したらISP3.30というのがありましたが、
これだと認識すらされず。
どうも共立ドングルはSTK200相当らしいのですが、どこを探しても
2.40より上のVersionが見つからず参っています。
AVR Studio 3.53からの書き込み(STK500,AVR Prog)もどうも認識されないようです。

うーむこれはISP2.40でWin98を使えと言うことなのだろうか?
職場にあるThinkPadにはWin98入っているので、そっちで試してみます。

STK200のpdfがあったのでこのISPサポートの項を見たところ、
プルアップのことは書いてありませんでした。
(ISP側じゃなくて接続相手側に抵抗かマルチプレクサ入れろとは書いてある)
407初心者にもなれない(^^:02/05/26 21:49 ID:xBOWjRpi
>>405
yappってなんですか?って聞く前に検索かけてみます。
408名無しさん@1周年:02/05/27 01:58 ID:NGmKJJpJ
>407
スマソ yaapダタw
ここ参照>http://www.myplace.nu/avr/yaap/index.htm
409初心者にもなれない(^^:02/05/27 10:27 ID:wszRgOEv
おはようございます。
yaap+Win2k+port95nt on ThinkPad 玉砕(^^;)STK200ドングルを認識せず
Win2kのデバイスマネージャーを見たらLPT1:portが0x03BC(Alternate LPT1:)に
なっていたので、yapp設定を変えてみましたが、これでも×でした。

yaap捜していたら、こんな(・∀・)イイ!!ところを見つけました。
http://www.tctvnet.ne.jp/~jcl/AVRprog.html
ここにSTK200ドングルの回路図ありますが、
あらら、共立の奴と回路が一部違う!!(DB25の2pin-12pinの結合がない)
yaapで動かない原因はこれかな?

ここでATMEL ISPAVRのver2.64も見つけました。
しかしこれも認識はするがエラー頻発ですね。
認識はするので2-12 jumperの問題ではなさそうですが。

しかしいろいろあるんですね。秋月と共立の奴しか知りませんでした。
片っ端から試してみようかな。COM使用ponyprogなんかよさそう。
410初心者にもなれない(^^:02/05/27 18:50 ID:A+b4xR2n
仕事終わって早速またやってます(^^)

Win98でやってみたところ、書き込みの前にERASEを掛ければ(AUTOに任せれば)
ATMELのISPAVRで百発百中で書き込めるようになりました。
(それでもたまにはエラーでる)
どうやらWin2kでポートを叩くプログラムを使おうとしていたのが
原因だったようですね。お騒がせしました。
でもこのままでは職場のThinkPadでしか書き込みできない。
自宅のPCにWin98入れるか、どうにかyaapを使用可能にするかしないと。
411出張あさはかマン:02/05/27 21:19 ID:fBZjpA9v
>>393
うちではWin2K(sp2)+ChaN氏のAVRSS.EXEでちゃんと書けてます。
412初心者にもなれない(^^:02/05/28 00:04 ID:mBltLWub
>>411
AVRSSはOKなんですか。STK200ドングルをそのままCOMポートに
置き換えたような感じですね。(IO足りない分切り離しは手動?)
COMならOKなのでしょうか?
413名無しさん@1周年:02/05/28 00:44 ID:IcYctSLM
>>409
そのホームページなんて重いんでしょ。画像なんとかしたらと言いたい。
ところでDongleとは何の意味なの?
414出張あさはかマン:02/05/28 12:24 ID:Uv8ZDf93
>412
やってみるとWin98系よりかなり遅く動くようです。
あと、USBなどで増設したCOMポートでは出来ませんでした。

Dangle:ドングル
ぶら下げるものと言う意味。
普通、ある種の暗号を作り出す回路が入っていて、
プリンタポートなどに取り付けてソフトウェアの起動キーとして使う物の事。
415あさはかマン:02/05/28 12:25 ID:Uv8ZDf93
あう。間違えて出張をつけてしまった・・・
416AVR初心者の杞憂?:02/05/31 12:11 ID:w8ULvy3J
INT0/INT1に外からの入力を入れて、これであれこれやりたいとき、
ノイズ対策はどのようにやればいいのでしょうか?
接続相手は他の論理回路の出力で、メカニカルスイッチのようなチャタリングは
ないですが、ノイズが多い場所で40cmほど線を延ばすので、ノイズ対策は考える
必要があるかなと思っています。数Hz〜300Hz程度の信号3つで、
そのうちの1つはDuty比が1%程度になることがあり、Duty比の測定を
要します。これはINTではなくTimer1-input-captureでも使おうと
思っているのですが(ハードでノイズ除去設定ができる)、あとの2つの
扱いに困っています。

とりあえずはINT割り込みルーチン内で、全部で3度くらいport読んで
全部Loなら(DownEdge割り込みの場合)OK、1つでもHiがあればその時点で
操作をご破算にして抜けるようにすればいいのだろうか??と考えています。

しかし例えばINT自体を含めて4回のサンプリングでLo→Lo→Hi→Lo→
(その後ずっとLo)のような場合(Hiはノイズ)、本当は割り込むべきなのを
無視してしまうことになりますよね。
INT割り込み中の間でもちゃんとHi→Loの時点でGIFR-INTF0/1はセットされ、
INTから抜けた時点でまたINT割り込みがかかってくれるのでしょうか?
それなら簡単なのですが、そうでない場合はどうしたらよいのでしょうか?
こういう場合でも割り込み処理として扱うにはどう処理したらいいのでしょうか?

どうしようもなければINTは諦めて、
Timer0で204.8us程度の割り込み組んで、
http://elm-chan.org/docs/te02.html
のような処理をしようと思っていますが。

417名無しさん@1周年:02/05/31 13:44 ID:Va6u2hj2
仕事でお前のような質問したら来週から配置変えだな。
418416:02/05/31 20:47 ID:OxuIt7+h
>>417
おそらく私宛の発言だと思いますが、
仕事上での質問ではありません。
本職はAVRのようなものとは全く関係ない仕事です。(趣味の工作)
初心者スレでもだめなほどレベルの低い質問/調べれば簡単に分かる質問と
いうことなんでしょうか?
そういうことなら質問は取り下げてなんとか自分で調べますor考えます。
失礼いたしました。
419あさはかマン:02/05/31 21:51 ID:g5mBF5zb
ノイズ対策はソフトウェアじゃなくてハードウェアでする事です。

最低でもハードウェア割り込み処理は、
割り込み応答時間+処理時間+割り込み復帰時間、が必要で
それより早い変化には追従できません。

AVRの割り込みの場合、最速で応答を返すなら

     .org $1  ;外部割込み0のベクタアドレス
     set    ;Tフラグをセット
     reti    ;割り込み復帰

で、メインループ側でTフラグを見ること・・・が最速と思われますが
これでも割り込み認識時点から7クロックの時間が必要です。
したがって、10MHzで動作しているAVRにこのプログラムを動かす場合、
「少なくとも」0.7μsより短いパルスは必ず除去するか、
絶対に入ってこない事を前提とする必要がある、と言うわけです。

ちなみに、エッジトリガ割り込みは
パルスエッジを検出している、と言う意味ではありません。

レベル割り込みのように割り込み線がアクティブな間
ずっと割り込みが発生しつづけるのではなく、
パルスの変化をCPUのクロックで同期化して、
入力が変化したときに一回分の割り込みパルスを発生する・・・と言う意味です。
420名無しさん@1周年:02/05/31 21:54 ID:/6bT8Y0Z
>>418
もっと具体的な内容を示してくれないと、ノイズ対策の話は検討すべき
範囲が広すぎてレス付き辛いと思いますよん

ノイズ源は何? (高電圧?大電流?) 
40cm延ばす線は何? (ツイスト線?シールド付き?)
ソフトで逃げるのはダメ?

それよりも、AVRで3種類の信号を取りこぼさないで測れる?
300HzでDuty1%なら33.33usでそ
同期してるのかなぁ?
(port読む所の説明部分が理解出来てない)

初心者ならば苦労しそう。
他にカウンタが何個も載ったCPUも探してみたら?
421あさはかマン:02/05/31 22:00 ID:g5mBF5zb
でもって、
エッジトリガ割り込みに設定した場合についてのみ
割り込みが一回分だけ予約されます。
ただし、一回なので処理時間には要注意です。

しかし・・・・40cmの伝送距離でノイズがはいると言うのも・・・
422416:02/05/31 22:55 ID:w1B4BvY1
418は失礼な書き方でした。すみませんでした。
答えていただいた方々ありがとうございました。

作りたいのは車の回転計で、とりあえずは1信号なんですが、
いろいろ考えている内に速度や開弁率計も作りたいなどと考え
はじめてしまいまして。ちなみにAVRで現在までに作ったことが
あるのはデジタルクロックもどきと周波数計もどき程度なので、
すぐに上記のようなものが作れるとは思っていません。

信号源は1回転に2度出る回転信号です。
300Hzは9000rpmの時に想定される数値です。
とりあえずはこれだけの予定です。
速度信号は(今のところは考えていませんが)125Hz程度までいければ
OKということになるようです。

>>420さんへ
duty1%前後?くらいになることがあるのは開弁率(インジェクタ)の方です。
ただduty1%などというのはアイドリング時くらいですので、
9000rpmで1%(150Hz,1%=67us)を見たいとは思っていません。
その1/5程度300us程度の分解能で、900rpmで0.2%、9000rpmでは2%刻みで
できればいいとは思っています。これは私のレベルでは夢を見ている
段階だと思うので、忘れてくださいm(_ _)m

>>419
>「少なくとも」0.7μsより短いパルスは必ず除去するか、
>絶対に入ってこない事を前提とする必要がある、と言うわけです。
ということは、もし支障があるなら、きちんとシールドするか
信号の測定に影響しない程度のLPFを入れなければならないと
いうことですね。
40cmでノイズ云々というのは、オーディオアンプには結構ノイズ
入りまくりで苦労したのでちょっと考えすぎたかもしれません。

もっとゆっくり考えます。ありがとうございました。
423AVR:02/06/01 00:15 ID:MXpoa6kD
ちょと下記を教えて下さい。
最終的には7セグなどで眼で見るのかパソコンなどでデータ記録か
実装空間の大きさは
電源事情は
予算は(そこまでかかるなら止めとくという限界)
424416:02/06/01 13:16 ID:Cnc32+eG
>>423
>最終的には7セグなどで眼で見るのかパソコンなどでデータ記録か
両方欲しいですが、PC接続は今はまだ考えられないです。(UART使ったことない)
運転中に見られる情報は限られているので、最終的にはLEDバー表示か
3-4桁程度の7segLEDにしたいと思っています。できれば必要に応じて
一時的にLCDがつなげられればいいなと考えています。
リアルタイムに表示させたいと思っているのは巡航支援のための車速微分表示、
(加速度センサーだと登坂すると減速しても加速を表示する)減速比(車はATです)
などです。

実装空間は表示部別でVHSテープくらいまでは押し込めます。

電源はできれば車から取りたいです。
問題がありそうなら別電源(電池)駆動でフォトカプラなどで
車と切り離してもいいです。

予算は、趣味活動ですから小遣いが許す限り(足りなければゆっくり
やる)です。既製品買ってもそう高くもなく簡単なんでしょうけど、
先の加速表示(≠加速度)をリアルタイム表示するものなどはなかなか
ないんです。
425420:02/06/01 14:26 ID:DdtQ6fqM
426416:02/06/01 17:39 ID:rxCRvWhh
おお、ありがとうございます。>>425
427AVR:02/06/03 07:56 ID:t6CJ9Arv
>>424
拝見しました、様子が大体分かりました。もう少し教えて下さい。
1,燃料噴射の信号は、エンジン2回転に1パルスですか。
  そのパルス幅の最低値と最高値のおおよその値を。
  信号はどこから取り出すか、電圧値とパルスの正負を。
2,Tachometer用として、燃料噴射の信号を使うことも
  出来ますよね。もしダメなら、一回転2パルスの電圧値
  とパルス幅を。
3,車速用信号は車輪から取りますか?その電圧とパルス幅を。

 で、
1,最初に考えた通りでよさそうですね、燃料噴射信号で
  タイマ1をキャプチャする方法を少し工夫しましょう、
  噴射開始のエッジで割込み処理をした後、即エッジ選択
  ICES1を逆にすれば、噴射終わりでまたキャプチャ割込
  が起きるので、噴射時間と回転数が同時に測れてしまい
  ます。
2,車速信号の方は、私ならあっさりマイコンをもう一個使い
  ます。外部割り込みにすれば一個に詰まると思いますが
  窮屈だし7セグ表示が多桁になって苦労しそうな気が。
428416:02/06/03 19:15 ID:ozf1rzys
まずはあれこれやっていますが、機能を制限しないとProgramMemoryの方が
あっさり一杯になりますね。2313+avrgccなんか使うからいかんのでしょうけど。
CPUを替える前にどうにかならないかと、どうにか多バイト演算を減らそうと
悪戦苦闘中です。8515指定でコンパイルして、現在1200ワード弱(^^)
普通に考えれば確かに単データ表示が精一杯のようです。

1.インジェクタの方は今のところ夢で、最初はフュエルカットを表示する
  程度のことしかしない予定ですが(^^;)とりあえずエンジン2回転に
  1度の噴射(気筒毎噴射)で、パルスは開弁時のみLo,あとはHi(14V)
  です。パルス幅はアイドリング時が狭くDuty1.5%/6Hz=2.5ms、
  それ以上の回転数だとよく分かりませんがおそらく周期だけが縮んで
  パルス幅自体は似たようなものorそれ以上ではないかと思っています。
  (エンジン1回転させるための燃料はあいどりんぐじより多いだろうとの
  
  信号取り出しはECU付近からの予定です(既に取り出してある)
  直接インジェクタにつながっている線らしく、+30V程度のスパイクが
  あるらしいので(整備書より。実測はしてません)、ダイオード
  プルアップかツェナー制限がいると思っています。
  抵抗+ついでにインバータを噛ませて正論理にして入力しようと考えています
  
2.最初それも考えたのですが、燃料噴射停止時に表示不能になるのが難点かと。
  ついでに言うと、Rev信号は1回転に2度、10Vのパルスで出るようです。
  6000rpmで100Hz.

3.車速信号もECU-インパネ間にある信号を使おうと思っています。
  こちらは5Vで、車輪1回転に4パルスのようです(39cm/Pulse)
  140km/h(39m/s)で100Hzになります。

燃料噴射は正直今は諦めてもいいと思っています。まだいろいろ
分からないことがありそうなので(無効噴射時間が不明など)
まずは速度+加速計、次に回転計+減速比表示計を考えています。

複数CPU使用も少し考えています。ただ1つのCPUでどうにか2つ取り込み
たい。と思う理由は、減速比表示させてみたいという妄想のためです。

1つはデータ取りに専念させてRS232Cで送りまくるだけをさせて、
もう1つでデータを受けて解析+表示を行う、なんて考えています。
これだとあわよくば表示部を外してPCを繋げばそのままデータロガーに
早変わりなんて(^^;)ま、初心者の誇大妄想です。

まずは速度計+加減速計に絞って挑戦します。プログラムメモリも足りないし。
429416:02/06/05 22:09 ID:lG5MjUDb
その後:
サイズ縮小に挑戦とばかりまずはインラインアセンブラに手を出して、
それなりの成果を得たのですが、
「なんだ!?、AVRのアセンブラってめちゃくちゃ使いやすい!」
いやほんとに、こんなに楽に書けるとは思っても見なかったです。
アセンブラなんて6809以来なんですが(^^)
結局アセンブラに戻りそうです。>>425紹介のお手本もありますし。
430名無しさん@1周年:02/06/06 07:46 ID:e4TfGien
やっぱり。。。オーデオ屋であったか。
技術的内容がおざなりで感情で書いてる長文を見て、こいつはダメ技術者に
違いないと直感したのは当たっていたな。
この板は技術相談は受け付ける。しかし工作日記報告は場違いだ。
431420:02/06/06 10:21 ID:J7koT0mT
>>430
あなたこそ場違い。
縄張り意識を発揮したいのなら自分で掲示板立ち上げて
そちらでどうぞ。

>>429
勝手に直リン貼ったけど、管理者の方へお礼や情報交換のメール
とか出されてみては?
私自身はエンジンとか全く不勉強なので何も答えられないでいたのですが...

AVRのアセンブラ楽でしょ?
でも6809以来とは、AVR初心者でもCPU(MPU)((マイコン))熟練者じゃないですかー




電気のノイズはしっかり対策し、言葉のノイズは無視して行きましょう。
432416:02/06/06 10:51 ID:agJwzAxO
>>430,>>431
了解しました。とにかくだらだらと日記のように書かれるのは迷惑と思われて
いるのは分かりましたので、今後は自重します。調子に乗りすぎました。
ちなみに私は本職は技術者とはほど遠い(オーディオ屋でもありません)ので、
当然「だめ技術者」以下です。

>でも6809以来とは、
ガキのころ、6809(FM-7)の小さなアセンブラプログラムを作ったことが
あると言う程度です(^^;)その後はアセンブラについては今までご無沙汰です。

>管理者の方へお礼や情報交換のメール
それも礼儀ですね。ご指導ありがとうございます。
そのうち参考にさせていただいている旨お礼のメールします。

それでは、この辺で失礼します。
433ホビー野郎Aチーム:02/06/06 11:49 ID:BA4IWiEZ
下のスレも結構面白いYO!
■自分で作ってしまえ!電子工作スレッド 2作目■
http://pc.2ch.net/test/read.cgi/jisaku/1016380825/
434初心者になれた(^^:02/06/09 16:38 ID:s/iISI0l
>>399でWindows2000上で書き込みができない件で相談にのって
いただいた件ですが、>>409で書いたように共立電子(デジット)の
ドングル基板のDSUB25コネクタの2-12間にジャンパ線を入れたところ、
yaap+port95ntであっさりと認識でき、書き込みもWindows2000上で
安定して行えるようになりました。

yaapを教えてくださった>>405さん、ありがとうございました!
435名無しさん@1周年:02/06/10 01:30 ID:WRvyAkJb
ご苦労様なことで…
436名無しさん@1周年:02/06/14 04:09 ID:y6JOijLY
age
437名無しさん@1周年:02/06/14 04:22 ID:b8E4mWAW
数年まえは電子工作といえばPCの自作を意味したものだったが
今はそれも終わったねえ。
438名無しさん@1周年:02/06/14 04:40 ID:y6JOijLY
>>437
それは初耳

電子工作といえば、ラジオとか、電子オルゴールキットとか鈴虫でしょ
439名無しさん@1周年:02/06/14 04:42 ID:y6JOijLY
PCの自作≒マイコンの自作=TK-80の自作

レベルなら理解できる
440名無しさん@1周年:02/06/14 06:40 ID:Gl98XIy6
438は終戦の玉音放送を小学校高学年で聞いた年代だろうな…
441名無しさん@1周年:02/06/14 06:51 ID:xCrEooFT
数十年前=真空管ラジオ
20年前=電子オルゴール
十数年前=マイコン自作
数年前=PC自作(組立)
ってな過程かな?
442名無しさん@1周年:02/06/14 11:12 ID:sygMUVan
個人的にAVRとPICを同列にするのは気が引けるが、同じ分野といえばそうなんだよねぇ。
443名無しさん@1周年:02/06/14 13:39 ID:60v/X5E/
>>437
単純なPC組み立てを、普通「電子工作」とは呼ばないよ。
最低限半田付けは必要だろう。
444名無しさん@1周年:02/06/14 22:00 ID:RR0UThOu
>>443
NotePCのCPUやXtal付け替え(一応ハンダ付け)は電子工作にはいるかな?
チョット無理か。
445名無しさん@1周年:02/06/15 00:38 ID:UvigHHmD
>>444
もう組み立ての域を超えてるって。(w
446名無しさん@1周年:02/06/15 01:10 ID:ddvDDZhE
>>445
でも、やっぱりそれも電子工作にあらず

喩えるなら、ミニ四駆のモーターやギアを換えたとか
プラモラジコンのバッテリを6V→7.2Vに換装する程度。
スクーターのリミッタカットするとかプーリー換えるとかな
447名無しさん@1周年:02/06/15 01:16 ID:ddvDDZhE
PIC 877のデータシート(Microchipから無償ダウンロード出来るやつ)
プリントアウトしたものが3000円で売られてるってのはどーよ??
448名無しさん@1周年:02/06/15 01:36 ID:3NPd+lFb
てーかさPCの自作とかこのスレでいうかヴァカ
449名無しさん@1周年:02/06/15 10:51 ID:FrDiSCpx
恥ずかしくないのだろうか。。。
450名無しさん@1周年:02/06/15 13:49 ID:Xh0uxquZ
>>447
ヤフオクですか?
晒し揚げキボンヌ
451名無しさん@1周年:02/06/15 15:14 ID:ddvDDZhE
>>450
いや、大阪日本橋にある某ジャンクパーツ屋(かなり有名)
452名無しさん@1周年:02/06/15 15:40 ID:ddvDDZhE
453名無しさん@1周年:02/06/15 15:57 ID:x68ly1Aq
>>447
 まあ厚顔無恥な○立だから仕方ないな。(w
454名無しさん@1周年:02/06/15 20:06 ID:pLY2M1sd
>>447
せめてCQ出版社の規格表本みたいな形態ならまだいいが、
コピーに3000円??うーむ、microchipがそういう商売してるはずもないよねえ。
455名無しさん@1周年:02/06/15 20:12 ID:CrTiGF3C
microchipに連絡すればデータシートを収めたCDROM送ってくれるのに。
456名無しさん@1周年:02/06/15 20:31 ID:ddvDDZhE
>>452
の写真では少々判りづらいですが、単にプリントアウトして
ステープラで綴じて袋に入れただけのもんです。

たしか200ページちょいだったから、10円コピーを使ったとしても
2000円ちょいでしょ。
レーザープリンタのコストって一枚2円ちょいだっけ?
それでも500円が良いとこでしょ。。。

(CQ出版の絶版本のコピーサービスもボッタくりだとは思うけど)
457参考資料:02/06/15 20:39 ID:nLwErOSH
>>456
ちなみに、日刊工業新聞社の絶版本コピーサービスは1ページ100円だ。
458名無しさん@1周年:02/06/15 20:48 ID:ddvDDZhE
まぁCQ出版とか日刊工業新聞のコピーサービスの場合は、
自社の過去の著作物を「特別に」出してるわけだから、
高いとは言え、ある程度は仕方ないかな。
また、その値段でも欲しい情報なら出すとは思うんだけれど。

あの3000円のデータシートは・・・売れないでしょうな。
459名無しさん@1周年:02/06/15 23:57 ID:a+F/q1i9
ワハハ商魂アゲ
商売としては十分ありだ。見下す方が間違ってる
460名無しさん@1周年:02/06/16 01:29 ID:LhHeO9V5
>>549
ヤフオクで取説のコピーを売るのもOKになるのか?
461名無しさん@1周年:02/06/16 02:36 ID:i4NUX0OH
>>549の回答に期待(w

その前にdat落ちするに3000ハラタイラ(・∀・)!!
462名無しさん@1周年:02/06/16 02:38 ID:i4NUX0OH
まぁ、マジレスすると、デジットがマイクロチップ社の許可を得て販売している
のなら、問題無いだろうと思う。
463590です。:02/06/16 03:03 ID:cTWGpiJo
あと130レスほどお待ちくさい
464昔のマイコン屋:02/06/16 19:54 ID:2fotV6Ty
>>439
年齢は???
40歳ってことはないね、50くらいかな??
465名無しさん@1周年:02/06/16 21:46 ID:ZQ83tRT9
PICのアセンブラで、
movlw STATUS と
movfw STATUS
間違えた。デバッグ一時間かかったぞくそぅ。この分かりづらいニモニック何とかならないもんかしら。
あと、
addwf tmp,f と
addwf tmp,w
も間違えた。こんな間違いするのって、あたしだけかしら?
466ななし:02/06/16 22:09 ID:SVkZ4R5Y
>>465
私もよくやってしまいます。なので、Cで書くことにしました。
どうしようもないところだけ、アセンブラです。
気付くと、アドレッシング以外はほとんどアセンブラになって
たりしますが、ケアレスミスは激減しました。
467439:02/06/16 23:17 ID:i4NUX0OH
>>464
お恥ずかしい、30です

>>466
PICのコードCで書いてて遅くないですか?
468ななし:02/06/17 01:19 ID:sg1z5+mW
>>467
PICの容量ですと大したこと書けませんので、あまり変わりません。
ループと代入だけみたいなものですから。
ただ、PIC独自の命令を使いたい場合などは>>466で書いた通りアセンブラ
で入れます。容量少ないので、インラインアセンブラでも十分です。
469名無しさん@1周年:02/06/17 01:54 ID:G/kroToP
ピク使ってる事自体が恥
470名無しさん@1周年:02/06/17 18:26 ID:8+6kR17e
PICのレジスタ並みに小せぇ....ハァ。
471名無しさん@1周年:02/06/17 19:00 ID:uT4HVFMs
>>465
マクロ定義しまくって解決するとか。他人が読めないソースになるな(^^;)
472465:02/06/17 22:39 ID:YBJHhh5F
>>471 仕事で使ってるので、それはちょっと・・・
やっぱり元がしっかりしてくれないとねぇ。
MPLAB使ってるんだけど、日本語でコメント付けられないのがつらい。
473名無しさん@1周年:02/06/18 00:05 ID:Rp42CVpP
>>472
言い訳だろ。(w
慣れれば解決する問題。
かく言う漏れも似たような失敗はしたがな。
4742st4st:02/06/18 17:51 ID:Je+g2MQv
>>416
パルス幅を電圧に変換してから
ADコンバータ通すのはダメですか?
475あぼーん:あぼーん
あぼーん
476416:02/06/18 22:02 ID:a2XMqEni
そんなのも考えていましたが、一番作りたいのが微加速度計だったので
(0.1m/ss位の車速変化を表示する)、F-V+ADCだと分解能が厳しそうな
気がして保留しています。どれくらいの分解能が期待できるのでしょうか?
車速信号は292mm移動毎に1回、72km/h(20m/s)で68Hz程度で出ます。
これを0.05m/s程度の分解能でとらえたいというのを夢見ているのですが・・・
4772st4st:02/06/18 23:40 ID:QzcbfC8I
具体的にはわかりません。ごめんなさい。
以前、インジェクタの開弁率をLEDでバーグラフ表示できたら
おもしろいかな、、程度に考えていただけなので。
478A-:02/06/19 04:08 ID:ltl58JmF
>>476
ADCでは全域に対する分解能も考慮すると不利です。(その他不利な点沢山)
T/Cで行う場合、20m/sに対して0.05m/sならば1/400ですので
1LSB誤差を考慮しても10ビットでOKです。
さらに相手がメカのため、値が急に飛ぶことがないので
段階的にプリスケーラ値を変更することで、
多分、必要とする速度範囲は、16ビットでカバーできると思います。
これならば、AVRやPICで楽勝かと思われ?
479名無しさん@1周年:02/06/19 07:17 ID:LX0PiB88
>416
現れるたびに微妙にやりたいことが変わってるね。
480416:02/06/19 09:18 ID:XK4oOVTi
>>477-479さんResありがとうございます。

最初は回転計だったのですが、加速計に興味が移っています(^^;)
LEDで おらおら減速してるよアクセル踏みたせや という通知を鈍感な
自分より早く知らせるインジケータを作ってみたいと思っています。
(>>424)
481AT90S1200:02/06/26 08:00 ID:I3nCFmtl
disavr.exeを使って
>disavr xxx.hex > xxx.src
とすると、
Atmel AVR Disassembler v1.30
Cannot open input file.
と表示されるのですが、disavr.exeの使い方を教えてください。
基本的な質問ですみません。
482名無しさん@1周年:02/06/26 13:58 ID:Lujjqtb8
>>481
http://members.tripod.com/Stelios_Cellar/AVR/AVR_File_Archieve.html
こっちから拾ってきてみたけど、
ちゃんと動くよ。リダイレクトもOK。
ほんとにそこにファイルがないということはありませんか?
483名無しさん@1周年:02/06/26 14:49 ID:P+BMNAIc
昨日
AVR Studio 3 がVer3.55になってやっと
デフォルト日本語フォントで開けたよん。
484名無しさん@1周年:02/06/27 12:18 ID:Ma7xTODc
情報ありがとう>>483
カーソル位置の日本語表示がまだおかしいけど、まあこれくらいはいいか。
485483:02/06/27 18:29 ID:Uzew4d7r
あれっ! そうなの?
表示だけ見て閉じちゃったので気付かなかった
既にVer4にしちゃったもので...

ちなみに、これから見に行く人へ:
DL画面はVer3.54のまま直し忘れているみたいで、
「ン?」と思ったけど日付は6/25で起動画面は
ちゃんと3.55になってました。
486名無しさん@1周年:02/07/01 21:42 ID:HZH2GBAW
PullUpあげ
487名無しさん@1周年:02/07/04 18:45 ID:y9cz/BCQ
どっかに、PIC16F628のPWMとかタイマーキャプチャー制御とかアナログコンペアの
ライブラリ(アセンブラのマクロ)ありませんかね?
 Cコンパイラで、これらをサポートしているのってあったっけ?
488名無しさん@1周年:02/07/04 18:47 ID:y9cz/BCQ
ついでに聞きますが、16F628で、タイマーキャプチャとPWMを両方使いたい
っていうのはダメなんだよね?
(つまり周波数→電圧変換器をやりたいんだが)
489名無しさん@1周年:02/07/05 12:23 ID:oyJtmEx2
http://picbasic.jp/
安直なんだけど、これどうでしょうか?
490名無しさん@1周年:02/07/05 19:15 ID:tYXleRFQ
>>488
だめなような気がするんだけど、PWMだけソフトウェアでというのはだめ?
491名無しさん@1周年:02/07/06 14:45 ID:0S8Iot68
PIC、2石乗せれば?
492名無しさん@1周年:02/07/06 17:02 ID:5xH7WMOk
>>491
なるほど、そういう言い方もあるんだな。
ラヂオみたいで懐かしい。(w
493名無しさん@1周年:02/07/06 19:05 ID:SVskr7UR
>>491
AthlonMP2石PCなんていったら面白いな(^^)
494A-:02/07/06 21:38 ID:0OhkckJo
>>488 まじレス
測定条件と応答時間によるけど、交互使用で利用可。
個別ならPWM(Timer2)優先、他タイマで周波数測定。
495名無しさん@1周年:02/07/19 00:50 ID:yxTnUYNr
直接PICと関係ないけど、パソコンのパラレルポートについてお助けを

Win95で _inp _outp 関数を使用し、出力は全く問題ありませんが、
入出力モード切り替えビットを変更しても入力モードにならない
ようなんですが何故でしょうか?
BIOSは双方向モードになっています

やったことがある人にしかわからないかもしれないけどお願いします
496495:02/07/19 03:24 ID:xPBt7UzD
自己レスです

myPCのBIOSのパラレルポートのモード設定に EPP, ECP, Normal,
EPP+ECP と4種類あり、EPPにしたらOKでした

全部同じアドレス、双方向モードなのに・・・
よくわかんねぇ
497名無しさん@1周年:02/07/19 22:51 ID:Jd3nC6Bd
亀ネタだが
avr-freaks gcc VerUP
AVR Studio4.04 リリース
報告age
498名無しさん@1周年:02/07/22 10:04 ID:ql5Y7FVo
>>497
情報ありがと

>avr-freaks gcc VerUP
更新ページ変わっちゃってたのね〜
教えて貰わなければ気づかなかった

早速落としたけど、更新&動作確認出来るのは...
499あさはかマン:02/07/27 04:54 ID:fJr/Ucio
おそらく、BIOSのEPPモードというのは実はPS/2モードのことと思われます。

EPP/ECPの場合の手続きの方法は、おそらく・・・

1.ホスト側がControlPortのbit2を立てる。
2.端末側が*PaperEndをアサート。
3.ホスト側が(自動的に?)*Strobeをアサート。
4.ホスト側にデータがラッチされる。

のはず。

参照:
http://www.fapo.com/ecpmode.htm
500名無しさん@1周年:02/07/28 10:51 ID:IAqc4gZS
こんにちわ。PIC16F84のことで質問があるんですが、テストボードを作るときに
出力端子にLEDを付ける方向が全部Vss→端子になっているのは何故なんですか?
5V出力するのだから端子→GNDだと思うのですが…
回路の事がわかっていないのでもしかしたら常識の話なのかもしれませんが誰か
教えてもらえませんか?
501名無しさん@1周年:02/07/28 22:43 ID:qI0Y5FVN
えーん、500ゲットされてしまった。。

Vss→端子方向にLEDが接続されているのは出力が'Low'=電流を吸い込む向き
でLEDを点灯させるようになってるからだと思います。
正論理で作るならおっしゃるように端子→GNDにLEDを接続すれば、出力が
'High'で点灯します。
PICの出力ポートはMOS-FETのトーテムポールドライバですから、電流の吸
い込みと吐き出しの両方ができるようになっています。
502avrまだ使えないyo:02/07/28 22:49 ID:iDlKMmVZ
ChaNさんのAVRプログラマ、「LPTポート制御 ISPアダプタ」についての質問です。

私の初めてのプログラマですので、これが良いかと作ってみました。
まずは何か書きこみたいと思い、TAP-Configにあるテスト用asmを落とし、
AVR Studio 4でhexにし、avrxsで書き込みをしてみたのですが、新品にもかかわらず

***> avrxs hoge.hex
  。。。hogehoge。。。
This device is locked.

といった具合なんです。付属のドキュメント曰く通信エラーらしいのですが、
石が亡くなっている場合でもこのエラーが出るのでしょうか?
うっかり13Vかけてしまった時に逝かせてしまったのかも知れないのです。

また、TAP-Configには2石に1つは書けないとありますが、
その場合でもこのエラーなのでしょうか?
さらに、ISP書き込みがよく分かっていないのですが、
書き込みたい石に発振子をつけて5Vをかければ書けるのでしょうか?
ISPの繋ぎ方を2種類見かけるのも不安なのです。
ヘタレてごめんなさい。気が滅入ってまいりました。よろしくお願いします。
「これ読め」だけでも大変ありがたいです。
503通りすがりの単なるジジイ:02/07/29 02:18 ID:Ooqlik/x
501>> ×トーテムポール→〇コンプリメンタリ
502>> 返答したい人も詳細状況不明で難しいのでは? (過去ログ参照)
一般的に考えられる主な原因は、
1. 回路などの設計ミス
2. 回路、接続などの製作ミス
3. 対象製品の不良
4. 操作者の勘違い/ミス
なので、これらを確認してけば何とかなると思います。
因みに、環境によっては回路定数かプログラムの定数を変更しないと
まったく書けない、「2石に1つは書けない」などの症状になる場合があります。
同一出所のものを作っても、全員が確実に成功するわけではありません。
504名無しさん@1周年:02/07/29 05:23 ID:GRtPlDrX
トーテムポールでも○
505名無しさん@1周年:02/07/29 07:19 ID:76nvxfUP
>>500
でもって、両方できるのになぜVdd→pinで使うかというと、
私は内部回路には詳しくないですが、PICのデータシート見ると
その方が内部抵抗少なく、大電流を流すことが可能になるからのようです。
16F84の場合、PIC内での電圧降下0.7Vの時の電流はpin→GNDでは
3mAですが、Vdd→pinでは8.5mAとれるようです。他のCPUやロジック
ICもこのような物が多いですね。

なぜそうなのか便乗質問します。教えてください>みなさま
506名無しさん@1周年:02/07/29 07:26 ID:76nvxfUP
>うっかり13Vかけてしまった時に逝かせてしまったのかも知れないのです。
これは新しい石を用意して試してみた方が早いでしょう。

安定して書けないときの問題は過去ログに結構あるようです。
winNT/2k/XP使っていませんか?
まずはいろんな環境を試してみるのがいいかと。
NT系だと、仮想ポートドライバ使うyaapなんか安定していていいみたいです。
507502:02/07/29 09:10 ID:eADizNdg
お返事ありがとうございます.>>503,506
>>503
導通チェックならやりました.

これだけ単純なので,「サルでもできる〜」な具合に作れちゃうと思っていましたが,
まさか最初のプログラマ製作で苦戦するとは...

>>506
使用のOSはWindouws98です.大事な事を書き忘れてしまいました.すみません.
あのエラーは,全ての操作で出てしまいます.
明日新しい石でやってみます.私は3個ぐらい買った方がいいみたいですね.
過去のレスでは>>335さんが参考になりました.atmelのpdfを色々読んでみないとダメですね.

今度はLinuxでuispを使ってみようと思います.
TAP-Configにある配線図は直結ですが,大丈夫でしょうか?
試した方のお話待ってます.
508名無しさん@1周年:02/07/29 18:34 ID:K80C7XH+
>>505
なんででしょうね。シロートなのでわかりませんが、Low側のNチャネルFETのほうが
性能がいいとか??
ちなみに出力ピンに対してどっち向きにLEDを接続するかは、ほとんど設計者の趣味
かなという気もします(w
TTLを使い慣れてる人は吸い込み方向で作る・・・とか。
509506:02/07/29 19:07 ID:fR28arCm
>>507
>>335みてワラタ
でも本家ページの英文pdf、読み始めると面白いです。多すぎてよみきれん(^^;)
AVRは有志による翻訳版があるのがとても助かっています。安易な私はデータ
シートはもっぱらこちらを読ませて頂いています。
510名無しさん@1周年:02/07/29 19:50 ID:RIGeG5pH
>>508
等価回路を見たらどうだ?
多分それで解ると思うが。
511名無しさん@1周年:02/07/29 20:21 ID:fR28arCm
PICは手元にないのでAVRでみてます。
AVRも同じ内部電圧低下0.7Vの条件ではsinkだと35mA、ソースだと19mA程度のようですね
残念ながら等価回路は出力はラッチとして省略表現なのでわかりませんでした。
CMOSなら(AVRはCMOS)sink source電流は同じくらい取れるはずですよね。
512あさはかマン:02/07/29 21:02 ID:C3FUyMX1
CMOSだと同じ容量が取れるはずですが、
作り方によっては(トランジスタの物理的な大きさ、など)
ピンのソース・シンクの特性が異なります。

AVRはシンク・ソース共に相当に強化してあるようですが、
PICとは反対にシンクの方がソースより許容電流が少ない作りになっています。

ところで、AVRは出力トランジスタの抵抗が高いのでLEDが「抵抗器なしで」直結できます。
出力特性グラフを参照のこと。
18mA付近でピン電圧が2V程まで少なくなるので、LEDが確かに直結できるのです。

もちろんLEDは発熱によってVfが下がること、
チップ内部の消費電力の問題もあるので、LED直結はわりとデンジャラスです。

ちゃんとする場合は抵抗をつけてLEDの電流を制限すると共に、
チップ内消費電力を減らす方が良いです。
513500:02/07/29 21:53 ID:EQ6mBFuZ
みなさんありがとうございます。
とりあえずもう一度データシートから見直してみます。

>585
ほとんどの本は吸い込み型で作ってますよね。
しかしそれ系統の本は書く人によってまちまちだから回路の基礎ができていない
俺では違いが分からない(泣
やはり回路も勉強しなおします。
514名無しさん@1周年:02/08/03 14:54 ID:CGuKTp0M
基本的にシリコンはNチャンネルの方がよい特性をだせます。
何故かは聞かないで。
515 ↑ :02/08/04 04:43 ID:Jx/opIDb
耳が公文のお方?
516EV:02/08/07 16:15 ID:+0ctOOyU
PICの16F84AにフォトインタラプタをRA4につないで、
Bportに8つLEDを接続した形のタコメーターを作ろうと思ってますが、
MAPLABのシミュレーターで動きを検証してみると、
カウンタのTMR0をクリアした後に
意図しないところで動き出して、値が2で止まってます。
ブレッドボードで回路を組んでみるとその通りの結果です。
まだRA4に入力が無いときはTMR0の値は0のままであって欲しいのですが、
どうしてこうなるのかわかりますでしょうか?
プログラムは後閑さんの電子工作入門の周波数カウンタを参考にしました。
http://www.emcs.tv/tacom.asm

517名無しさん@1周年:02/08/07 22:40 ID:HEla08aA
>>516

T0CS(optionレジスタ.bit5)は正しく(1 = RA4/TOCKIに)設定されていますか?
518517:02/08/07 22:52 ID:HEla08aA
スマソ・・asmソースがあったのね。逝ってきます。
で、割り込み使っているようですが4番地の割り込み先がない?
519あさはかマン ◆aXZ1gLWI :02/08/07 23:03 ID:dk7+4eVI
19行目でTRISを0クリアしているのでRA4は出力になってます。
で、ソースでPORTAを弄っているのでそれが原因でしょう。
520EV:02/08/08 08:03 ID:at3ehhnc
>>518
>>519
早速レスありがとうございます。
RA4を出力出力モードにしている件ですが、後閑さんのでそういう風にしてあるのです。
そこは、何度か修正が入っているのでちょっと疑問でもあります。
以下後閑さんのHPの正誤表からのコピペです。
「調査中に新しい方法が見つかりました、RA4がオープンドレインであることを利用すると、RB0によるゲート制御は不要で、RAだけで制御できることが分かりました。
つまり、RB0とRA4の接続は不要で、RA4を出力モードにして、0を出力すれば入力が強制的に押さえ込まれ、
1にすれば入力がそのままカウンタの入力となります。従ってRB0は不要という結果になります。」
ということだそうです。

自分にはなぜ、0、lowレベルで出力すれば
入力パルスが押さえこまれるのか仕組みがわからないのですが。

521名無しさん@1周年:02/08/08 11:10 ID:i8IQBpcH
>>520
オープンドレインだと'0'を出力している時はRA4ピンがGNDレベルになりますから
入力レベルがGNDに引っ張られる訳で。出力を'1'にすると、RA4ピンはオープン
(ハイインピーダンス)になるので本来の入力信号が得られる、という事だと思いま
す(間違ってたら詳しい方、フォロー願います♡)

うまく動作しない件については私もよくわからないです。ゴメソ
522EV:02/08/08 22:30 ID:9PfU4Vo4
>>521
説明ありがとうございます。
すると、後閑さんのプログラムはそれはそれでいいみたいですね。

523EV:02/08/09 12:12 ID:HViQMXDC
自己レスですが、
入力パルスの数を厳密に0からではなく3とか4ぐらいから
かぞえるようにすれば、タコメータとして見掛け上は上手く動作しました。
なんとなく疑問符が残ってすっきりしませんが。



524名無しさん@1周年 :02/08/10 22:41 ID:JX3VWkaO
PICを使用した作成したいのですが
電子回路シュミレータでPICをモジュール化したものってないのでしょうか
あれば、実際に設計して製作する前に動作の検証が可能となりとても便利
なのですが。
シュミレータのCIRCUIT MAKERではかなりの中規模の集積回路のモジュールが
あるのでこれを組み合わせてPICのようなCPUをモジュール化でき
そうなんですが自分で作るのはちょっと無理みたい。

525名無しさん@1周年:02/08/11 00:17 ID:pdx1CeAT
uisp を使おうと思い,
http://home.overta.ru/users/denisc/
の `Scheme of AVR programmator through PC Parallel Port.' を見てビックリ.
AVR の `Signal name' と `Pin' 番号が合っていないようなんです.
どうしてなんでしょう.`Signal name' の方を信じれば良いのでしょうか?
526名無しさん@1周年:02/08/11 07:26 ID:ycwzeTut
>>525
AVRはチップによってSCK/MOSI/MISOの位置違うよ。
多分2313あたりと比べていると思うけど、あの結線図は8515とは一致します。
527名無しさん@1周年:02/08/14 07:27 ID:0yC2sCby
>>EV

PIC辞めてAVRにしなはれ
528名無しさん@1周年:02/08/14 16:35 ID:OWctXCwk
>>512
>AVRはシンク・ソース共に相当に強化してあるようですが、
>PICとは反対にシンクの方がソースより許容電流が少ない作りになっています。

え、ほんとですか?
データシート(2313)では、絶対最大定格電流40mA/pin(向きは書いてない)となっていますが。
ソースだとHiのままGND直結しても40mA流れそうもないと言う意味ではないですよね。

>>511
シンクの場合は内部電圧低下0.6Vで20mA前後流れますが、
ソースの場合、内部電圧低下0.7Vで3mA程度しか流れないことになりそうです。
DC定格参照。

529名無しさん@1周年:02/08/14 19:27 ID:YzSvrX8T
初心者質問失礼します。
2つのAVRなどのUARTどうしをTxD-RxD直結するだけでデータ送信はできますか?
一度RS232Cレベルにした方がいいのでしょうか?
延長距離は2m程度の予定です。
530名無しさん@1周年:02/08/14 21:05 ID:F/rmpcmM
直結で大丈夫だけどオーバーシュートアンダーシュートが怖いから
バッファ付けるとか抵抗かませた方が安心
RS232Cレベルにするのは電力のムダなので相手に合わせる場合以外は却下
531529:02/08/14 21:57 ID:Ek2fJmtx
ありがとうございます。念のため抵抗入れときます。
532名無しさん@1周年:02/08/15 01:06 ID:WD1afZ3u
「わかるPICマイコン制御」という本に載っている通りに実験ボードを作りました。
早速PICプログラミングにチャレンジしようとしていますが、
本に載っているサンプルプログラムが動きません。
なぜか秋月のキットに付属しているサンプルプログラムは動きます。
その本には 16F84 を使うように書いてありますが、16F84A をつかっています。
無印とA付きの違いはクロックだけと書いてあるのを見かけたからなのですが、
それ以外にも、プログラムの動作に影響を与えるような違いがあるのでしょうか。
533名無しさん@1周年:02/08/15 02:35 ID:f3cbhSJi
ここは本の尻拭い板ではない。自己責任でやれ。分からなかったら辞めてしまえ。
534名無しさん@1周年:02/08/15 08:52 ID:rY3xhLM+
●PIC・AVR [本を見ない]初心者のためのスレッド●
535名無しさん@1周年:02/08/15 09:03 ID:LF69Ql9C
>>532
配線はきちんとチェックしたという前提で言えば、

その本を持ってない人には答えようのない質問、
その本を持っていてもどのサンプルなのかわからないような質問
は答えようがないと思う。どんな実験ボードで、秋月サンプルと
その本のサンプルがどんな奴かを書けば少しは助け船が出るかも。

無印とA付きの違いは他に動作電圧と消費電力があるらしいけど、
普通に?5Vでやってるならそれが原因で動かないことはないと思う。
536名無しさん@1周年:02/08/21 14:28 ID:wpXsZS1+
最近PICで電子工作を始めた者デス。

JDMプログラマーとIC-progで16F84と12C509には書き込み出来ているんですが
16F873を使った物を作ろうと思い、このサイトの通りにJDMを改造したんですが
(ピン配置は873に合わせて変えています)
どうしても書き込み出来ません。

http://www.ucapps.de/howtoprog.html
http://www.ucapps.de/mbhp/mbhp_jdm_v2_sm.gif (回路図)

端子電圧は、ほぼこのサイトの指示どおりの値になっています。
IC-progの低電圧プログラムは無効にしています。

どなたか同様の改造をして書き込みに成功した方いらっしゃいましたら
アドバイスお願い致します…

#素直に秋月のキット買えっちゅーことかなぁ…
537536:02/08/21 19:13 ID:x9g3wjGN
スミマセン、自己解決してしまいました…

結局IC-progのハードウェア設定のI/O遅延を一番大きくしたら照合も成功しました。
お騒がせしました…
538502 = 507:02/08/26 18:51 ID:dJ9GBfya
プログラマを作るだけで,もう5石も壊しちゃったんです...

>>502 で1つ,
uisp がサポートする `AVR direct parallel dummy' と `STK200 parallel dummy' で2つ
(回路は http://medo.fov.uni-mb.si/mapp/uTools/ )
再びChaNさんの「LPTでISP」で2つ逝きました.
おそらく私が AVR 始まって以来のDQNなんでしょうが,一体どんな原因が起こりうるのでしょう?
これらの回路は安全性に難? PCのポートが腐っている?(PICは成功しているのに)
ブレッドボードではこういうのに向かない? AT90S1200は壊れ易い?...うぅうぅ

>>507の直後にChaNさん式で書ける回路をブレッドボードで作れたのですが,
ChaNさん式はいつでも作れるのだと思い解体してしまいました.
その後またChaNさん式を作ったところ,Writing は成功するのに Verify がエラー,
もう一度やってみると `This device is locked.' ガ━━(゚Д゚;)━━ソ! x2

普通こんなに壊せますか?私がこのスレの方々と同僚なら,もう私の前歯は無いでしょう.
539名無しさん@1周年:02/08/27 00:19 ID:O9WsIK5z
ネット上にある作例で秋月のPICライターを使用したものの中には
JDMプログラマで焼けない場合がある。何故だ?
509が死屍累々。
対処法を模索中だがいまさら秋月のキット買う気になれん。
540秋月一句:02/08/27 02:34 ID:Q1BwI8Hj
ああ名月や名月や
541名無しさん@1周年:02/08/27 10:27 ID:bX6snkXJ
>>536
>素直に秋月のキット買えっちゅーことかなぁ…

素直に、Microchip純正のプログラマ買うのが吉。
(サードパーティー製なら秋月のLeapPstart(13,700円)買うという手もある。)
542名無しさん@1周年:02/08/28 00:21 ID:GKXUBDe5
壊れるって言うのが不思議。なんか根本的に配線間違えてない?
AVRのソケットが逆向いてるとか(^^;)
DSUB25のpinの数え方が逆だったとか
(どれ作っても壊れるならこの部分が共通だから可能性はある)
そんな馬鹿なことはしない失礼な! だったらスマソ。

共立のドングル基板キット買ってみては?
1000円で、ジャンパ1本でSTK200互換になるよ。
基板だけなら300円。これなら間違えようがない。
543名無しさん@1周年:02/08/28 00:30 ID:un8TU0n1
ちょっと関係ないですが、質問させてください。

フイルムコンデンサとマイラコンデンサは呼び方が違うだけで全く同じ物ですか?
マイラコンデンサ=フイルムコンデンサと考えて間違いないですか?
544名無しさん@1周年:02/08/28 02:40 ID:kGql/mwP
Microchip純正のプログラマでのみ書きこみ可能で
秋月ライターでは書きこめない場合もあるようだ。
(逆もか。)プログラムごとにそれぞれライター買えってか?
545名無しさん@1周年:02/08/28 09:01 ID:LC2mt8Vu
>>542 DSUB25の3と11を短絡するってやつ?
546502 = 507 = 538:02/08/28 11:06 ID:bm2bABTh
>>542 お返事ありがとうございます.私が昨日成功したのをすぐ報告すれば良かったのですが,ごめんなさい.

昨日ユニヴァーサル基板で ChaNさんのを作ったらあっさり成功しちゃったんです.
それですぐにファームを書き,`Atmel Low ...' に載せたら Linux マシンでも簡単に書けました.
さらに, ChaNさんので壊したと思われていた石2つが生存していることも発覚.
また壊すと思ったので秋月で10コ¥2000を買った私って...ファームだけ¥250で売れよぅ.

> そんな馬鹿なことはしない失礼な! だったらスマソ。
していないはずとは思いながらも,
用に自分で用意したケーブル類はイビツな格好をしているので,
ブレッドボード変な間違え方をしていたのかも知れません.
ブレッドボード用に便利なアイテムを考案している web サイトはないものか...

> 共立のドングル基板キット買ってみては?
確実なプログラマが安ければ2週間も苦しまなくて済みますよね.
千葉県に住んでおりますので,通販で扱われていないものは入手できないんです.
秋月が高級なキットばかりでなく,書き込む為だけの安いやつも取り扱えばいいのに.
ところで,ブレッドボードは信号線が多い回路には不向きでしょうか? ヘタレ ニハ スベテ フムキw
547名無しさん@1周年:02/08/28 12:59 ID:XMfjxaCL
>>546
もう解決したみたいなので不要でしょうが、
秋月にしても共立にしても、店頭にあると分かっているものについては、
丁寧に頼み込めば通販してくれますよ。共立では何買ったか忘れたけど、
(ドングル基板は店頭で買った)秋月で通販メニューにないAVRを問い合わせて
買いました。
状況によって・受け付けた店員によって、その日のお天気によっては
うまくいかないこともあるかもしれません。
共立デジットのホームページに回路図もプリント基板パターンもPDFで提供
されています。

>>545
>>434で紹介されてる奴。
うちのとこでも同じ問題がこれで解決できました。
548502:02/08/28 15:20 ID:bm2bABTh
>>547
なるほど...問い合わせてみるのも必要なんですね.

> 共立デジットのホームページに回路図もプリント基板パターンもPDFで提供

デジット?と思い見て回ったら,ありました.トップページに `AVR' の文字を踊らせる共立が.
今まで「エレショップ」というのしか知らなかったんです.

知らないうちに AVR の解説サイトが増えたような...?
549名無しさん@1周年:02/08/29 06:53 ID:wsXCWWSh
ちょっと質問です。
RS232Cなどで制御できる、安価で小さいビデオターミナルのような
ものってないでしょうか?2行LCDのような手軽さでマイコン(AVR)から
RS232C等で送信した文字をビデオ出力したいのです。
文字だけでいいです。漢字は要りません。カーソル位置制御と文字表示が
あればいいです。できれば文字色指定なども欲しいですが、モノクロでも
構いません。
解像度は320x240もあればOKです。趣味工作用なのであまり高いもの
(1万以上)は手が出ません。
キットや制作記事などでも構いませんので(私に手に負えるかどうか心配
ですが)、参考になるものがありましたら是非紹介願います。
マイコン+CPLDを使った記事は見つけましたが、CPLDには私の力では
今のところ手が出そうにありません。
昔のパソコンの中古を使った方が安上がりかもしれないのですが、
あれは大きすぎてちょっと躊躇しています。
550名無しさん@1周年:02/08/29 10:30 ID:6y5rU9gU
>>549
これじゃダメかな? スーパーインポーズですが。

結構有名なサイトです。

http://www.elm-chan.org/works/sdisp/report.html

GALを書く必要があるけど、「おてGALライタ」っていうコンテンツもあるので、
参照すると良いと思うです。
551名無しさん@1周年:02/08/29 11:13 ID:wsXCWWSh
>>550
ここは何度も何度も見ながら唸っています(^^;)
これ作れる自信がないことと(頑張って勉強すればどうにか)、これ
作ったあとキャラクタージェネレータのようなものをまた別のマイコンで
作って…とまあ今の私にはハードルが高そうです。
そこで安直にも出来合いのキットか完成品がないかと思って探しはじめて
いるのですが…じっくり検討してみます。
552名無しさん@1周年:02/08/29 12:33 ID:OWqNfw1N
>>543
マイラコンデンサはフィルムコンデンサの一種のポリエステルフィルムコンデンサのことだ。
マイラーつうのは、どこかの化学メーカーの商品名だったと思う。
他の化学組成の誘電体フィルムを使ったフィルムコンデンサもあるよ。
そういうのは当然、マイラコンデンサとは呼べない。

スレ違いなのでsage.
553551:02/08/29 18:09 ID:56I4egGt
大事なこと書き忘れてた。
>>550さんありがとう。
GALは面白そうなのでいつか遊んでみようと思っています。
554名無しさん@1周年:02/08/29 19:02 ID:6y5rU9gU
>>553
いえいえ。お役に立てずにすみません。

授業料のつもりで、AKI-80のNTSCカラーパターンジェネレータを
いじってみるのはいかがでしょうか?(http://www.akizuki.ne.jp/ashop/aki-80.htm#K-00015)

8文字の英数字がスーパーインポーズできるみたいです。
最終目的とは隔たりがありますが、ビデオ系について、なにかアイディアが沸くかもしれませんよ。
(もちろん、なんの役にも立たない可能性も十分ありますが)。

いやぁ、ほんとに役立たずですまんです。
555名無しさん@1周年:02/08/29 20:30 ID:SpGYX3HQ
>>553
 少しばかり投資する気があるなら、ISPタイプのGALとかも
あるのでそちらの方が、ライターを作るより安い気がするよ。
556名無しさん@1周年 :02/08/31 14:58 ID:URDbG9yV
age
557名無しさん@1周年:02/09/04 20:55 ID:IT04wsOT
秋月のキットにはいってたPA.EXEがぜんぜん動きません
WIN2000じゃ動かないんでしょうか?
558名無しさん@1周年:02/09/05 11:49 ID:TobA/KF7
>>557
どう動かないのか書かないとコメントしにくいと思われ。
エラーが出るのか、無反応なのか、ハングアップするのか
559名無しさん@1周年:02/09/05 16:29 ID:H9E1bfQi
>>588
すいません、そうすべきでした
しかしなぜだか動くようになりました
しかし今度は
インクルードしようとするとエラーが出てしまいます
インクルードするファイルはちゃんと同じフォルダに入れてあるのですが、、、

;***p4_2.asm***プログラムの名前
;プログラムのベースとして使われる

include 16f84.h
.oschs
.wdtoff

org0ch
冒頭の部分です
そしてこんなエラーが出ます
***** pass 1 *****
include 16f84.h
Error p4_2.asm 4: File '16f84.h'not found.
560名無しさん@1周年:02/09/05 16:33 ID:H9E1bfQi
あ!できるようになりました
ソースのincludeのところの16f84.hのあとにスペースやタブが入ってたのが
まずかったみたいです
561名無しさん@1周年:02/09/05 18:02 ID:0zdnLVvI
>>560
なんだか懐かしい障害で(苦笑

スペース・タブ・全角スペースが原因とは(笑

昔、latticeのC(MSCの母体になった奴)で、その手の障害が色々と出たのを
懐かしく思いましたです。今の処理系にもあるんですね。
おかげさまで、今でも日本語FEPのスペースの設定は半角ですし、
エディタの設定でもタブや全角スペースが判読できるようにマクロを組んだり
しています。習い性ってヤツなんですかね(苦笑
562名無しさん@1周年:02/09/06 04:18 ID:oJqXZ11n
picの環境、みなさんは秋月のキットが多いみたいですが、私は
無料pic環境で以下の組み合わせでつかっております。
以下にこれから始める方にも有効な情報を提供いたします。
総合ツール(アセンブラ、デバッガ、リンカ):MPLAB 無償
C言語:HI-TECH Cコンパイラ1kワード限定版 無償
Cライブラリ:HI-TECH Cコンパイラ 21日限定版:サンプルが使える
書き込みツール:PICWW 無償(セキュリティはシェアウエア)
そして、コストパフォーマンスのよい16F628を使っています。
16F627は1Kワードなので、こちらの方が良さそうですが628の方が何故か
入手性、値段とも良いのでこちらを好んで使っています。
16F62xファミリは16F877のレジスタに非常に良く似た構成をしています。
16F84よりadconv,usart,comparator,timerが強化されて使いやすいです。
なによりも、内臓オシレータの4MHz/37KHzがあり、MCLRを内部で72ms取れるので、
この設定にすれば16ポートまるまる使える点です。
16F84ソースを移植する場合は、一つだけ注意が必要です。CMCONレジスタに0x07
をセットすることです。USART,ADCONVなどは16F877の解説本を読むと良く参考に
なります。(ex,後閑さんの出版物、MALの出版物など)
563名無しさん@1周年:02/09/06 09:10 ID:Bv53tDEO
>>562
書き込み機は何使うの?
564名無しさん@1周年:02/09/06 09:18 ID:Acg6pr1J
>>562 限定版で無料じゃちょっと悲しい.avr-gccみたいなプロジェクトはないの?
いっそそういうのに参加しちゃうとか.勇者って言われるよ.
565名無しさん@1周年:02/09/06 12:28 ID:gORbXmSc
PA.EXEではアセンブルできるのですがMPLABではエラーがでまくります
なぜでしょうか?
566名無しさん@1周年:02/09/06 13:18 ID:F6w2XdJ9
>>565
どんなエラーか書いてくれないと何も言えない。
567名無しさん@1周年:02/09/06 16:03 ID:SwEYRbQt
>>563
ぐーぐるでpicww調べて電圧制御型の回路のってる。多分それだろ。
この回路は秋月のキット+2SB1462+若干の抵抗で出来るだろう。
568名無しさん@1周年:02/09/06 16:08 ID:SwEYRbQt
>>564
使ってもいないのにイキナリ非難するやつはお金出して買ってくれ。
俺は>>562じゃないが,ほぼこれらの環境使ってる。
1kでもでAD比較しながら232Cにレポート吐き出したり232cからコマンド
受けたり,リレー8つくらいを同時にすることなんて簡単に出来るわい。
569名無しさん@1周年:02/09/06 17:41 ID:gORbXmSc
>>565

こんな感じです、PA.EXEでは素直に通るのですがMPLABだとこうなって島します

ビルドリザルト
http://www.42ch.net/UploaderSmall/source/1031286762.txt

コレをアセンブルしました

p4_2.asm
http://kari.to/upload/source/5933.txt

16f84.h
http://kari.to/upload/source/5945.txt
570名無しさん@1周年:02/09/06 18:24 ID:wIBtv8Od
>>569
ps0 equ 1.0
mov !rb,#0

こんなのダメっす。
その他、とにかくMPASMの文法に全くあってないので、ダメダメっす。

571名無しさん@1周年:02/09/06 18:30 ID:gORbXmSc
>>570
え!アセンブラってソフトによって文法ちがうんですか!?
チップが同じなら共通かとおもってました、、、
572名無しさん@1周年:02/09/06 19:02 ID:gumyt2Ds
>>571
PIC、AVRに限らず、そうだよ。
573名無しさん@1周年:02/09/06 19:05 ID:r5yG4nAy
>>571
人はそれを「方言」と言います。
CPUが同じでも、結構あるよ。
マクロなんかを使っていると、泣きたくなる時もしばしば。
574名無しさん@1周年:02/09/06 19:23 ID:E9lXVEC6
>>573
そうそう。なんやかんや言いながら、Cの方が方言が少ないだよね。
575名無しさん@1周年:02/09/06 19:28 ID:gORbXmSc
そうでしたか、、、だからCなどの高級言語が尊ばれるわけですね、、、
では皆さんは同じCPUでも開発環境に合わせておぼえてるのですね

576スレ違いなのでsage:02/09/06 22:36 ID:M8X2H70g
Cも、gccで書いたものを他のCに移そうとしたら、
//のコメントが全部エラーになって(藁
grep一括置換しようとしたら一部/* */と//が同じ行にあったりして
もーぐちゃぐちゃ(^^;)

577564:02/09/06 23:20 ID:Acg6pr1J
>>568 私はフリーソフトウェア信者.相手にしてはいけません.
578名無しさん@1周年:02/09/07 00:26 ID:v5ZeAoX6
ん?全部フリーだよ。
579564:02/09/07 10:50 ID:xgtNklaC
>>578 GNUの言う「フリーソフトウェア」です...ロハはあまり要求しないの.
580名無しさん@1周年:02/09/07 17:13 ID:MyO4OgT5
>>569
のp4_2.asmがちゃんと動かないのですが、、どうもサブルーチンwaitのretにちゃんと
反応していないように見えます。
なぜでしょうか?
581名無しさん@1周年:02/09/07 18:51 ID:MyO4OgT5
直りましたretの後ろにEOFがあったのがマズかったようです
EOFもダメなんですね!
582名無しさん@1周年:02/09/07 18:59 ID:x9Kxn2Dd
いまどきEOF入れるエディタって・・・なんかなつかしひ(^^)
何をお使いですか?
583名無しさん@1周年:02/09/07 19:03 ID:MyO4OgT5
秀丸って奴です
さっきはじめて使ってました
でもメモ帳でつくったファイルでだめで最後の行を改行したものを
アセンブルしたら直ったのでメモ帳も同じことかと思いました。
MPLABとかならEOFが命令の直後にくっついてても大丈夫なんですか?
584名無しさん@1周年:02/09/07 23:02 ID:1ZDVKCsq
>>571
PA.EXEはMPASMのインストラクション+拡張インストラクションという仕様なので
通常のasmソースのアセンブルはできたと思う。
その逆ではMPLABが拡張インストラクションを解釈しないので×。
585582:02/09/07 23:59 ID:x9Kxn2Dd
>>583
漏れも秀丸ですけど、EOFつけるかどうかは選択できるよ。
その他−ファイルタイプ別設定−保存・読み込み 参照。
586名無しさん@1周年:02/09/08 02:23 ID:++Pdjn9t
なるほど、でもこういうときの用心のためにつけておいたほうがいいですよね?>EOF
587PPIICC:02/09/08 02:44 ID:tKctYLXq
I/Oポートにモーターの片方
モーターの片方をGND
I/OポートをHレベルに・・・

モーター回りません;;
なんでですか??電圧は適正です;;
588名無しさん@1周年:02/09/08 03:02 ID:URakoG9c
マイコンの端子なんてモータまわすほど電流流せないよ。
太陽電池でまわるモータならまわるかもしれないけど
せいぜいLED光らすくらいでしょ。
トランジスタを外付けすればいいよ。

589PPIICC:02/09/08 03:05 ID:tKctYLXq
トランジスタつけたけど動きません;;
トランジスタは2SC1815です
ちなみに16F84Aです

1つじゃ足りませんか?
590名無システムズ:02/09/08 03:08 ID:nr7AcCry
モータの種類とメーカと型番は?
591PPIICC:02/09/08 03:10 ID:tKctYLXq
マブチモーターRE140です
592名無システムズ:02/09/08 03:24 ID:nr7AcCry
2SDシリーズのTrで図体が大きい奴にかえてみそ
593PPIICC:02/09/08 03:57 ID:m4Y9/0jj
わかりました
やってみます
どうもありがとうございました_(._.)_
594名無しさん@1周年:02/09/08 10:46 ID:IUZ7JWXs
>>586
逆っす。こういう用心のためにEOFつけないようにしたほうがいいっす。
つけなくても、コマンドラインで標準入出力から読み書きするプログラムを
含めて、問題起こらないですよ。秀丸のヘルプにも通常はつけない方が
いいと書かれている。
595名無しさん@1周年:02/09/08 11:12 ID:AXZUpvfh
>>594
そうそう、EOFは太古のCPM時代のなごり。
596名無しさん@1周年:02/09/08 11:47 ID:BnOrPU0P
そうでしたか、、、しらなかった、消しておきます
597名無しさん@1周年:02/09/08 11:52 ID:BnOrPU0P
でも今試したのですがEOF消しても最後の行で改行しなかったら
同じようになったのですが、、
598謎のHP?:02/09/08 13:33 ID:WRmuYCEu
みつけた!
http://isweb45.infoseek.co.jp/computer/ja2kai/
でPICライタ無料DL
599名無しさん@1周年:02/09/08 15:12 ID:BnOrPU0P
tst
600名無しさん@1周年:02/09/08 23:33 ID:SyBcEcy2
>>597
分かってるなら、改行しろよ。
601名無しさん@1周年:02/09/09 10:20 ID:x5mBe0ya
>>597
つまらないことに拘っているよりも、コンパイルが通る状態で
自分のプログラムのデバッグを進めたほうが吉。
602名無しさん@1周年:02/09/10 20:06 ID:k4UWLEmy
いっそFETにかえてみれば?
NとP間違えてるとかないよね?
>>592
603名無しさん@1周年:02/09/11 12:32 ID:r5WAtppH
佐川氏って、この場に及んでも日中はスミに出勤してるですか?
604603:02/09/11 12:33 ID:r5WAtppH
>>603
誤爆スマソ
605549:02/09/11 21:30 ID:IYs4CYb8
こんなのみつけたー
http://lillith.sk.tsukuba.ac.jp/~kashima/car/laptimer/laptimer.html
http://www.infomicom.maec.co.jp/osd/osddsum.htm

OSD(オンスクリーンディスプレイコントローラー)っていうのか。
これは使えそう・・・上のページには入手先まで書いてある、ありがたい・・

606名無しさん@1周年:02/09/12 12:32 ID:fqESF62Q
>>603
漏貧スレ住人ハケーン(w
607名無しさん@1周年:02/09/13 13:25 ID:K5Q6neJF
PIC用のコンパイラやシミュレーターで、皆さんは何を使ってますか?
フリーで便利なのってわからないので…
608名無しさん@1周年:02/09/16 11:53 ID:QOZ8Nxum
純正じゃだめなの?
609名無しさん@1周年:02/09/16 21:48 ID:xkIoDMFa
>>605
うちの学校のページだ、、、
610名無しさん@1周年:02/09/17 22:19 ID:CgZ+I3Lk
12Vのパルスを5Vで動作中のマイコンやロジックICに入れる場合、
制限抵抗の後GNDにツェナーで落とすのと、GNDとVccにDiodeかませるのと
どっちがいいですか?
picのML見たら、DiodeでVccにつなぐのは5V側の消費電力によっては
Vccが上がってしまう(下流からageられ分には三端子レギュレータは無力)
のようなことが書かれていたので気になっています。
流入電流がマイコン側の消費電流を充分下回るようにしておけば大丈夫でしょうか?

611名無しさん@1周年:02/09/17 23:23 ID:XIdPeMcz
ttp://www.oitaweb.ne.jp/hp/y-mori/hard/avrtaco.html
これはツェナーで落としてるよ。

作ってみたけど、問題なく動いてる。
612610:02/09/18 00:24 ID:bgbn0A5K
すみません、勘違いでマルチポストしてしまいました。
http://pc3.2ch.net/test/read.cgi/jisaku/1027046685/l50

>>611さんありがとうございます。
車の点火系って一次側でも12Vどころじゃない相当な電圧出るんですよねたしか。
これでも大丈夫と言うことなんですね。
613名無しさん@1周年:02/09/18 04:19 ID:aC4pXVB0
>>597
そのこだわり、真の工学者の片鱗かな。
動けばいいやの先輩は自分を越えそうな次世代に嫉妬するのが世の常だ。
614名無しさん@1周年:02/09/18 10:06 ID:g+wajiNY
>>613 そうなんだ。。。なんかわからんけど、エディタのソースコードが必要のようね。
615名無しさん@1周年:02/09/18 18:08 ID:ScS8svU4
>>614
エディタじゃなくてアセンブラだろ。
テキスト処理するプログラム作ったことあればEOF入ったり
最後の改行がなかったりするのを考慮するのはうっとおしい!
という気持ちは分かる。分かるけど許さん(藁

616名無しさん@1周年:02/09/22 19:52 ID:MIJ0NpM3
そろそろ
outp(0xFF, DDRB);
outp(0xFF,PORTB);
したい。
617あぼーん:あぼーん
あぼーん
618名無しさん@1周年。:02/09/29 19:30 ID:Qud+mpSP
AKI-PICプログラムキット3を今日買ってきました。
さっそく作ってみます。
619名無しさん@1周年:02/10/01 02:48 ID:9UevMwlq
AVRって、外付けリセット回路はブラウンアウトを考慮するとき以外は必要ない
(PowerOnResetには必要ない)んですよね?
今作っている奴でちょっと困っています。かなりの確率でPowerOnResetに
失敗して動作しないのです。ResetピンをGNDに落とすと100%動くので
リセットがらみだと思うのですが・・・
電源は9V電池→47uF/0.1uF→7805→0.1uF/47uF→AVR(2313)で、
ソケット裏でAVRのVcc-GND間に0.1uF積層セラコン入れています。
ヒューズビットは弄っていない(パラレルプログラマーないのでいじれない)
ので、たぶん標準のままのFSTRT=1(長いリセット時間)だと思います。

他にチェックした方がいいポイントがありましたら教えてください。
動作はLEDとLCDで行っています。LCDはソフトウェアリセットかけてます。
あ、もしかしてLCDのPowerOn後待ち時間が短すぎるのかな(15ms)
620A-:02/10/01 03:11 ID:dhbShv1+
AVRに限らずLCDコントローラもそうですが、
一般の内蔵リセット回路は、
一旦電源電圧が一定電圧以下にならないと正常に動作しません。
電解コンを外すと動作する可能性があります。
これで症状が改善されるようですと、この問題と思われます。
621名無しさん@1周年:02/10/01 03:25 ID:tKLYWNz2
>>619
それはもろにリセットの問題だね。
立ち上がりの遅い電源でパワーオンリセットに失敗するとか、
電源OFF時にパスコンに溜まった電荷で動作してしまい電源が
完全に落ちるまでおかしな動作をするとか。

電源監視IC(所謂リセットIC)を使う以外解決の方法は無いかも。
時定数付きで且つTTLアウト(ODじゃ無い奴ね)の奴を一個付ける
だけだから対策は結構簡単。コンフィグレーション回路との共存を
考えると、リセットをANDする必要はあるけど。
622名無しさん@1周年:02/10/01 04:13 ID:DDLI7CDj
むぅー電解コンデンサあるとだめということもあるんですか。
電源を切ったつもり→でも5V側電解コンに電圧残る
→電源ONにしてもリセットがかからない というわけですか。
でも実は最初は5V側には0.1uF発信止め積層セラコンだけだったのですが、
これでも同様だったのです。リセットICしかないですかねえ。

もう1つ確認ですけど、AVRのRESETは内部でプルアップされているから
外部からプルアップする必要はないんですよね?
Web上のAVR工作例をいくつか見ていると、PullUpしているものも
あるので気になってきました(^^;)。
「当然PullUpすべき」ということだったら・・・ごめんなさい・・・
623名無しさん@1周年:02/10/01 04:34 ID:Cpo9FLDw
>>619
俺も最初経験したよ。重複レスになるけど、それは3端子レギュに付けてる
電解コンに低い電圧が残っている。AVRは低い電圧になると動作停止するが
CMOSだから静止消費電流がほとんど0なのでコンデンサの電圧が減らない。
FSTRTビットは関係ないよ。
テスターで電圧測れば納得すると思う。
放電用に10kΩ程度のムダな抵抗を5Vとグランドの間に付ければ、時定数
47μ*10k=0.5secで放電できる。但し消費電流0.5mA増えるから電池の寿命
がそのぶん短い。
電池から3端子レギュの配線は十分短くないか?入力側の電解コンは不要だと
思う。普通セラだけで十分だぞ。
参考までに、俺は最近は3Vとか4.5Vで設計するので電池から直接。3端子レギュ
の消費電流が無くなって電池の持ちがいい。あれは5mA近く消費してる。
それからリセットのピンはオープンのままでは良くいないよ。100k以上の抵抗で
電源にプルアップしないと静電気でリセッツされるかも。俺は電源に直接続してるけどね。

624名無しさん@1周年:02/10/01 05:34 ID:tKLYWNz2
AVRの低消費電力をなめてはいかんよ。(w
104位のコンデンサにチャージされてる電荷で悪さをするには
十分な時間動作しますから。EEPROMの内容を破壊する位の
事は出来てしまうかと。

一応仕様書で要確認だけど、内蔵UPはあったとしても、100K位
だろうから抵抗一本くらいケチらず10K位のをおごってあげれば
良いでしょう。(w
これも、コンフィグレーション回路との共存目的ですから
VCC直でも問題無いでしょう。
625名無しさん@1周年:02/10/01 05:50 ID:tKLYWNz2
後半の文章はリセットの事ね。(w

あと、623氏の言うとおり電池のみで動作させるのが得策かも
知れませんね。LSタイプだと更に動作電圧の範囲が大きいので
かなり自由が効くし何よりリニアレギュレータでの損失が無くなる
のは魅力かと。
こうすると電源は電池とパスコンと言う組み合わせになるんだけど
電源配線を極力短くしてパスコンを電池側に付けて電源SWより
向こう側(AVR側)にはコンデンサ無しという回路にしておけば
電源切断=パスコンの切り離しという事になるので現在の問題も
解決できるかもね。(w
ただ、エンジニアの立場からは全くお勧め出来ない回路ですが。
626ЯVА:02/10/01 07:54 ID:lZC08zuM
トグル形の電源スイッチはいかが?パスコン使い放題。
10kΩ抵抗は放電電流を押さえてスイッチ接点の焼け防止。

電池
 │
 ↓
 \___ 回路へ
 
 ↑
 10kΩほど
 │
GND
627622@宿直明け:02/10/01 08:39 ID:c0ix5im8
ほわー、こんな時間に山ほどのレスありがとうございます。

電解コンデンサはあちこちの回路例の猿まね(よく100uFが入って
いる回路が紹介されている)なんですが、こういう問題は考えて
いませんでした。LCDにバックライトLEDつけてるから、一瞬で電圧は
下がるのではと最初は思っていたのですが、よく考えてみるとLEDだけに
順方向電圧から下には下がりませんね(^^;)。

最後は12V電源を使う予定なので(車載)、電池のみは難しそうですが、
これを考慮してみます。まずはRESETしっかりプルアップ、放電のために
Vcc-GND間に放電用抵抗、不要なケミコンの排除ですね。
628A-:02/10/02 05:52 ID:IHmrVI+v
<追伸・補足>
623さんや624さんご指摘のように
内部プルアップの問題も過去に多く経験しました。
クラッシックAVRの場合、100K〜500KΩと上限値が高いので、
異常リセットの原因になる可能性があります。
この場合、RESETピンとGND間にコンデンサを接続して
内部プルアップと積分器を形成した外部リセットが
過去には有効でした。
もちろん、リセットIC使用などの方が確実ですが。
629名無しさん@1周年:02/10/02 07:53 ID:1kL0lsSp
誰かAVRのFSTRTビットをいらった経験あるひと居る?
どんなライター使えばいいか教えて。
もちフリーソフトのやつね。
630622:02/10/02 23:36 ID:6LlSfI+c
>>628
>この場合、RESETピンとGND間にコンデンサを接続して
>内部プルアップと積分器を形成した外部リセットが
>過去には有効でした。
そのような回路どこかで見ました。やっと意味が分かりますた。
631名無しさん@1周年:02/10/03 00:39 ID:ASFCD9Zi
内部のプルアップ抵抗が当てにならないと思ったら、コンデンサと共に
数〜数十KΩのプルアップ抵抗を付けて時定数を設定すれば、リセット
専用ICなみの十分なリセット時間ができる。
ただし問題になってる低電圧の残留問題は別ね。
632名無しさん@1周年:02/10/03 01:14 ID:6kT/jlWs
時定数付きTTL出力のリセットICが、数百円であるから
それを直結で問題なしでしょ。
数百円と信頼性の天秤でしょうが、きちんと動作する事に
越した事は無いのでは?
633A-:02/10/03 02:30 ID:FvkDBFK+
<追伸・参考>
619さんの問題の原因とは多分別だと思いますが、
XTAL使用の電源投入時のリセット異常を多く経験しました。
この原因は内部発振回路とXTALの組み合わせにあるようで、
AVR,PICとも、発振コンデンサ容量を推奨値より大きくした方が、
この手の問題解決に有効でした。
この問題の場合も残留電圧でのリセット異常と
一見、類似した症状になりますので、ご参考まで。
634名無しさん@1周年:02/10/03 04:18 ID:Q0CxhZy/
>>632
AVRやPICの小売値段知ってる?
リセット用ICと同等の回路が内蔵されてるんだけど。
635名無しさん@1周年:02/10/03 04:24 ID:rEfiG3+f
>>633
PICを始めた最初にその問題にぶつかって最初からセラ振動子にした。
今はAVRだが、どうしても周波数精度が必要なときは発振Qの検討をして
リセットのRCを外付けにして十分な時間を確保してる。
636名無しさん@1周年:02/10/03 09:30 ID:6kT/jlWs
>>634
内蔵回路が誤動作しなければこんな議論は端からしていないよ。
637619:02/10/03 11:50 ID:BadatEMd
>>633
うちはセラロックだからその現象からは逃れていると思っていいですか?

>>628
ちなみにリセットにつなぐCですが、どれくらいの値でいいですか?
RESETの閾値が0.85Vccとあるから、完全放電状態からならRCの時定数の
2倍程度で0.85Vccに達すると考えていいのですよね。
そうすると、リセット遅延は
0.01uF*100〜500kΩ→ 2〜10ms
0.1uF*100〜500kΩ→ 20〜100ms
こんな感じで考えていいですか?

>>634
リセットICの場合はVcc=5Vの場合、電源電圧が4.5V程度でリセット掛かる
ようですが、内蔵PORの場合はこれが1.4Vですよね。この差は効いてこないの
でしょうか?
私も2313より高いリセットICはできれば使いたくない。これには同感。
638名無しさん@1周年:02/10/03 14:55 ID:TGMiKa96
考え方にもよるが、漏れは多少金はかかっても
正常動作してくれる方をとるよ。
639名無しさん@1周年:02/10/03 16:47 ID:yV8jHGL5
あれこれ試して結局リセットICに行き着いたら、相当高い物になるね♪
安上がりに完璧なものを追求するのは大変だ。
当面かかる費用は、全て勉強代と割り切ってがんばってくらさい。
640619:02/10/03 20:47 ID:VVJEQvXQ
>>639
はい・・まあ趣味ですから。勉強と思っていろいろやってみます。
金が惜しいのではなくてスマートなやり方があれば美しいなあと思ってしまうからです。
素人がナマ逝ってすみません。
641名無しさん@1周年:02/10/03 20:54 ID:6kT/jlWs
>>640
 まあがんばれ。
 部品点数の「少なさ=スマート」と見るか、「回路の巧妙さ=スマート」
と見るかは人それぞれだからね。
 趣味も突き詰めると奧が深いという事ですよ。決して奧が不快にならない
様にね。(w
642名無しさん@1周年:02/10/04 00:55 ID:9OzFEqvc
素人が通ぶって奇妙な主観を押しつけるんじゃないよ。
電源電圧が残る問題をリセットICが解決できるわけ無いだろ。
デジタリアンはこれだからねえ

640よ、変な色に染まるでない。
643名無しさん@1周年:02/10/04 01:03 ID:Uda5ItWl
>>642
素人が無理しなくても。(w
誤動作の原因解ってて言ってますか?
君なりの説明をしてみろ。出来ないだろ?
644名無しさん@1周年:02/10/04 01:15 ID:Jjm/fW6W
>>642 619を読んで出直せ。正直格好悪すぎ。
645名無しさん@1周年:02/10/04 01:16 ID:Jjm/fW6W
ああこいつ634か。だったら納得だ。(w
646名無しさん@1周年:02/10/04 04:04 ID:I3i0W+tx
>>643から>>645は放置だな。

>>637
>うちはセラロックだからその現象からは逃れていると思っていいですか?
そう思っていい。根本原因が電源電圧が残る現象なのなら
リセットICは原因を治療しないで対症療法にすがる愚かな患者。
Cと時間の計算は良いと思う。それに内部でFSTRT時間が
足されたのが実際のリセット時間。
内部プルアップの幅が大きすぎて嫌なら、外部で20kとかでプルアップする。

軽い負荷の回路のようだから電源電圧の立ち上がりが遅くなる問題は
ないと思うが、電源スイッチがチャタが多ければ危険。

電源がMOSのスレッショルドに近いほど低いとまともな動作はしないので
外からリセットしても内部にくまなく伝わる保証などどこにも無い。
変な電圧はEEP化けのようなアナログ的で深刻なバグの原因になるだけだから
根本原因を退治せい。

ちゅーか、世界中のユーザーがリセットICなど使わないでやってるんだか
ら、それと自分の差は何なのかを考えた方がいいよ。
647名無しさん@1周年:02/10/04 05:24 ID:Jjm/fW6W
>>646
色々実験した結果、リセット時間保持の為の内部タイマーを使おうが
外部で時定数をもたそうが電源の立ち上がり(当然立ち下がり時も誤動作
します)時間の問題でAVR自体うんともすんとも言わなくなってしまう、
それどころか全くリセット不能になる事もあります。
ある程度は、リセット端子にCRを付けたで対処出来るけど結局これにも限界が
あります。
当たり前ですが、電源がゆっくり変化するブラウンアウト時にも同じ事が起きます。
外部負荷の変動と電源の切断のタイミングによっても・・・。

結局、時定数付きリセット回路以外まともに対処できる回路を見つけられなかった
と言うのが結論なんですが・・・。それは漏れが無能という事だな。

困り果ててアトメルのサイトを調べた時にAVR180と言うANを見つけたので参考に
なるかと思うよ。
648A-:02/10/04 10:27 ID:IO29hJaJ
経緯から、0.4V(min)以上の残留電圧か
閾値付近で閾値をよぎる電圧変動が原因かと思われます。
別電源で動作する装置との信号接続などがなければ
623さん指摘のようにブリーダ抵抗で降下時間を短縮できます。
接続しているLCDユニット側も電解コンがあるはずですので
ある程度低抵抗値にしないと短時間での放電ができないかもしれません。
希望する時間内に0.4〜0.8V以下にならないと2313のPORは利用できません。

完全放電時からの立ち上げ時も異常な場合、閾値付近の電圧変動も考えられます。
セラ振動子はXTALより始動時間が短いのですが、
周波数が低くなるほど始動時間が長くなり、
その最中の電圧変動で内部ロックというのを経験しました。
649名無しさん@1周年:02/10/05 00:59 ID:Q2JIX1ST
さーー今日は秋葉でも行くかーーーーーーーーーー
え?
650名無しさん@1周年:02/10/05 02:08 ID:Z94z8S6h
誰もリセットIC万能論を唱えているわけでないのに、妙に息巻いてる人がいるな(w
他の方々は質問主が経験を積みつつ、問題解決できるようカキコしてるだけだと思うが...
651名無しさん@1周年:02/10/05 02:14 ID:NMrp/Uxb
>>650
まあ放っておこう。
会話の流れや、空気を読めない人は何処にでも入るんだし
652619:02/10/10 08:31 ID:wy2bE55f
とりあえず報告
RESETに20kプルアップ、Vcc-GND間に20k(電解コンデンサ放電用?時定数1秒弱)
を付けるだけでパワーオン時安定動作するようになりました。
どうやら今回に関してはリセットICのお世話にならずに済むようです。
当初、LCDの方がどうしても動かなかったですが、こちらは初期化ルーチンに間違いが見つかりました(^^;)
653名無しさん@1周年:02/10/11 01:05 ID:W00GrbUi
>>650=>>651=>>632
粘着きも
654名無しさん@1周年:02/10/11 05:04 ID:Vn83lGrK
>>653
それはお前。
655A-:02/10/11 09:16 ID:q4+oA1AU
>>652 おめでとうございます-粘り勝ちですね
当初の話で車載とのことでしたが、
もし常時ONで使用するなら、現状ではマズイ可能性があります。
エンジン始動時のバッテリ電圧がかなりすごいので...
この場合、別なリセット方法(リセットICのことではない)が
必要かもしれません。
過去のトラブルから、参考まで
656名無しさん@1周年:02/10/19 01:35 ID:niv+nlM0
AVRを使って、シリアル入力のPLL-ICを制御したいのですが、
18bitのバイナリ(たとえば、0x232C0)をシリアルで送出するにはどうすればいいのでしょうか?
Clockや、Enableのことは放置OKです。
657名無しさん@1周年:02/10/19 01:49 ID:OdG/IlN4
データピン出力(H/L)して、clock出すのを18回やるんじゃだめなの?
658656:02/10/19 01:55 ID:niv+nlM0
>>657

それだとプログラムがでかくなるような気がして・・・
レジスタとか使えばいいのかな?でも使い方がわからない罠
659名無しさん@1周年:02/10/19 01:58 ID:HSZDEnwT
>>658
っていうかレジスタ使わないと
>>657の言う方法も出来ないと思うが。
660名無しさん@1周年:02/10/19 02:10 ID:niv+nlM0
>>659

>>657のは、

outp(1, PORTB);
wait(10);
outp(0, PORTB);
wait(10);
outp(0, PORTB);
wait(10);
 ・
 ・
 ・
という感じだと思ってたけど、違うのか・・・
661656:02/10/19 02:12 ID:niv+nlM0
(;゚Д゚)waitでかすぎた・・・
662名無しさん@1周年:02/10/19 10:24 ID:OdG/IlN4
>>660
Cだけどこんな感じね。

data : 送信データ
cnt : 送信bitカウンタ としたら

cnt = 0;
while( cnt < 8 ){
output_bit(tx_pin, L);
if( (bit_test(DATA, 0) == H){ output(tx_pin, H); }
output_bit(clock_pin, H);
output_bit(clock_pin, L);
DATA = DATA >> 1;
cnt = cnt + 1;
}

663名無しさん@1周年:02/10/19 14:43 ID:OGDjNrVA
>>660
18bitというのが半端ですね。えーと上位、下位どっちから送るのでしょうか?
とりあえず上位ということにしておきます。gccでの場合

union LIC_union {
unsigned long L;
unsigned int I;
unsigned char C;
};

void send_serial(unsigned char data , char cnt) {
/* send upper cnt bit of data. */
for ( ; (cnt) ; cnt--) {
if (data&0x80) {
sbi(port_name,tx_pin_name);
} else {
cbi(port_name,tx_pin_name);
}
/* insert wait routine if need */
sbi(port_name,clk_pin_name);
cbi(port_name,clk_pin_name);
data = data<<1;
/* insert wait routine if need */
}
}
664名無しさん@1周年:02/10/19 14:44 ID:OGDjNrVA
呼び出し元。与えるデータが決まっていないなら、
union LIC_union serial_data;
serial_data.L=0x232C0;
send_serial(serial_data.C[2]<<6, 2); /* send lower 2 bit of 3rd byte */
send_serial(serial_data.C[1] , 8); /* send 2nd byte */
send_serial(serial_data.C[0] , 8); /* send first byte */

こんなもんでどうでしょうか。18bitを8bitに分ける部分はいろいろ工夫。
与えるのが定数と決まっているならLIC_unionなんか介さずに
send_serial(0x02<<6, 2); /* send lower 2 bit of 3rd byte */
send_serial(0x32 , 8); /* send 2nd byte */
send_serial(0xC0 , 8); /* send first byte */
665名無しさん@1周年:02/10/19 19:49 ID:G98qNfBF
8bitマイコンで上位bitから送る場合 
  ・2bit送出
  ・8bit送出
  ・8bit送出
の順序で分割して行うほかありません。
いずれにしろ、
  ・bitのH/L評価
  ・評価結果を送出ピンにセット
  ・clockパルス送出
  ・データ(またはチェック位置)をシフト
の操作がbit数分だけ必要になるかと。
666名無しさん@1周年:02/10/19 22:19 ID:0PXBF+b8
>>656
ところで使うPLL-ICはなんでしょうか。
それが判ればイメージしやすいかと。
667656:02/10/19 23:14 ID:niv+nlM0
>>666
ICは、TOSHIBA TD6380です。
ttp://www.semicon.toshiba.co.jp/ja/bucat_4/bucat_2/bucat_2/td_9/TD.pdf

とりあえず、7種類の周波数にロックできればいいので一応プログラムを作ってみたんですけどね。
でもBASCOM試用だから制限ギリギリで・・・
668663:02/10/19 23:56 ID:prC2z5Gk
4bit+9bit+5bitの組み合わせなんですね。
データはMSBからなら>>663のような感じでいけますね。
これにEnableの操作を加える必要がありそうです.

9bitという半端なデータがありますが、これは1+8bitで送った方が
プログラム小さくなるようなきがします。

/*insert enable proc here */
send_serial(band<<4,4);
send_serial(main_data>>8 ,1);
send_serial(main_data&255,8);
send_serial(sw_data<<3 ,5);
/*insert enable proc here */
669656:02/10/20 00:05 ID:nosy8Wmm
>>668
メイン9bitとスワロー5bitは一つとして扱うつもりです。

なぜ、別れているんだろうか・・・
しかもデータシートはステップの値が間違ってるし
670663:02/10/20 00:18 ID:CaUCMfkj
>>668はまちがいあり send_serial((main_data&0x0100)>>1,1)でした

でも>>669ということなら適当に理解し安いところで送った方がよさそうですね。


>>663ちょっと改良
これでdataを予めシフトする必要なくなり、わかりやすくなる
void send_serial(unsigned char data , char cnt) {
/* send upper cnt bit of data. */
unsigned char mask;
mask=1<<cnt;
for ( ; (cnt) ; cnt--) {
if (data&mask) {
sbi(port_name,tx_pin_name);
} else {
cbi(port_name,tx_pin_name);
}
/* insert wait routine if need */
sbi(port_name,clk_pin_name);
cbi(port_name,clk_pin_name);
data = data<<1;
/* insert wait routine if need */
}
}
maskとdataを16bitにすれば14bitのメイン+スワローを一気に送れるので
わかりやすくなると思いますが、コード膨れ上がるかもしれません。
671(■一■)アーロン(AUROn42k) :02/10/20 04:42 ID:OlKWJZvW
672663@あかん:02/10/20 08:32 ID:CaUCMfkj
mask=1<<cnt;
 ↓
mask=1<<(cnt-1);
673電子少年:02/10/23 23:51 ID:5i+VRjG6
PICのプログラムをほかのパソコンで作るときのために、
簡易エディターを作っているのですが、アセンブラ⇒HEXフ
ァイル変換DLLを探しています。誰か知っている人が居られ
ましたら、教えてください。
674名無しさん@1周年:02/10/24 00:28 ID:hvXwx26R
>>673
あのーそれはコンパイラと言うものじゃないのでしょうか?
ちなみに、私が知っている限りではDLLはしらないです。
素直にmplabとか使ったらいいのでは?
675名無しさん@1周年:02/10/24 02:08 ID:49nIilBO
メルアドが入っているメール欄、久しぶりに見た・・・
676名無しさん@1周年:02/10/26 13:20 ID:rseB2jZg
こんにちは!PIC16F877でちょっとしたPWMの回路のプログラムを
書くことになりました。MPLABをインストールしたところです。
それでちょっとうまくいかないのでgoogle検索なんかしてて、
このスレを発見しました! \(^o^)/

で、質問なんかできません。ログ読んだら俺ってば厨すぎ(ワラ


















>>1-675 アンタラスゲーよ(ノД`)
677名無しさん@1周年:02/10/26 13:54 ID:ZfCnoDnH
>>676
PWMなら、H8/3664にしとけ。レジスタにセットするだけで、プログラム不要だ。
16F877単体なら秋月のh8/3664ボード(1600円)とそんなに値段変わらないだろ?
678676:02/10/26 14:03 ID:EwXGRhA4
>>677
レスありがと。しかしすでにPICを使ったハードが完成してるんだ。
先輩が作って、じゃ後は任せたから、と言って退社されますた。
たぶん開発環境に慣れさえすればすっげー簡単だろうな、くらいの。

たぶん、このスレで質問を書けるくらいの知識になれば
そのときは既に質問することなど何もないだろう。



それじゃ、おじゃましました\(^o^)/
679名無しさん@1周年:02/10/26 17:17 ID:7XkLI5C+
>>678
このスレでの質問のしやすさを向上させてください。(漏れが助かる)
じゃ後は任せたから\(^o^)/
680675:02/10/26 21:26 ID:ijjzYuQ5
>>676
漏れまですごいのか。よくわからんがうれしい。(w

>>677
H8もPICもPWMについてはあまり変わらないのでは??
どちらもタイマ動かしてDutyCycleとPeriodを決めて
PWM動作するようにレジスタを設定するだけじゃないの?

他の機能についてはだいぶ違いますが。。。
681名無しさん@1周年:02/10/27 01:14 ID:QdDLurVd
>>680
そそそ、PICでもレジスタセットして、値を放り込むだけで動く。
PWMが出力できるピンは決まっているので注意。RC2だったかな。
682名無しさん@1周年:02/10/27 01:27 ID:m+fhRPyu
偉大なるH8将軍様の手先が新顔を拉致する行為相変わらずだな
他スレにばっかり居るから本スレは不要ですって削除依頼したら?
683名無しさん@1周年:02/10/27 18:02 ID:0wnAuqrj
>>677は単にPICのPWM知らないだけじゃないの?
684名無しさん@1周年:02/10/28 15:32 ID:Eo102x+f
秋月の加速度計キット買ったんだが、PICのソースないのね
オーバーフローしても継続して記録したいし、自前アプリで取り込みたいので
通信データのフォーマット知りたいし
685684:02/10/28 16:12 ID:Eo102x+f
なんとなく自己解決、使えそうなの見つけた
ttp://ha6.seikyou.ne.jp/home/sasao/junkhard/ww/korokoro.htm
686名無しさん@1周年:02/10/29 12:11 ID:d+ihQeNj
今日からPICをはじめてみようと思います.
まずは新宿の紀伊国屋か秋葉に逝って本から読み始めようと思います.
PICをはじめる上で何かアドバイス等ありましたらお願いします.
687名無しさん@1周年:02/10/29 12:55 ID:mtuHsK57
>>686
参考になるのは後閑さんのPIC本ですかねやっぱり。
私は結局PIC使わなかったけど(AVRとH8に流れた)、
あの本はワンチップマイコンとペリフェラルを理解するのに大いに役立った。
あとはWeb検索して引っかかるのを読みまくるとこでしょうか。
とくにあちこちのPageがLINK貼っているようなところは熟読
688名無しさん@1周年:02/10/29 19:37 ID:LmltBVz7
PICで、矩形波の周期を測定しようと考えているのですが、
いまいちよくわかりません。教えてくださいませ。
現在わかっていることは
1)inputキャプャーを使うとできそう
2)入力端子はエッジで動作するのでOK
3)タイマー1を使って、キャプチャ割り込み時に
  その値をゲットする。この値は水晶から割り出したものなので
  時間に変換できそう。
ここで疑問なのです。割り込み毎にタイマー1をクリアする
必要があると思うのですが、ハード的にそのようになって
いないようです。(コンペアモードならクリアするらしいが、
キャプチャモードなので)
割り込みルーチンの中でクリアしていては誤差になりそうだし。
もしクリアせずに、「今回値-前回値」という使い方となると
何周したかわからないと思うのです。
どのように実現するのでしょうか。宜しくお願います。
689名無しさん@1周年:02/10/29 21:40 ID:mtuHsK57
>>688
同じ様なことをやろうとしています。これまで考えついた方法は、
1.タイマオーバーフロー割り込みで周回数カウント変数を1つインクリメントする。
  タイマと合わせて24〜32bitで時間計測できる
  キャプチャ割り込みルーチンから周回数カウント変数を読めばその間は
  タイマオーバーフローで数値がインクリメントすることはないと思う。

2.はじめっから16bitでオーバーフローしない程度のプリスケーラー設定をする
  タイマ1の数分の1程度でかかる割り込みをタイマ0で作り、
  前回キャプチャ値−現在のタイマ1値がunsignedである程度以下になったら
  オーバーフロー扱いにする(最大計測幅は1周よりやや小さくなる)

3.インプットキャプチャ時クリア機能があるAVRを使う(藁

こっちはAVRでやってますので、PICで外してたらスマソ
690名無しさん@1周年:02/10/29 21:55 ID:FCg2LNRR
ありがとうございます。そっかそっか タイマ1のオーバーフローの回数を数えればいいんですね。
それもタイマ1オーバーフロー割り込みでやるんですね。納得。
でも2つの割り込みが同時、あるいは割り込み中に他方の割り込みが来たらどうしましょうね。
2の方法は、一つの方法ですが、ちょっともったいないですね。
インプットキャプチャ時クリア機能があるAVRは いいですね。考えていた通りのやり方ができそう。うらやましい。
でもこれが16bitマイコンだったら ラクなんだろうなぁと
考えてしまいます。
ありがとうございました。
691689:02/10/29 22:53 ID:mtuHsK57
>>690
>でも2つの割り込みが同時、あるいは割り込み中に他方の割り込みが来たらどうしましょうね。
割り込みには優先順位があります。
同時に2つの割り込みが起こったらどれが優先されるかは予め決められています。
そして割り込み処理中は他の割り込みは禁止状態になっています。
(割り込み許可命令を実行しない限り)
PICはうろ覚えですが、たぶん同じだったと思うけど・・データシートで確認してください。

>インプットキャプチャ時クリア機能があるAVRは いいですね。考えていた通りのやり方ができそう。うらやましい。
PICでもインプットキャプチャ時割り込みってできましたっけ?
もしできるならその割り込みルーチンの中でタイマ1クリアすれば同じようにできると思います。
最低でも、INT割り込みを使ってタイマ1読みとり→タイマ1クリアを割り込みで行い
その変数を割り込み外から読みとる手もあります。(2byteの場合は上位下位読み込みの
間に割り込みが入る可能性に注意)

>でもこれが16bitマイコンだったら ラクなんだろうなぁと
そうですね。8bitのパソコンと違ってメモリも厳しいからもー大変ですね(^^;)
692名無しさん@1周年:02/10/29 23:12 ID:7tVWt/T1

PICなんて馬鹿こいてないでAVRにしなさい。
693名無しさん@1周年:02/10/30 00:01 ID:kjS7eXJK
>>692
まあそうだけど、SXを使いたい場合はこの限りでは無いよ。
694名無しさん@1周年:02/10/30 01:36 ID:EQeXy2F1
>>692

アプリケーションによって選択すればよろし。
ちなみにこちらはpicだ。

Cで書けばそんな大差なし。あとはプログラムの技量。
695689:02/10/30 08:29 ID:cY/F2aLc
やっぱりぼけてました。PICって割り込みの数だけジャンプベクタが並んでいる
のではなく、ジャンプする先は0004番地固定なんですか。うーむ。

あとで考えてみましたが、1.はそのままではまずいな。
タイマって割り込み禁止しても動き続けますから、どうしてもタイマ1取得後
オーバーフローする可能性ってありますね。
ちょっと頭イタイ処理を要しそうです。できれば避けた方がいいかも。
696676:02/10/30 18:51 ID:QYNmcCdb
ICEが動いたヽ(´▽`)ノ ウワァァァイ

スイッチ押してプログラム終了、だけだけど(プ
697680:02/10/30 21:53 ID:cY/F2aLc
>>680 おめでとう。
698名無しさん@1周年:02/10/31 00:29 ID:66UaXQbs
>>695

だから。AVRにしなさいっての。

699名無しさん@1周年:02/10/31 01:20 ID:i50m3Z5K
そもそも、何でPICとAVRを共存させているスレッドになってるんだろうと、疑問。

「初心者」という所で共通にしたわけか。
やっぱし分けて欲しい所。
700700get:02/10/31 07:39 ID:Ibr1WBpr
>>699
そうですか?実際話題が混在していてもあまり困らないような。

#事情があってPIC/AVRを選ぶんだから、あまりごちゃごちゃ言い過ぎるのも
ナンだと思うのだが。"AVRなら○×ですむんだけどなー"とか、
"PICだと○×事例たくさんあるんだけどなー"程度がいいと思われ
701名無しさん@1周年:02/11/01 00:19 ID:tswWSQ7r
PIC信者の賛美歌が煩いスレはこちらですか?
702700get:02/11/01 04:40 ID:X83S1ws+
んなこといわれても・・・ちなみに漏れはAVR信者っす。
703名無しさん@1周年:02/11/01 07:21 ID:39WUm5z2
Cを使う分にはどっちでもあまり変わらない気がする。
アセンブラを使い出すと、PICはちと癖があるなって
思ったりもするのですが、2K程度のプログラムだしね。

情報量ではPICの方が上、AVRはシンプルすぎて
解りやすい分情報が少なくてもなんとかなる。

こんな感じ?
704700get:02/11/01 08:44 ID:Q+eH5okM
AVR派ですけど、PICでの製作例を参考にするためPICの勉強もしています(^^)。
RB4:RB7の変化による割り込みなんかはいいなと思った。
過去レスに低周波数クリスタルでの動作はPICの方が有利というのもありましたね。
PICのいい点他にもあったら教えて
705:02/11/01 09:28 ID:Cob9w1UN
>過去レスに低周波数クリスタルでの動作はPICの方が有利というのもありましたね。
こいつ技術力ゼロのただの信者だ
駄レスを並べてでスレのレベルを落とさんでくれよ
お仲間が多い自作板にでも行けば?
706700もういらねーや:02/11/01 10:12 ID:dF1z6/oL
はぁ。。。
707名無しさん@1周年:02/11/01 12:03 ID:847P9+to
>>705
煽るだけなら厨房板逝っとけ。
おまえの仲間がゴロゴロ居るぞ(ワラ
708電子少年:02/11/02 12:31 ID:YNIh+Agd
PICのシリアル通信機能はどういうものですか?
709名無しさん@1周年:02/11/02 14:19 ID:bilLqHIO
>>708
まずは愚愚って見てから質問すると良いと思われ。
http://www.google.co.jp/search?q=%50%49%43%20%83%56%83%8A%83%41%83%8B&hl=ja&lr=&num=100
710名無しさん@1周年:02/11/02 16:59 ID:2DRnS2s/
http://settingcrass.tripod.co.jp/
ココ見てください。

マジ?
個人情報売ってるって。2ちゃん
711656:02/11/03 23:59 ID:mlg9pCAa
あれからいろいろやってみましたが、いまいち理解できなかったので完全なプログラムが完成しませんでした。
どなたか↓に書いてあることをプログラムにしてもらえないでしょうか?

まず、ポートD0〜7からパラレルで常時入力されているBCDコード(正論理)を10進数(2桁)に変換してそれをTに代入したとする。
(D0=1桁目重み1、D1=1桁目重み2、D2=1桁目重み4、D3=1桁目重み8、D4=2桁目重み1、D5=1桁目重み2、D6=1桁目重み4、D7=1桁目重み8)
計算後の先頭4ビットをB(2進数)と、残りの14ビットをC(10進数)と置く。
そして、
1≦T≦3ならB=0001、C=(T*6+144)/0.0625。
4≦T≦7ならB=0010、C=((T-3)*6+224)/0.0625。
8≦T≦12ならB=0010、C=((T-7)*6+246)/0.0625。
13≦T≦62ならB=1000、C=((T-12)*6+524)/0.0625。
63≦T≦99、T=00なら無視
計算が終了するとポートB2(信号名:Enable)を1にして、
その結果BとCを、シリアルでポートB1(信号名:Data)から送出する。
そのとき、同時にポートB0(信号名:Clock)からクロックを送出。
計18bit送り終わったらB2を0にして終了
これを繰り返す。
なお、2ループ目以降ポートD0〜D7から読んだ値が同じ場合、再びDATAを出力することはしない。

使用マイコンはAT90S4414-8
動作させるクロックは4MHzです。
712名無しさん@1周年:02/11/04 10:34 ID:e++LGFrx
>>711
どこがうまくいかないのか書いて欲しい。全部じゃないよな(^^;)
=((T-3)*6+224)/0.0625は、
=(T*3+103)*32=(T<<5)+(T<<6)+(103<<5)+3296
に置き換えた方がいいな。他の式も同様。
これなら最後の定数部分以外全ての式が共通になるので同じルーチンが使える。
713名無しさん@1周年:02/11/04 14:55 ID:R2sO8Wb1
=(T*3+103)*32
=(T<<5)+(T<<6)+(103<<5)
=(T<<5)+(T<<6)+3296 です。
714AVR:02/11/04 19:35 ID:7zRNsie3
>>711 >>周波数シンセに直列データを出したい。

 シンセのデータシートを解釈するとこうなります。

(1)最初
         ↓過去の状態を精算するためLowにしてからTNL(2μs)以上時間保持する
EN   ──┐      ┌───────────
    ──┴───┘ ↑HighにしてからTL(10μs)以上保持する                   
               
Data ──┐
    ──┴───── 過去の状態を精算するためとにかく Lowにする
              
CK   ──┐        同上
    ──┴─────


(2)データを18発

Data. ┬─────────┬─   1.Dataを出しCKをLowにする
     ┴─────────┴─   2.TS(2μs)を確保
     ←TS→:←TC→:←Th→     3.CKをHighにしてTC(2μs)を確保
CK       ┌──┐          4.CKをLowにしてTh(2μs)を確保
    ──-─┘   └────


(3)最後
      ↓HighのままTSL(2μs)以上確保
EN  ───┐
         └───────────────── ここまでやっておけば
          ↑LowにしてからTNL(6μs)以上確保   このあと何が来ても安心。
715AVR:02/11/04 19:36 ID:7zRNsie3

送信のサビの部分
    ;  図の(1)の前半。
    sbi   DDRB,Enable   ; Enabl用ピンを出力状態に。
    cbi   PORTB,Enable  ; Lowを出力。
    sbi   DDRB,dData    ; Data用ピンを出力状態に。
    cbi   PORTB,Data   ; Lowを出力。
    sbi   DDRB,Clk     ; Clock用ピンを出力状態に。
    cbi   PORTB,Clk    ; Lowを出力。
    ;  図の(1)の後半。
    rcall  t12         ; TNL(6μsec)。余裕とって2倍
    sbi   OPRTB,Enale   ; EnaleをHighに。
    rcall  t10         ; TL(10μsec)。余裕とって2倍
    rcall  t10         ; 
    ;  図の(2)の部分。
    mov   r8, B       ; バンド選択データ  R8は単なる一時作業用。
    rcall   Xmit4      ; しも4ビット送出
    mov   r8, Cの上位   ; メインカウンタ用データの上位
    rcall   Xmit6      ; しも6ビット送出
    mov   r8, Cの下位   ; メインカウンタ用下位とスワローカウンタ用データ
    rcall   Xmit8      ; 全8ビット送出
    ;  図の(3)後始末の部分。 
    rcall  t4          ; TSL2μsec。余裕とって2倍
    cbi   PRTB,Enale    ; EnaleをLowに。
    rcall  t12         ; TNL10μsec。余裕とって2倍
;   終了
;   ループが無いプログラムはバグりも少ないので健康にいいですよ。
716AVR:02/11/04 19:37 ID:7zRNsie3

Xmitt: ;  
Xmit8:   bst   r8,7    ; R8のビット7をTフラグに。
       rcall  bitX     ; それ1個を送出
Xmit7:   bst   r8,6    : あとはひたすら‥
       rcall  bitX
Xmit6:   bst   r8,5
       rcall  bitX
Xmit5:   bst   r8,4
       rcall  bitX
Xmit4:   bst   r8,3
       rcall  bitX
Xmit3:   bst   r8,2
       rcall  bitX
Xmit2:   bst   r8,1
       rcall  bitX
Xmit1:   bst   r8,0
       rcall  bitX
       ret         ; ループがないプログラムは速いし(略
717AVR:02/11/04 19:38 ID:7zRNsie3

Data. ┬─────────┬─   1.Dataを出しCKをLowにする
     ┴─────────┴─   2.TS(2μs)を確保
     ←TS→:←TC→:←Th→     3.CKをHighにしてTC(2μs)を確保
CK       ┌──┐          4.CKをLowにしてTh(2μs)を確保
    ──-─┘   └────

bitX:
    ;  データはTフラグで渡される。
    push  r0         ; R0一時借用
    in    r0,PORTB    ; 現在のポートBのデータを得て、
    bld    r0,Data      ; Dataビットの所にTフラグから入れて、
    out   PORTB,r0    ; ポートに戻す。これで1ビット出まひた。
    ;  上図の通りにクロックをひと振り。
    rcall  t4         ; TS(2μsec)。余裕つけて2倍
    sbi   PORTB,Clk    ; ClockをHighに
    rcall  t4         ; TC(2μsec)
    cbi   PORTB,Clk    ; Lowに戻し
    rcall  t4         ; Th(2μsec)で終わり。
    pop   r0         ; 借りたR0を返す
    ret

無駄時間かせぎ

t12:   rcall  t2     ; 12μsec
t10:   rcall  t2     ; 10μsec
t8:   rcall  t2     ; 8μsec
t6:   rcall  t2     ; 6μsec
t4:   rcall  t2     ; 4μsec
t2:   nop         ; 2μsec
     ret
(4MHzクロック用。4MHzは0.25μ秒。 rcall t2は3clk、nopは1、retは4、計8clk=2μ秒。)
718AVR:02/11/04 19:39 ID:7zRNsie3

蛇足だと思いますが、アセンブラでの最初のところのサビ。

    .cseg          ; プログラム領域の0番地から。
    .org   0
                ; 割込みジャンプテーブル(全13項目)
    rjmp  reset    ; 最初はリセット時の行き先
    reti          ; 割込みは全く使わないようなので
    reti          ; 12行 reti を並べる。
    ‥‥
    .org   $20    ; 適当に切りの良いところから
reset:
    ldi    r0,RAMEND  ; スタックポインタをRAMの末尾に設定。
    out   SPL,r0
    cli             ; 割込みを全く受付けなくする。(リセットのみ有効)

アセンブラはこんな前準備で大体いけると思います。
以上、全くアセンブルもシミュレートもしてない思い付きをダラダラ書きました。
長文失礼。

p.s.最初のBCDデータは手動スイッチのようなものですか?設定してる途中の
データをどんどん送ってしまうような気が。それとBCDを十進にするとかの意味が
今市分からなかったですが‥Cはスワロー値も一気に計算させたいんですか?
719名無しさん@1周年:02/11/04 20:36 ID:ZbKunpoc
Tの数値、これTVのチャンネルなのかな?
何かロータリーエンコーダーからBCD2桁を出すような物をつなぐのでしょうか?

>設定してる途中のデータをどんどん送ってしまうような気が。
チャタリング処理を数100ms単位にしたような処理が必要そうですね。

計算部分ですが、もしかしたら、16bit×62のテーブルを作って
lpmで読ませた方が手っ取り早いかもしれません(^^;)

>>716
うーむなるほど!と思った。
720名無しさん@1周年:02/11/04 20:37 ID:ZbKunpoc
>>719
テーブル作った方がいいというのは消したつもりで送ってしまった。
この2行取り消しね
721656:02/11/04 23:17 ID:QGxxxOcn
アセンブラ+解説入りとてもほうがわかりやすいです。

>>718
BCDはサムホイールスイッチ(サムロータリースイッチ)からですので、常時入力されることになります。
BCDを10進に直したのは計算式が書きやすそうだったからです。
スワロー値は一気に計算してますが、ダメでしょうか?(メモリー食うとか?)

>>719
はい。TVですよ。
なかの144とか言う数値は局部発振周波数-6です。(計算しやすいように先に-6引いておきました)
サムホイールスイッチは接点同士を滑らせているのでチャタリングは発生しにくいと思います。
なのでチャタリングのことは考えなくてもいいと・・・(もし発生しているようならコンデンサでもパラっておきます)
722名無しさん@1周年:02/11/05 00:08 ID:0fvVYpt6
今日から、PICはじめようと秋月に行ったら、月曜で閉まってました。
連休でも閉めるのか…男らしい会社だが、悲しかったよ、漏れは。
723名無しさん@1周年:02/11/05 00:29 ID:P8pN0POA
>>714-718n
ふぇー!Cより分かりやすいアセンブラって…
>>721
BCDを10進に?
BCDはすでに10進数でないのかい
>>723
それは神のおみちびきだぞ?
PICやめてAVRにせんかゴルァ!って
724名無しさん@1周年:02/11/05 09:11 ID:Sm4aJVFB
>>721
そういう用途でほかに仕事がないなら、周波数をめいっぱい下げて、
さらにスイッチ読みとり+送信をタイマオーバーフローで処理して(チャタリング処理もここで)、
処理の間はスリープさせるというのはどう?スリープはやらんでもいいけど
1MHzにしたらほとんどwaitが要らないか、nopちょっと挟むだけでいける(^^)

>>723
AVRのアセンブラって時にC並みに(書く人によってはC以上に)わかりやすいね
BCDを十進にじゃなくて2桁BCDをbinary(1-62)に、ということみたいね
725656:02/11/05 18:03 ID:D88/wqtY
>>712
ほぼ全部・・・

>>71
> =((T-3)*6+224)/0.0625は、
> =(T*3+103)*32=(T<<5)+(T<<6)+(103<<5)+3296
アセンブラのときはこの式はどう書いたらいいのですか?
掛け算命令がないみたいだから、足し算で一生懸命やると?

>>724
>BCDを十進にじゃなくて2桁BCDをbinary(1-62)に、ということみたいね
あ、そういうことです。
726AVR:02/11/05 19:40 ID:K0nwzbUc
(続長文失礼)
      ldi    work, 0x00   ;
      out   DDRD, work   ; ポートD 8ビット全部を入力に設定。
      clir   old_bcd      ; BCDの過去値を仮にゼロとしますた。
getBCD:
      in    bcd, PIND     ; スイッチ入力を読む
      cp    bcd, old_bcd    ; 過去の値と比べて 
      breq   getBCD       ; 同じなら却下。
      rcall   t50m         ; 無駄時間50m秒のあと、
      in    work, PIND     ; 再びスイッチを読んで
      cp    work、bcd      ; 今しがたの値と比べて
      brne  getBCD       ; 違うなら却下。
      ; スヰッチが変わったと判断し、以下へ。
      ;
      mov  old_bcd, bcd    ; 次回の比較用に保存しとく。
                      ;
      rcall  DBconv2      ; bcd→自然二進
                      ;
      rcall  CH_data      ; シンセ用のデータを作る
      cpi   data_is_varid, 0   ; T が範囲外だった?
      breq  getBCD       ;  なら却下。
                      ;
      rcall  Xmitt_to_synthe  ; シンセに与える
                      ;
      rjmp  getBCD       ; 一式終了、永久ループ
727AVR:02/11/05 19:40 ID:K0nwzbUc
NB(自然二進)符号
 │        *
 │       *       グラフは y = x ですね。
 │     *
 │    *
 │  *
 │ *
  *─────── 数値

BCD符号     *
 │       *
 │      |         BCD符号
 │      |          十の位の数値を a、一の位を b とすれば、
 │      *          y = 16a + b
 │     *            というグラフです。
 │   *              aが1増すごとに16ずつジャンプ
 │  |                するですね。
 │  |
 │  *
 │ *
  *──────── 数値

DBconv2: ; 2桁限定版
       mov  T, bcd     ; T はご要望にあった変数名です。
       andi  bcd, 0xF0   ; 十の位だけにしたので上記の16aです。
       lsr   bcd       ;
       lsr   bcd       ; 右に2回シフトすれば16a→8a→4a
       sub   T, bcd      ; (16a+b)−4a をしました。結果は 12a+b すね。
       lsr   bcd       ; で、もう見え見えですが 4a→2a を作って
       sub   T, bcd      ; (12a+b)−2a = 10a+b
       ret            ; 結果は T にお持ち帰り
728AVR:02/11/05 19:41 ID:K0nwzbUc
CH_data: ; 帯域分け周波数データ
      clr   data_is_varid    ; データ有効お知らせフラグを「駄目」に。
      cpi   T, 0         ; =0 なら却下(ですよね?)
      breq  CH_exit       ;
      cpi   T, 63        ; ≧63 も却下
      brsh  CH_exit       ; ( sh は same or high です)
CH1_3:                
      cpi   T, 4         ; 1CH〜3CH?
      brsh  CH4_7        ; 4以上ならジャンプ
      ldi   B, 0b0001      ;
      ldi   work1, 0       ; のちほど計算用
      ldi   work2, 144     ;
      rjmp  CH_keisan     ;
CH4_7:   上と同じようなことをする。                
CH8_12:   同上
CH_UHF   同上
CH_keisan
       sub   T, work1    ; (T-work1)
       lsl    T        ; 2倍つまり 2(T-work1)
       mov   work1, T    ; work1 を作業用に使う
       lsl    T        ; = 4(T-work1)
       add   T, work1    ; = 6(T-work1)
       add   T, work2    ; = 6(T-work1)+work2
       lsl    T        ; それを2倍
       lsl    T        ; 4倍
       lsl    T        ; 8倍
       lsl    T        ; 16倍 =(6(T-work1)+work2)×16
       ldi  data_is_varid, 0xFF ; データ有効お知らせフラグをセット
CH_exit:
      ret
729AVR:02/11/05 19:42 ID:K0nwzbUc
>>スイッチの過渡状態
 サムホィールでBCD19から21に変えるとき、まず十の桁を2に上げますね、
そのとき29を送っちゃいそうな、続いて1の桁をコチコチコチと下げる途中の
28,27,26‥も送るような気が。ま、動作確認実験段階でこんなこと気にする
こともないすね。
(長文失礼しました)
730名無しさん@1周年:02/11/05 20:41 ID:Yk7dUscx
>>725
>アセンブラのときはこの式はどう書いたらいいのですか?
>掛け算命令がないみたいだから、足し算で一生懸命やると?
だからシフトと足し算に置き換えたんじゃない(^^;)

;2バイト左シフト用ルーチン.スタックに注意
word_lsr4:
rcall word_lsr2
word_lsr2:
rcall word_lsr1
word_lsr1:
shl r0
rol r1
ret

つづく・・・・
731名無しさん@1周年:02/11/05 20:44 ID:Yk7dUscx
;make_Cvalue:T値をr19に入れてcall.C値はr16:r17,B値はr18に返す
;ワークエリアとしてr0,r1を使う
make_Cvalue:
tst r19
breq Ch_err
cmpi r19,63
brpl Ch_err
Ch_01_03:
cmpi r19,4
brpl Ch_04_07
ldi r16,low(144*16)
ldi r17,high(144*16)
ldi r18,1
rjmp make_Cvalue2
Ch_04_07:
cmpi r19,8
brpl Ch_08_12
ldi r16,low((224-3*6)*16)
ldi r17,high((224-3*6)*16)
ldi r18,2
rjmp make_Cvalue2
Ch_08_12:
cmpi r19,13
brpl Ch_13_62
ldi r16,low((246-7*6)*16)
ldi r17,high((246-7*6)*16)
ldi r18,2
rjmp make_Cvalue2
732名無しさん@1周年:02/11/05 20:45 ID:Yk7dUscx
Ch_13_62:
ldi r16,low((524-12*6)*16)
ldi r17,high((524-12*6)*16)
ldi r18,8
rjmp make_Cvalue2
Ch_err:
;r18(B)=0でエラーと言うことにしてある。これで困るなら他の処理を
clr r18,8
ret
またまた続く。。。retで終わっているけどまだルーチンの途中だよ
make_Cvalue2:
;Tをr18に入れ、定数部分をr16:r17に入れてcall.r16:r17に結果を返す.
;定数項以外の部分を計算
clr r1
mov r0,r18
rcall word_lsr4
rcall word_lsr1
;これでr0:r1=T<<5
add r16,r0
adc r17,r1
;[r16:r17]=[r16:r17]+(T<<5)
rcall word_lsr1
;[r18:r19]=T<<6
add r16,r0
adc r17,r1
;[r16:r17]=[r16:r17]+(T<<5)+(T<<6)
ret
733名無しさん@1周年:02/11/05 20:47 ID:Yk7dUscx
clr r18,8→clr r18ね。
他にも間違いはたぶんあるだろうけどまあ雛形にしてチョ
734656:02/11/05 20:50 ID:D88/wqtY
>>715
あ、忘れてました。
それぞれのポートは、B0:Clock、B1:Data、B2:Enable です。

>>729
ホイール設定後に押しボタンを押す方法も考えたのですが、プログラムが面倒になりそうだったのでやめました。
だから設定途中でどんどん切り替わっていくのは放置で・・・
|-`)9→1にかえるならゴチゴチとageるので2回で済みます。
735ЯVА:02/11/05 21:26 ID:7FKXu515
 アップ直前に>>725を見て大急ぎで>>728を書いたですが今見直したら work1 の
ところが見通し悪くて ┐(´Д`)┌ でした。

CH_keisan ; (6(T-work1)+work2)/0.0625 の計算をする。なお、1/0.0625=16

       sub   T, work1    ; T-work1 の計算。
       lsl    T        ; それを6倍するために、まず2倍する
       mov   work1, T    ; 用済みの work1 にコピーして
       lsl    work1     ;  さらに2倍するから合計4倍
       add   T, work1    ; 2倍に4倍を足して 6(T-work1)を得る。
       add   T, work2    ; それ+work2 = 6(T-work1)+work2
       lsl    T        ; それ全体を2倍
       lsl    T        ; 4倍
       lsl    T        ; 8倍
       lsl    T        ; 16倍 =(6(T-work1)+work2)×16
       ldi  data_is_varid, 0xFF ; データ有効お知らせフラグをセット


 T に応じた数値を得るのは数表(テーブル)作るのが定石です、慣れたらいつか
そのワザもモノにしてください。

>>718 >>スワロー値も一気に計算させたいんですか?
 これ、風邪の熱で脳が納豆になってました、スワローカウンタめったに使わ
ないんで商と剰余を別々にしないと駄目みたいに勘違いしてたような。
736ЯVА:02/11/05 21:53 ID:VLNj3g7v
あーいけない、仕事と混同して16ビットマシンのつもりで書いてまひた、まだ脳が‥(笑
737名無しさん@1周年:02/11/05 22:32 ID:Yk7dUscx
>>735
たぶんそれだと9chあたりから結果は8bit越えますのであふれるかと。
UHFだとwork2からして524です。

>>731
よく考えてみると、C値は下位5ビットは0ですから、ここにBの値収容できるから
1チャンネルあたり2バイトに収まりますね。
ということは62chで62word/124bytesでテーブルできちゃう訳で。
EEPROMやFLASHにテーブルつくってこれを引っぱり出す力技もいけるかな。
FLASH 2048ワードの4414ですよね?
引っぱり出すルーチンも合わせて76ワード(Tの範囲チェック除く)ですが、どうでしょ?

738名無しさん@1周年:02/11/05 22:34 ID:Yk7dUscx
  clr r0  ;後で使う
  ldi ZL,low(CH_TABLE*2-2)  ;番地はワード単位なので2倍
  ldi ZH,high(CH_TABLE*2-2)  ;Ch1のデータが先頭に来るように-2しておく
  shl チャンネルナンバー入れたレジスタ ;1データは2バイトなのでx2
  add ZL,チャンネルナンバー入れたレジスタ  ;これで必要なチャンネルの
  adc ZH,r0                 ;データ入れた番地が入る
  lpm  ;r0←テーブルデータ下位
  mov C値下位を入れるレジスタ,r0
  andi C値下位を入れるレジスタ,0xF0
  mov B値を入れるレジスタ,r0
  andi B値を入れるレジスタ,0x0F
  adiw ZL,1  ;アドレスをinc
  lpm  ;r0←テーブルデータ上位
  mov C値上位を入れるレジスタ,r0
  ret

CH_TABLE:
.DW チャンネル1のデータ(下位4bitがB,下位4bitを0にしたものがC)
.DW チャンネル2のデータ
.DW チャンネル3のデータ
    :
.DW チャンネル62のデータ
739名無しさん@1周年:02/11/05 22:39 ID:Yk7dUscx
>>736
フォローの前に突っ込んでしまいました。すんません。
740名無しさん@1周年:02/11/05 22:54 ID:f05b9Gqg
優しすぎる…
741名無しさん@1周年:02/11/05 23:25 ID:UO0P3dfi
            __...__           ______
        ,. ' "´    ``ヽ、      /
       ;'           ':..     | >>740レスの付きがいいワケは
      ;'     ´       `     .| 656がシカーリ受け止めるからと思うだ 
     /       ●    ●   ∠
     /         ⌒  ▼⌒':     ̄ ̄ ̄ ̄ ̄ ̄ ̄
__ /        彡  ∵人∵ノミ___
  ̄/   ___    ミ   ノミ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄── ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ̄ ̄─── ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
742名無しさん@1周年:02/11/06 00:06 ID:Jt2tzr1q
>>740
>>656のためというより、面白いから首突っ込んでます。
743名無しさん@1周年:02/11/06 01:30 ID:ftNx4ZdO
>>735
>work1 のところが見通し悪くて ┐(´Д`)┌ でした。

確かに追いやすい(w
このルーチンは2バイト処理に書き換えるだけで
動くんじゃないかな。でも16bitのAVRがあったら欲しいね。
744ЯVА:02/11/06 19:16 ID:fPgbfEX7
>>739
 とんでもない、謝るのはアフォやった私のほうです。

>>734
>> |-`)9→1にかえるならゴチゴチとageるので2回で済みます。
 お約束の突っ込みthx!

CH_data: ; 帯域別データ作成
      clr   data_is_varid    ; データ有効お知らせフラグを「駄目」に。
      cpi   T, 0         ; =0 なら却下(ですよね?)
      breq  CH_exit       ;
      cpi   T, 63        ; ≧63 も却下
      brsh  CH_exit       ; ( sh は same or high です)
CH1_3:                
      cpi   T, 4         ; 1CH〜3CH?
      brsh  CH4_7        ; 4以上ならジャンプ
      ldi   B, 0b0001      ;
      ldi   Tminus, 0      ; Tから引く数
      ldi   LFh, high( 144 )  ; 局発周波数(2バイトデータ)
      ldi   LFl, low( 144 )  ; 
      rjmp  CH_keisan     ; 計算へ。
CH4_7:
      上と同じようなことをする。                
CH8_12:
        同上
CH_UHF:
        同上
(続↓)
745ЯVА:02/11/06 19:17 ID:fPgbfEX7
CH_keisan ; (6(T-Tminus)+LF)×16 を計算する。
       sub   T, Tminus     ; (T-Tminus)の計算。
       mov  Cl, T        ; Cに移す。下位バイト←(T-Tminus)
       clr   Ch         ;        上位バイト←ゼロ
       ldi   work, 6       ; 
       rcall  kake        ; 6を掛ける
       add   Cl, LFl       ; 局発値を足す。(下位バイトの足し算)
       addc  Ch,LFh      ; 上位バイトの足し算(下位からのキャリも足す)
       ldi   work, 16      ; 
       rcall  kake        ; 16を掛ける。これで完成。
       ldi  data_is_varid, 0xFF ; データ有効お知らせフラグをセット
CH_exit:
       ret              ; BとChとClにお持ち帰り。


kake:  ; 小さな掛け算。    C(2バイト)×work(小さな数)
      push  r1     ; r1とr2を一時借用
      push  r2
      mov  r1, Cl   ; Cをコピー
      mov  r2, Ch 
kake10:
      add   Cl, r1    ; C+r1,2 を繰り返すだけ。
      addc  Ch,r2;  
      dec   work     ; 繰り返す回数
      brne  kake10   ; ループ。 
      pop   r2
      pop   r1     ; 借りたr1,r2を返却
      ret          ; Cにお持ち帰り。
>>743
 どもです、2バイト化やマクロ使用かとも思いましたがやはり正攻法が良いかと‥
746名無しさん@1周年:02/11/06 20:33 ID:jfvI0J02
>>745
kake: に参った。
うーむ、処理時間余りまくっているのを見越してなら、
シンプルでコード小さく汎用性があっていいっすね。

ちょっと考えてみましたが、
((T-Tminus)*3+LF/2)*32とすれば、(T-Tminus)*3は最大でも150で8bitに収まります。
ここまでは1バイトのままいけるなあ、と思って書いた
CH_keisan:
  Clr Ch
  sub T,Tminus
  mov Cl,T
  add Cl,T
  add Cl,T
  add Cl,LF2l  ;LF2はLF/2
  adc Ch,LF2h
  ldi T,5  ;Tはどうせ壊れてるし
shift_T:
  shl Cl
  rol Ch
  dec T
  brne shift_T
  ret

こういうのは邪道なんでしょうね。
LFが奇数値になったり(T-Tminus)×7が必要になるだけで破綻するし(^^;)
747名無しさん@1周年:02/11/07 02:17 ID:uB8QKSgL
>>745
addc (W
僕もいつもやるんでマクロにしてます。
>>746
そうなんよね、工夫すると1バイトに収まる場合はあるけど
仕様変更でぶち壊しになるのが恐くて。
748656:02/11/07 17:12 ID:RHILUqee
あの・・・、addcってなんですか?
749名無しさん@1周年:02/11/07 17:36 ID:Y/OUUq/l
>>748
それ、漏れも気になってたけど、adcのことだろうと思って読み流してました。
もしかしてAVRのアセンブラに2種類あってそっちではaddcとなってるのかな?
brshというのも見慣れないと思ったら、こっちはちゃんとインストラクション
セットにありました。brccと同じなんですね。
750656:02/11/08 22:00 ID:KCFX0TLX
ちょっとプログラムageたいんですが、どこかウプロダないですかね?
751名無しさん@1周年:02/11/08 23:03 ID:/7Fdjb4q
752656:02/11/08 23:52 ID:KCFX0TLX
http://210.153.114.238/img-box/img20021108234933.txt
エラーだらけです。
やっぱかき集めただけでは動かない?
753名無しさん@1周年:02/11/09 00:32 ID:oLCbAnps
>>752
>やっぱかき集めただけでは動かない?
そりゃそうでしょう。AVR氏は必ず自分で考えないと駄目なように書く人だし。

最後の
>reset: ;こんなところに居ていいのかな?わかんねぇや
の部分は、最初の
>.org $20 ;適当に切りの良いところから
の次に置くんだよ。スタックを決めてから、その後にBCDスイッチを
読み込むループにつながる。

最初に
>.DEF TEMP = R16
と書いてる所に並べて
ほかの変数も全部定義してやらないと。work,T,Cl,Chなど全ての定義が必要。
.DEF work = R15
とか。
これをしっかりやればエラーの数は減ると思うが。
754名無しさん@1周年:02/11/09 00:44 ID:N9l4T5Yw
さっきのアプロだがすぐ流れるから、こっちをつかってみて
http://210.153.114.238/cgi-bin/upbbs/imgboard.cgi
755656:02/11/09 01:01 ID:PWQlPM/Y
>>753
> ほかの変数も全部定義してやらないと。work,T,Cl,Chなど全ての定義が必要。
(;゚Д゚)は!そうじゃんか・・・
756名無しさん@1周年:02/11/09 01:27 ID:S3AUMzFu
つゆーか、一時的作業変数の名前はTEMPかWORKかなど
早い時期に自分の責任で統一をはかった方が良いと思うぞ。
不必要に色々な名前を使うとレジスタが不足したり
デバッグの混乱のもとに。
757656:02/11/09 02:14 ID:PWQlPM/Y
http://210.153.114.238/img-box/img20021109021026.txt
残り28エラーに・・・

ldiLFh,high( 144 );局発周波数(2バイトデータ)
ldiLFl,low( 144 );
このhighとかlowはなんなんでしょうか?
758656:02/11/09 02:17 ID:PWQlPM/Y
759名無しさん@1周年:02/11/09 03:08 ID:Tevkln8X
.INCLUDEや.DEFを左端から書いてる。4414def.inファイルの書式に合わせると良い。
最初はTABだよ。
それから、4414def.inファイルの中で定義が済んでるものを2重定義してる。
スタックポインターやポートのアドレスはハードで決まってるアドレスだから.incファイル
にすでにあるよ。それをレジスタにEQUするとわけ分からん。w 
それから最後の方のChのあとに全角スペースが2つあるみたい。
ガンガレ
760名無しさん@1周年:02/11/09 03:39 ID:iHwEn42X
AT90S4414-4だよね?
英語のデーターブックの7ページを見たのだがこのチップはRAMの最後が$15F番地
だからスタックポインタは2バイトだ。こうじゃないかな
 ldi temp,low(RAMEND)
 out SPL,temp
 ldi temp,high(RAMEND)
 out SPH,temp
俺がいつも使うAT90S2313はスタックがSPLしかないので初めてだよ。

.DEFや.EQUは左端でもいいと思うけど…。
しかし
.DEF Enable = R17
.DEF data = R18
.DEF clk = R19
この3つはレジスタではなく出力ポートのビットの番号なんだろう?
.EQU Enable = 2 と書くべきでは?
761名無しさん@1周年:02/11/09 03:51 ID:iHwEn42X
それから重要なことだけど
workなど、ldi命令で直接数字を書くレジスタはR16以上にすること。
762名無しさん@1周年:02/11/09 04:14 ID:Dc1NmgtL
最初のスタックの所のLDI命令でR0を使ってたのか。
変数はR16以上にすればいい↓。これで多分えらー激減。

.DEF work = R17
.DEF work1 = R18
.DEF work2 = R19
.DEF bcd = R20
.DEF old_bcd = R21
.DEF cl = R22
.DEF ch = R23
.DEF LFl = R24
.DEF LFh = R25
.DEF data_is_varid = R26
.DEF T = R27
.DEF B = R28
.DEF Tminus = R29

.EQU Enable = 2
.EQU data = 1
.EQU clk = 0

えらーになる行のChとbrshの後ろに全角スペースがあるよ。
763名無しさん@1周年:02/11/09 04:19 ID:Dc1NmgtL
CH_data:  ;  帯域別データ作成

CHが全角だぞ。
764名無しさん@1周年:02/11/09 09:07 ID:5H9ABYgg
http://210.153.114.238/img-box/img20021109021612.txt
とりだせない?もう流れたのか?
(´・ω・`)ショボーン
765名無しさん@1周年:02/11/09 12:51 ID:hHXsOlaQ
ソース読めなくなっちゃったので何もかけんけどとりあえず
>ldi LFh,high( 144 );局発周波数(2バイトデータ)
>ldi LFl,low( 144 );
>このhighとかlowはなんなんでしょうか?

2バイト数値の上位バイト・下位バイトを取り出す疑似命令だよ
この計算はコンパイラ+PCでなされ、AVRがやるわけじゃない。
例えば、
ldi r16,low(0x1234)
ldi r17,high(0x1234)
は、
ldi r16,0x34
ldi r17,0x12
に変換される。4414ならスタック設定にも出てくるね(>>760参照)
766656:02/11/09 16:35 ID:PWQlPM/Y
ご指摘サンクスです。
http://pengin.gotdns.com/~upload-2ch/TD6380_TunerControl2_asm_x.txt
のこりエラー1です・・・

>>760
AT90S4414-8の4MHz作動です。
って同じだけど・・・

>>760,765
なるほど、そうだったのか・・・

>>762
うちでは、ただエラーxxってだけでどこの行ががエラーだなんて教えてくれないんですよ・・・。
ソフトはAVRstudio4、プログラムうつのはメモ帳。
767AVR:02/11/09 18:58 ID:Dc1NmgtL
え〜!すごいことに〜!
ソースリストが見れません
768名無しさん@1周年:02/11/09 19:04 ID:N9l4T5Yw
あプロだ、こっちの方がキャッシュされてる容量が大きいから
こっちを薦めます。
1番目5個、2番目50個、そしてこれは150個までキャッシュされます。

http://210.153.114.238/cgi-bin/upbbs2/imgboard.cgi
769656:02/11/09 19:20 ID:PWQlPM/Y
770AVR:02/11/09 19:48 ID:LmQry6a1
>>769
 ども、不完全なプログラムでご免なさいです、早速エラー箇所が分かるファイルですが、
ソースファイルと同じフォルダに、拡張子が.LSTというファイルが出来てるはずです。
それがアセンブル結果のリスト(List)です。

 メモ帳で十分ですよ、私も図を書かないレスはメモ帳で書いてますよ。
で、アセンブルリストのエラー場所を探すには検索で「error」の文字を捕まえましょう。
ここ↓ですね。
>>
>> .org $20 ; 適当に切りの良いところから
>>
>> reset:
>> 000020 ldi     r0,RAMEND   ; スタックポインタをRAMの末尾に設定.
>> error : Illegal argument type or count
>> 000021 be0d out     SPL,r0
>> 000022 94f8 cli

 errorと出た行の上の行間違ってる行になります。
今回は、>>760氏の指摘箇所がまだ直されてないようなんで、ldi r0,RAMEND を
>> ldi temp,low(RAMEND)
>> out SPL,temp
>> ldi temp,high(RAMEND)
>> out SPH,temp

に置き換えです。
771あぼーん:あぼーん
あぼーん
772あぼーん:あぼーん
あぼーん
773656:02/11/09 22:41 ID:PWQlPM/Y
アセンブルできました。ありがとです。
とりあえず書き込んでみましたが、動くかどうかはまだ不明です。
774765:02/11/10 10:04 ID:zsz+09mk
お、いつのまにか終わっている(^^)
スイッチどういう作りにするわかからんけど、
PORTDに0xFFを出力してプルアップ有効にすれば
プルアップ抵抗も省略できてウマーかも

しかし4kBのうち332Bytes使用かぁ。なんかもったいない(藁
775656:02/11/10 11:32 ID:i3P5IiE3
>>774
もしプルアップにする場合だと、負論理になっちゃいますから、
BCD-BIN変換部のプログラムを変更しなければいけないのでは?

(;゚Д゚)332バイト!?もっと容量膨れ上がることを想定してたから、4414買ったのに・・・
(´・ω・`)AT90S1200に変えようかな・・・
776名無しさん@1周年:02/11/10 12:09 ID:62PjRZSk
まあ、何でもプルアップはTTL世代の特長かな。>>656よ。もしそうしたかったら
読み込んだ直後に反転する命令を1行入れてやれば済むことだ。
777765:02/11/10 13:18 ID:zsz+09mk
>>775
あ、そだね。でもこれはinしたあとにnot噛ませばいい。

1200だとスタック足りなくなることがあるからたいへんかも。
そのメモリの余裕を、C言語使う方向に持っていってはいかが?
gcc使えるのはAVRの強みだよ。サイズも意外と膨れない。
サンプルをhttp://210.153.114.238/cgi-bin/upbbs2/imgboard.cgi
にあげてみました。「すきもの」で検索してくだされ
コンパイルエラーが出ないと言うだけで動くかどうかはわからん(^^;)
これでも464バイトで2313でもまだ余裕。
waitルーチンはアセンブラ使いました。
778名無しさん@1周年:02/11/10 16:27 ID:1BoFxNRx
>>776
>まあ、何でもプルアップはTTL世代の特長かな。
何でプルアップもって・・・・どういう意味だろ???
普通のスイッチ読ませるにはプルアップ・プルダウン
どちらかしないとあかんでしょ???
779名無しさん@1周年:02/11/10 19:12 ID:T9vVt49i
>>776
CMOSでもよくやりますが.....
780AVR:02/11/10 19:31 ID:wXRsOp4M
>>773
 うまくいってますか?昨夜のソースリスト今さっき見たら下記の所を発見しました。
CH4_7:
      cpi  T,8  仕分け判定値がぜんぶ4のままですね。
CH8_12:
      cpi  T,13
CH_UHF:
      cpi  T,63

bitX:ルーチンのデータを出すビット位置がEnableになってるので
      bld  r0, Data  又は r0, PB1 でしょ。

 私は4414持ってないんで目で追っただけですが、他は行けそうな気がします。
どうしても困ってたら2313で実働チェックしてみますから現状のリストを見せてください。
781名無しさん@1周年:02/11/10 19:50 ID:1BoFxNRx
>>769
そうそう、
>.org$20;適当に切りの良いところから

これ多分要らない。そのまま続ければちゃんと最後の
割り込みベクタの後にメインが続いてくれます。
cliで割り込み完全禁止するならまずreset以外のベクタに飛びませんから、
極端な話
.org 0
の後いきなり
reset:
  ldi r16,low(RAMEND)  ; スタックポインタをRAMの末尾に設定.
  ldi r17,high(RAMEND)  ; スタックポインタをRAMの末尾に設定.
    :
    :
とつづけてもいいっすね。ATMELのapplication notesもそうなってます。
もし割り込みベクタ並べるなら後で利用しやすいように&間違えないように
それぞれのretiにコメントつけるのをおすすめします。



782名無しさん@1周年:02/11/10 20:19 ID:jUMA0kmH
…せっかく良スレに戻ったのにまたオッサンたちかの口臭かよ。ウザッ
783名無しさん@1周年:02/11/10 20:35 ID:eBkhz4nh
言いたいことがあればはっきり言うか言わないかどちらかにする方が吉
784名無しさん@1周年:02/11/10 20:35 ID:n9r6OXV3
と、50過ぎのCADオペが何かわめいておりますが、今後の彼の人生をどうしますか?
          [削除]      [終了]       [再起動]
785784:02/11/10 20:36 ID:n9r6OXV3
783は頭の無い>>782に向けてだからな。
786名無しさん@1周年:02/11/10 20:40 ID:7zOYE6vq
>>782
お前が一番ウザイっての。(w
馬鹿晒し上げ。
787777:02/11/10 21:24 ID:7qbKGFSI
>>780関連を見直し+その他の間違い訂正
http://210.153.114.238/img-box/img20021110212305.lzh
788名無しさん@1周年:02/11/10 21:43 ID:4CkkjpoT
>>782
来ないでくれ。気分が悪いよ。
789656:02/11/10 22:39 ID:i3P5IiE3
結果ですが・・・
確かにバラクタダイオードへの印加電圧も変わり動作はしています。
しかし計算がズレてるようです。1chを選局するのに約1.6Vなのですが、3Vに・・・。

IF:58.75MHzで計算したのですが、もしかして海外仕様なのか?(日本仕様のはずだが)
一度、45.75MHzその他でやってみるつもりですが・・・

>>781
これをやらないと動作に支障をきたしますか?
790AVR:02/11/10 23:05 ID:Xrf+YzNQ
>>789
 たった今レスを読んで本気になって見たら‥
小さな掛け算のルーチン、1回余計に回ってました。 (;´Д`)アフォヤッテマスタ
    mov    r1, Cl
    mov    r2, Ch
    dec    work    ←これを1行追加。
kake10:

791AVR:02/11/10 23:12 ID:Xrf+YzNQ
もうひとつ。
CH_keisan:  ;  (6(T-Tminus)+LF)×16 を計算する。
    sub  T, Tminus
    mov  Cl, T
    clr   Ch
    ldi   work, 6     ←ここが work1 になってませんか?
792656:02/11/11 00:18 ID:KRehFENZ
キタ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!が、1〜3chが映らない・・・
http://210.153.114.238/img-box/img20021111001817.txt
793AVR:02/11/11 00:29 ID:Fo9DlljD
おまたせ!これから見ます
794656:02/11/11 00:32 ID:KRehFENZ
症状としては、1〜3を選ぶと3Vになって、4〜12は正常に動きます。(UHFは未確認)
795AVR:02/11/11 00:53 ID:qAun7JmD
11番ピンから出てるバンドスイッチのラインは働いてそうですか?
プログラム上では変なところ無さげです、+144自体ってことはあり得ないし。。
プログラムの動作を追うと、
直列に出ていくCの値は
BCD=1で2400(十進数)
BCD=2で2496
BCD=3で2592
になってます。
もう少し考えて見ますが、VCOの回路側も見てくださいよ。バンドスイッチあたり

796AVR:02/11/11 01:56 ID:Y/tPJIwc
怪しいところ見あたらず‥モウネマス
797656:02/11/11 08:30 ID:KRehFENZ
実は、VHF-Lo(バンドSWデータ:0b0001)とVHF-Hi(バンドSWデータ:0b0010)の出力は短絡されており、どちらが出てもOKなようになってます。
わざと計算をずらさないといけないのかな・・・
798名無しさん@1周年:02/11/11 09:18 ID:VMUk2A8C
>>797
ごめん、どういう意味?
シリアル接続なんですよね。
スレーブ側の内部で同じ扱いにされている(尻パラ変換のあとBandのbit0と1が
ORで結ばれているとか??)という意味でしょうか??
799656:02/11/11 15:53 ID:KRehFENZ
すいません、書き方が悪かったようですね!
うちのはSZIPパッケージ(TD6380Z)なので、わかりやすいDIPパッケージのTD6380Pで説明します。

まず、ICのデータシートを見ると、バンドスイッチ出力が
11Pin(バンド1)、12Pin(バンド2)、13Pin(バンド3)、14Pin(バンド4)
となっています。
そして一般的な割り振り方では、
11PinがVHFLo(/CATVミッドバンド)、12PinがVHFHi、13PinがCATVスーパーハイバンド、14PinがUHF
になってることが多いです。
しかし、今使っているモジュールはICの11Pinと12Pinがつながって(論理回路で言うOR)おり、VHFLoとHiが一まとめにされていました。
なので、11PinをONにしても、12PinをONにしても同じ扱いになります。

ってことです。
800名無しさん@1周年:02/11/11 17:34 ID:imVT3Dz4
了解しました。
Band0001とBand0010はORされて(TD6380側はOC)チューナーに入っていて、
チューナーの側はVHFLo/VHFHiともに1つのバンド?で面倒見るんですね。
801名無しさん@1周年:02/11/11 17:36 ID:RJwb8Rn5
>>799
VCOというのは市販のICですか。
802656:02/11/11 17:45 ID:KRehFENZ
やっと解決しました。モジュール内部の設計がプアだったようです。
まず、データシート通りにツェナーダイオードのあとにくる抵抗を15kΩにしていたのですが、
それではモジュール内部のトランジスタと抵抗による電圧降下回路でうまく電圧を落とせなかったのが原因でした。
この15kΩを50kΩに交換したところ(というか、可変抵抗器に交換してうまくいくのが50kΩ付近だった)1〜3chも正常に
チューニングできました。
(´・ω・`)AVRさん、どうもすいませんです。

あと、UHFが3chづつズレていましたが、よく見てみると、
CH_UHF:;
cpiT,63;
brshCH_exit;
ldiB,0b1000;
ldiTminus,15;Tから引く数
の15をミスってました。
正しくは、
ldiTminus,12;Tから引く数
です。
803656:02/11/11 18:22 ID:KRehFENZ
(;´Д`)全部くっついてる・・・ここではTAB使えないのね・・・
804AVR:02/11/11 18:43 ID:H/OhcgF7
たった今拝見、おめでとーございました。
805424:02/11/11 19:45 ID:m9lzNQXZ
お久しぶりです。速度・加速度・開弁率計(LCD表示版)が2313+gccでなんとか
動作に成功しました。まずはテストのつもりで、速度・加速度(車速信号から)・
回転数・インジェクタ開弁率/開弁時間が表示できるものを作りました。
車速信号はそのまま適当な抵抗を介して入力したら見事にノイズで誤動作
しましたが、5.1k-0.01uFのLPF入れたら正常動作できるようになりました。
助言してくれた方々ありがとうございました。
806ЯVА:02/11/11 21:04 ID:H/OhcgF7
>>802
>>正しくは、
>> ldi Tminus, 12
>>です。

 プログラム中の一項目が現実の何かと対応ついたとき手応えがありますね。
で、帰る途中なにげに気になったんで老婆心ながら‥。

>>バンド1出力とバンド2出力は短絡されてる
>>VCOモジュールへの電源電圧を下げたら動いた

 ツェナー直列に50KΩでは電流はμAオーダーでしょうか、少なすぎの
ような気が‥(老婆心モードなんで気にしないでください)。
 で、
データシート4ページにあるバンドスイッチ出力回路を見てください、
下Trがスイッチ本体で上Trは5V以下に下がらないようにする(クランプする)
役目で、3kΩの抵抗で決まる電流(1mAちょっと)を吸い込む回路ですね。
 これを2回路パラレルということは電流を2倍引っ張っる、例えば
Midチャネルでは 0b0010 で片方だけ1mAほど引っ張る、
Lowチャネルは実は 0b0011 で両方で2mAほど引っ張る
とか‥。

p.s.
validをvaridと書いてました(^∀^)ヒハハ☆\(-_ー ;)
807名無しさん@1周年:02/11/11 21:22 ID:KRehFENZ
>>806

> >>VCOモジュールへの電源電圧を下げたら動いた
電源というのかな・・・

>  ツェナー直列に50KΩでは電流はμAオーダーでしょうか、少なすぎの
> ような気が‥(老婆心モードなんで気にしないでください)。
まあ600μA程度でしょうかね・・・

> データシート4ページにあるバンドスイッチ出力回路を見てください、
あれ?
問題だったのは、バンドスイッチではなく、バラクタダイオード(商品名:バリキャップのほうが一般的?)への電圧制御の部分です。
データシート12ページのチャージポンプとVT端子がつながってることろです。
所詮、電圧制御なので電流はほとんどいりません。

なんてったって、実験中、ケースGNDと私の手との間は+20V程度(そのうちリップル1V程度)の電位差があって、
VT端子(バラクタダイオードの逆方向電圧入力端子)を触るだけで反応し、触り方をかえる(接触抵抗をagesage)だけで、
チューニングできてテレビが見えるくらいですから・・・。
( ゚∀゚)ちなみに乗っているリップルはその端子が容量性負荷(?)のせいで平滑され安定した受信ができました。

808656:02/11/11 21:23 ID:KRehFENZ
↑漏れ
809ЯVА:02/11/11 23:06 ID:hlYJy1dC
>>808
 なるほど読み違えてました(笑
で、本番用にもしチップを買い換えるなら 2313 が売れ筋のようです。
プログラムの方は、もしアセンブラで続けるなら一度書き直しをお薦め
します、変に r0 とか使ってるのを work に統一したり、サブルーチン
内で作業用に使うレジスタは必ず push pop するとか、ですね。
あとコメントはできるだけ豊富に。後日部分直しなどのとき頼りになります。

>>424
 おめでとーございまし!
810名無しさん@1周年:02/11/12 02:45 ID:BdFKBsCO
PICネタで申し訳ないんですが(w
MPLAB-C18 Demo v2.00の制限って無いんでしょうか。
v1.xxの様に30日の試用期間云々って見当たらないので。
811656:02/11/12 17:42 ID:Pl13Op6N
>>809
すでに4414/8515用に基盤は出来上がってますから、同じことをやるときには2313でもチョイスしようと思います。
|-`)ブレットボードとかじゃなく、いきなり本番用基盤製作・・・
それで、これからアセンブラで逝くつもりなので、暇なときにちょくちょく修正を加えていくつもりです。
やっぱりコメントって重要ですね!あるのとないのとでは断然違いました。

そして、上からの指令でPICをやらされることに・・・(AVRは勝手にやってるだけ)
812名無しさん@1周年:02/11/13 00:01 ID:icctDo4w
細かくて悪いが、
基盤では無くて基板ね。
どうも気になるから。
813名無しさん@1周年:02/11/13 06:38 ID:7oAG50rs
流れ乱して悪いが、AVRって外部メモリをサポートしてる
お陰で、外部I/Oの拡張が非常に楽&重宝するんだけど
PICってこの辺りどう?

8535にSRAM付けてひーひー言いながら制御した経験から
外部メモリマンセーなもんで。(w
814名無しさん@1周年:02/11/13 08:29 ID:Ns7AkI9D
>>813
いくつかぐぐって見たけど、PICだとシリアルSRAM使うとか、
周辺機器として手動で?制御することになるんでしょうか。
www.picfun.com見ましたがpic18でも外部SRAMサポートなさそうですね
大量のRAM使うのはデータストレージ時などだから外付けシリアルでもいいという
判断なんでしょうか。SRAMつけられるとしてもたくさん足(IO)取られちゃいますしね。
815名無しさん@1周年:02/11/14 07:59 ID:bYB3RA10
質問。ハードもソフトもあまり詳しくないんだけど
スワローカウンターってどうなってるんですか。
816名無しさん@1周年:02/11/14 11:46 ID:K/1xWIRP
>>815
ここにちょこっと書いてある。
http://speana-1.hp.infoseek.co.jp/pll/pll_1/pll_1.htm
817AVR:02/11/15 13:04 ID:OiqrHDk3
>>811
 おお、両方覚える良いチャンスですね。アセンブラとCの両方をモノに
しましょう。このスレが出来る前どこかに書いたと思いますが私の関係先も
いまだに両方使ってやってます。最近はAVRが多くなったようですが一頃は
試作AVRで試行錯誤して製品PICとかやってました。
 部品供給の確実性などを考えると一種類に絞れないとか色々あって
ものによっては両方実装できるようにしてるのもあるようです。製品単価
は気になるほどの比率でもないようですね。
818AVR(おまけ):02/11/15 13:05 ID:OiqrHDk3
; 無駄時間かせぎ(4MHz用。4MHzは0.25μsec, rcall=3clk, nop=1, ret=4, 計2μsec)
t100m:  rcall  t4m  ; 100 =64+32+4
      rcall   t32m
t64m:   rcall   t32m  ; 倍々の方法。
t32m:   rcall   t16m
t16m:   rcall   t8m
t8m:    rcall  t4m
t4m:    rcall  t2m
t2m:    rcall  t1m
t1m:    rcall  t1000u
      ret
t1000u:  rcall  t200u
t800u:   rcall  t200u
t600u:   rcall  t200u
t400u:   rcall  t200u
t200u:   rcall  t100u
       rcall  t100u
       ret
t100u:  rcall  t20u
t80u:   rcall  t20u
t60u:   rcall  t20u
t40u:   rcall  t20u  ; 10μずつにしたかったらt10uをcall
t20u:   rcall  t10u
      rcall  t10u
      ret
t10u:   rcall  t2u  ; 10μsec
t8u:   rcall  t2u  ; 8μsec
t6u:   rcall  t2u  ; 6μsec
t4u:   rcall  t2u  ; 4μsec
t2u:   nop       ; 2μsec
     ret
819名無しさん@1周年:02/11/15 14:15 ID:8nm8S4sS
これ、t100mを呼んだらスタックすごく消費するのではないかと思ったが、
12段(24バイト)ですか。アセンブラならよほど変数領域使わない限りは大丈夫かな。
呼び出し元で引数のためにレジスタ1つつぶさなくてもいいのはいいですね。
820ttt:02/11/15 18:28 ID:mkgXxt1/
PICで50W〜200WほどのDCブラシ付きモーターの制御をしたいのですが
詳しく説明のあるサイト知りませんか?
それとPICでのモーター制御についてお勧めの本はありますか?
821あぼーん:あぼーん
あぼーん
822AVR:02/11/15 19:31 ID:MUk7EGLq
>>815
       パルス・スワロー・カウンタ(パルスを隠すカウンタ)
       swallow : 隠す、見えなくする、グッと飲み込む、ツバメ、等。

 マイコン内蔵のタイマや周波数シンセPLL帰還路に用いられる計数回路は
与えられた数値 n でクロック周波数を 1/n にする n分周回路 です。動作は
数値 n を取り込み、1クロック毎にカウントダウンし、ゼロになったら又 n を
取り込んで回帰する‥これを繰り返してます。出力は普通 ゼロになって回帰
するときパルスを1発出します。それがマイコンの割り込みパルスや PLLの
位相比較信号として使われます。
 必然的に同期式カウンタを使いますが、同期式は段数が長いほどキャリー
伝播が遅くなって最高動作周波数が落ちる‥という宿命があります。
 で、
分周比可変の必要が無ければ非同期カウンタなどの高速回路を使えるので、

    fc ──→ 固定分周比 p ───→ 可変分周比 m ──→ fout

小さな固定分周回路を前置して 後段を周波数的に楽にする方法を採ります。
(マイコンのタイマーのプリスケーラとは目的が異なり、これは高速が命です)
 例えば(分かりやすいように十進数で)p=10とすれば
後段のカウンタに行くクロックは(fcで数えて)10個に1個になるから
m=3 なら(fcで数えて) 10+10+10=30個でfoutに1発出る、つまり 30分周。
m=6 なら(同じく)10+10+10+10+10+10=60個でfoutに1発、つまり 60分周。
 このように
分周比は p きざみに粗くなって 61 とかが出来ないという欠点があります。
 (ここまではお約束ですね)
823AVR:02/11/15 19:31 ID:MUk7EGLq
そこで、

      fc ─┬→ p=10 ─|1 ──→ 可変分周比 m ──→ fout
        ├→ p=11 ─|回
        ├→ p=12 ─|だ
         :   :  .:  け  例えば最初に選ぶとすれば
        ├→ p=18 ─|選  分周比=65 なら 15+10+10+10+10+10=65
        └→ p=19 ─|択  分周比=69 なら 19+10+10+10+10+10=69

           (概念説明だから 切替の不連続など細かな突っ込みは無しね)
もしくは、
      fc ─┬→ p=10 ─|切 ──→ 可変分周比 m ──→ fout
        └→ p=11 ─|替
                    必要な回数だけp=11を選ぶ
                    分周比=60なら 10+10+10+10+10+10=60
                    分周比=63なら 11+11+11+10+10+10=63

      (分周比=67なら? そう、実は 十の位≧1の位 という制限があります)

実際は、
      fc ──→ p=11/10 ─-┬─→ 可変分周比 m ─┬→ fout
              ↑    ↓           ↑   │
              │  可変分周比 s ←─--┴---┘
              │  (ゼロで止まる)    回帰パルス
              │      │
              └───┘ sカウンタ値≠0の間 p=11を選択

 sカウンタはカウントダウンしてゼロになったら回帰せず止まるようになってます。
例えば分周比=63 なら 6を mカウンタ、3を sカウンタに与えるわけです。
 以上、十進で説明しましたが二進ならpを2の整数乗にすれば 分周比は自然二進
のままで与えることができます。なお m≧sの制限は付いてまわります。
2択型プリスケーラに適する高速回路は自己起動型リングカウンタなど。
824AVR:02/11/15 19:37 ID:yjaYOgZp
ウプ間隔が短いと直ぐ2重カキコ規制が。
>>819
 あくまで遊びレベルですね、こればっかりではせっかくの割込みタイマーが勿体
ないです。こんなのを足掛かりに割込みタイマに進んでください‥‥と言いながら
つい使ってしまう悪い癖が。
825名無しさん@1周年:02/11/15 21:17 ID:sEYOZEaI
>>824
でも、何かやってXXms待って,という処理は割り込みタイマではめんどいですよね。
割り込みじゃなしにタイマで時間を計るとなると、こんなのでいいかな
これだとインターバルタイマーは別の処理させながらも任意の時間待ちルーチンなどに使える。
.MACRO WAIT_TMR1
;WAIT_TMR1 16bit-wait (0<=wait<=0x7FFF)
;4MHz,Prescaler=1/256ならWAIT_TMR X でほぼ X msecウェイトになる
  ldi wait_L,low(@0) 
  ldi wait_H,high(@0) 
  rcall wait_timer1
.ENDMACRO

wait_timer1:
;制限:wait_L/wait_Hは0x8000未満
  push timeup_L
  push timeup_H
  in timeup_L,TCNT1L  ;timeup=TCNT1
  in timeup_H,TCNT1H
  add timeup_L,wait_L   ;
  adc timeup_H,wait_H
wait_loop:
  in wait_L,TCNT1L
  in wait_H,TCNT1H
  cmp timeup_L,wait_L
  cpc timeup_H,wait_H
  brcs wait_loop  ;brneだとPrescalerと他の割り込みによっては×
  pop timeup_L
  pop timeup_H
  ret
826名無しさん@1周年:02/11/15 21:19 ID:sEYOZEaI
;4MHz,Prescaler=1/256ならWAIT_TMR X でほぼ X msecウェイトになる
これまちがい、X/64msecだ
827 :02/11/15 21:30 ID:g5hs+wQc
msオーダーなら555のCMOS版が便利です。
CPUは寝かせて待ちましょう。
828815:02/11/15 22:21 ID:jSNyGcSn
>>816,>>822
ありがとうございましたっ。サイトを参考にしてアホアホな頭で考えていたけど分数では
駄目だったのね。パルスの数の説明はホント分かりましたよ。
あとp=11/10はひとつのカウンターなのか教えてください。
829名無しさん@1周年:02/11/15 22:38 ID:2XfV7rCx
PIC,AVR,H8で、それぞれPWMの上限周波数はいくつでしょうか?
(PWMは8ビットで構いません)
830名無しさん@1周年:02/11/15 23:53 ID:5/E1u375
>>829
ハードウェアのPWMということでいいんですか? 0-255の256段階でデューティ比決められるということなら
AVRはCK/1駆動でAT90S2313@10MHzを使えば1カウントクロック周期の100nsで、
255*2=510カウント周期(PWMの実現方法によりこうなるみたい)=19.6kHz 
H8はとりあえず手元にあるH8/3664F@16MHzなら、1カウントはクロック*4=250nsで
255カウント周期=15.7kHz 20MHzなら19.6kHz?
PICはよくわからないけど20MHzなら1カウント=クロック*4で200ns。
255(256?)カウント周期=19.6kHz

PICコンパチ50MHzはわからんけどクロック以外同じなら49kHz?
831名無しさん@1周年:02/11/16 00:27 ID:EJ/8khJa
↑そういうの他人に教えてもらってるうちは身に付かないと思う‥
832829:02/11/16 00:39 ID:NDi3FR6l
そうかもしれん。調子に乗った漏れ、反省・・・・
833名無しさん@1周年:02/11/16 01:03 ID:NDi3FR6l
↑830です
834名無しさん@1周年:02/11/16 08:05 ID:yy7bTm9V
この間、書き込んだ初心者です.
LCDにカウント数が表示されるパルスカウンターを作ってみました.
LCDのデータシートが読みにくくて4ビット通信と初期設定でつまずきましたけど、
うまく動いた時は感動しました.
835829:02/11/16 09:38 ID:j+1G+68/
>>830
お〜有難う。実はこの前までICのプロセス設計やってたんだが、
撤退して、こんどマイコン絡みの仕事をやることになったんで、
所謂ワンチップマイコンの動作周波数っていうか、その辺のカンどころが
わからなかったんよ。
 結構、実用域で動作するんですね。
836 :02/11/16 11:39 ID:l6VOmIfu
お前、流しのプロセス屋では喰っていけるだけのスキルはないのか?
837830:02/11/16 12:15 ID:qhma4HfS
>>835
あ、あんたプロさんなのかよ・・・唖然
漏れと同じ素人趣味工作者か学生さんか新入社員だと思ったのに
838829:02/11/16 14:18 ID:atokymUP
>>836
流しのプロセス屋:カッコいいんだけどねぇ。妻子と老母と住宅ローン抱えている身としては、
この御時世では、会社の都合はハイハイと聞くしかないんですよ。
プロセス設計っていっても、どっちかというと物性屋なんでね。

早速秋月でとりあえずPICのキット買ってきて、LEDの点灯をやってみた。
なるほど、ICE無くても、この程度なら、誰でも出来そうですねぇ。

839AVR:02/11/17 01:51 ID:Zyhxl0a/
>>828

 分周比を 1/n と連想して、(ある割合)・1/(p+1)+(1−ある割合)・1/p みたいな
式を立ててしまいました? でも、(ある割合)・fc とは具体的に何でしょか?
例えば1kHzの20% ですか? まさか振幅の20%‥すでにお分かりと思いますが
周波数領域でなく 時間領域 でないと足し算が通用しない(線形性が無い)です。
よく 1/128分周 などと書いたのを見ますが、正しくは 128分周 です。
(私も新人の頃は「5分の1ぶんしゅう」とかつい喋って厳しく躾られました)。
スワローカウンタもカウンタから最終出力があるまでの 時間 と考えれば直ちに
(p+1)をs回+pを(m−s)回 = mp+s = 10m+s と求まってしまいます。
「このカウンタ回路の分周比は 10m+s である」と言いいます。それは実は
fcきざみで数えた「時間」を言ってるです。
「1/n分周」は語感が良いのかよく見かけますが染まらないように気をつけませう。

>>p=11/10は一つの回路?

 です。例えば自己起動型リングカウンタを使うなら、
  
        ┌─→ s、mカウンタへのクロック
        │
 ┌→ DFF ┴→ DFF→‥全10段‥→ DFF → DFF
 │                           ↑
 └─全段出力のNOR            最終段をゼロに固定すれば周期10
                                    しなければ周期11
 外界に接するPLLに使われるカウンタは
ノイズなどでどう転んでもリセットなど期待せず自力で立ち直れること
転んだ事を機会に悪い道に入り込まないこと
が要求されるようです。
840あぼーん:あぼーん
あぼーん
841名無しさん@1周年:02/11/18 08:12 ID:JZPpmsYI
保守age
842656:02/11/18 17:11 ID:uB58JroO
>>812
訂正サンクス!

>>818
早速プログラムに加えました。
ありがとうです。
843名無しさん@1周年:02/11/19 06:05 ID:897dyL+S
初心者です.質問させて下さい.

MPLABv5.7くらいをつかって作成していたソースのシミュレートを
していたところ.ループの中で勝手にリセットがかかってしまうという
ことが起きました.WDTはナシに設定しています.
想定される状況を教えてやってください?お願いします.
844名無しさん@1周年:02/11/19 12:32 ID:fgtGzNec
>>843
callとret、pushとpopが合っていないで、
スタックに変な値読み込んであらぬ方向へとんでいく
ってあたりでは?
845名無しさん@1周年:02/11/19 19:03 ID:SMBDMaYC
>>839
ぅぅぅ…思いっきし1/n分周と覚えたのは戸裸疑の製作記事。ダメポじゃん…
846843:02/11/19 19:33 ID:897dyL+S
>>845

レスありがとうございます。
どうやらWDTがかかってたみたいなんです。
ループの中にCLRWDTをいれてみたらリセットがかからないで
一応ですがそのまま正常に動作していました。
オプション→ディベロップメントモードでWDTをNONEにして
さらに__CONFIG_WDT_OFFも書きこんでいたの2,5秒に一回
リセットがかかってしまう状況でした。
なんか設定で他に変更するとことかあるのでしょうか?
847名無しさん@1周年:02/11/20 19:17 ID:Up3zlkey
>>845
まあ、気にすることでもないけどね。
分周率1/nっていうのは、海外のデバイスメーカの資料にも
1/nとかで書いてあるから大きく外れているわけではないよ。
会議では1/n分周という言葉で通じてるし。
ゲームオーバーみたいなものか?(w
848 ↑ :02/11/22 00:57 ID:yz0C/3kz
  ( ´,_ゝ`)プッ
849名無しさん@1周年:02/11/23 04:21 ID:uuu7GE6c
すごーい初心者です

あのぉ回路を組んだはいいもののうまく発振してないようなんです
しっかり接続してるはずなんですがどうすればいいんでしょうか?
電源しっかり確保して振動子しっかりつなぐ以外にコツみたいなのありますか?
ドキュンな質問ですがうまくいかず悩んでます 助けてください
850名無しさん@1周年:02/11/23 05:02 ID:kUSTvpTY
いままで経験あるの?初めて?
チップ名は?
電源電圧は?
振動子は何?
周波数は?
発振してない」とどうやって確認したの?


851名無しさん@1周年:02/11/23 06:08 ID:64nCsVSx
>>いままで経験あるの?初めて?

( ´,_ゝ`)プッ
852名無しさん@1周年:02/11/23 09:10 ID:EWsDkEXx
>>いままで経験あるの?初めて?

(*^^*)ポッ
853名無しさん@1周年:02/11/23 10:28 ID:1XaAiaho
>>852
7〜8年くらい前のパソコン通信のノリで、懐かしさを感じる。
854名無しさん@1周年:02/11/23 13:17 ID:EWsDkEXx
n(^o^)/~ 僕の初めては1200bpsでした。
855名無しさん@1周年:02/11/23 13:39 ID:lf1Bji8n
300bps・・・・・・・ゴニョリ
856名無しさん@1周年:02/11/23 15:15 ID:zkHfBaxc
300ボーだったな。
857名無しさん@1周年:02/11/23 15:40 ID:EWsDkEXx
そうそう、ボーとbpsは実は違うんだよね。
858名無しさん@1周年:02/11/23 19:10 ID:Gj86Ruuk
9600から違って来るんだっけ?>baudとbps
ちなみに漏れも300bps
カプラ神はいないか
859名無しさん@1周年:02/11/23 19:12 ID:YK2hEGUE
 tp://www.lightstone.co.jp/products/wedge/serial_commu02.htm
860名無しさん@1周年:02/11/23 19:18 ID:FnmoY3NK
75baud 黒電話カプラだけど何か?
861名無しさん@1周年:02/11/23 19:21 ID:FnmoY3NK
859の説明は舌足らずだな
862名無しさん@1周年:02/11/23 20:03 ID:022Mj7pb
>>860
音響カプラでも1200ボーっていうやつが、あったような気が。
863名無しさん@1周年:02/11/23 20:22 ID:EWsDkEXx
300ボーは、300Hzの周波数でって意味。
300Bpsは転送速度が秒速300bit
スタートビット1、ストップビット1、パリティ無しで
300ボーは、270Bps
864名無しさん@1周年:02/11/23 20:23 ID:EWsDkEXx
訂正 300ボーは、240Bps
865名無しさん@1周年:02/11/23 23:18 ID:wRXYgqRS
↑ん、ボーは変調速度であって、bps(bits per second)とは根本的に違うぞ

低いbpsのモデムは1変調で1ビット送っていたので、ボーレート=bpsだけど、
ある程度より速くなると1変調に数ビット割り当てるのでボーレート≠bpsになる。
詳しい数値は忘れたけど

漏れは・・・300bpsモデムに手が届く値段になり、PC-VANのCMが流れる前位かな。
今56kモデムとかが2000円で売られているのを見ると泣けてくる

ってかスレ違いなのでsage
866名無しさん@1周年:02/11/23 23:53 ID:cmDmtOTl
通信ポコって9600bpsの単体モデム(乾電池動作)が出てきたけど
幾らで買ってくれますか?
867名無しさん@1周年:02/11/24 01:15 ID:yAsFZUct
bpsってスタートストップビットに当たる物も含むんじゃなかったっけ?
868名無しさん@1周年:02/11/24 01:29 ID:NB7n4+Lq
849はどうした?
869名無しさん@1周年:02/11/24 01:59 ID:AKYPFtBi
>>867
含むよ。
単純に1秒で何ビット流せるかだから。
870名無しさん@1周年:02/11/24 02:11 ID:N7kF3w2Y
>>861
ね。最近は綺麗に飾り立ててるが読んだらガックリ来るようなサイトが目に付く。
871名無しさん@1周年:02/11/24 06:26 ID:kTh+jpYN
bpsは実効レート、ボーは周波数じゃないの?
8で割ったら転送速度って書いてるよ。
http://www.zdnet.co.jp/internet/guide/rakuraku/glossary/08.html
872名無しさん@1周年:02/11/24 10:38 ID:AKYPFtBi
>>871
わらた。
単純に割っちゃまずいだろう。
873名無しさん@1周年:02/11/24 11:52 ID:yAsFZUct
>>871
雑誌記事なんだこれ・・・
他にもbps=データ転送速度(Bytes/sec)×8とかいてあるとこ、いくつかあるね。
UARTのスタートストップビットの他にもデータ訂正やらなにやらいっぱいあるとおもうのだが
874名無しさん@1周年:02/11/24 20:24 ID:Ca22TZZw
ボーレートについてちゃんと書かれているページとなると・・・
ttp://opt-1.matsc.kyutech.ac.jp/yougo.html
ttp://www.cqpub.co.jp/cqad/ecn/2002/july/trend.htm
この辺か。
検索していて気が付いたのだけど、UARTの通信速度をボーレートと記述しているページが結構あるね。
間違いでは無いけど、bpsで表記した方が良さそうな気もする。
875名無しさん@1周年:02/11/27 05:03 ID:0t/6auGg
メンテ。
876名無しさん@1周年:02/11/28 17:43 ID:z+SBydLF
PIC16F877なんですが。
(株)マイクロアプリケーションラボラトリーが出してる
PICワンチップマイクロコントローラ 応用編という本を見てます。
ここのタイマ2の解説において(71ページ)

>クロックが20MHzの場合、最大12.8msのタイマ割り込みになります。

と書いてるんですが、プリスケーラ、ポストスケーラをフルに使って
16ビットのカウンタになるはずだから、システムクロックが20MHzなら
1 / 20 000 000  *  65536  =  0.0033 秒にならないんですか?
877名無しさん@1周年:02/11/28 18:17 ID:sk5QEneT
PICのタイマに入るクロックはfosc/4ですので、プリスケーラーが1:1でも
5MHzです。よって、0.2μsec×65536=13.1072msecとなります。
あれ?なんで12.8msec??
878名無しさん@1周年:02/11/28 18:30 ID:sk5QEneT
>>877
何かいてるんだ(^^;)逝ってきます・・・

879876:02/11/28 18:40 ID:z+SBydLF
ああ、やっぱり 1/4になるんですか。
だとすると >877さんの書かれたような計算になりますよね。
そう、そこでまた疑問なのが、13.1072msになってしまうんですよね。
なんで12.8なのか・・・
880876:02/11/28 19:58 ID:z+SBydLF
しかも今、割り込み入るとカウンターをインクリメントして
カウンター100で液晶に文字出すようにしてストップウォッチで
測ってみると、約3.35秒です・・・

すると約33msでオーバーフロー・・・??
もうダメッポ
881877:02/11/28 20:02 ID:sk5QEneT
帰ったらPICの資料さがしてみます。PICのプリスケーラ・ポストスケーラの仕組み忘れた
すんません、最近はAVRなもんで
ところで発振子に何使ってます?
#やたー877ゲット(w
882876:02/11/28 20:28 ID:z+SBydLF
877さんすみません!
>>880はなぜか間違いですた・・・。疲れてるかも。
カウンター値を直接表示させるようにしたら
0 から 1000までほぼ13秒強です。
>>877 の式で良いっぽいですね。

発振子・・・ううすみません厨房なんで名前までわかりません。
図面みても書いてないです。青くて丸い三本足のヤツ・・・
秋月のPIC-ICEキットに付いてるやつと同じなんだけど
取り説もないな・・・。
883名無しさん@1周年:02/11/28 20:53 ID:SUQoLSPX
>>882 青くて丸い三本足のヤツ・・・

たぶんセラミック発振子ですな。この名前でぐぐってみな。
884877:02/11/28 21:47 ID:EfqjAS0F
今後閑さんの本見ている。
プリスケーラー4bit,ポストスケーラー4bit、カウンタ8bitで
たしかに16bitですね。プリスケーラーに入るクロックもfosc/4でよさそう。
結局値は>>877でいいと思う。
セラミック発振子なら誤差0.5%ですから大きな狂いはなさそうですね。

>>882
結局13.1msでいいのね


885876:02/11/28 22:28 ID:6qZQCqN8
>>883
あぁ・・・そうそうそんな名前ですた

>>884
いろいろありがとう。これで安心して次へ進めます!
886名無しさん@1周年:02/11/30 08:09 ID:e2zqCk4z
保守
887名無しさん@1周年:02/12/01 00:44 ID:h4z1I4Sb
PICは知ってるんですけどAVRってなんですか?
888名無しさん@1周年:02/12/01 02:51 ID:szAoZSxG
どちらもワンチップマイコンです
889名無しさん@1周年:02/12/01 06:57 ID:KAQn2TWW
>>887
AVRってのはアナル・ヴァギナ・レイプの略です。
890AVRファンクラブ:02/12/01 09:12 ID:c2WjDDTu
調べてみたら、定電圧電源ってAVRと略するみたいですね。
http://www.aa.wakwak.com/~ja1cvf/avr/avr1.html
AVR-0なら知ってる
http://www.google.co.jp/search?q=%83%70%83%67%83%8C%83%43%83%6F%81%5B%81%40%41%56%52&hl=ja&lr=&num=100
こんなのもあるね
http://www.avr-net.com/
ボイスレコーダー(盗聴器?)なAVR
http://www.pi-pi.jp/contents/avr-1200w.htm
他にもパナのビデオセレクターとか
891名無しさん@1周年:02/12/01 09:24 ID:zd/tdzyf
一年程前は、AVRで検索するとそんなのばっかしかでなくて
ちょっと困った思い出がある。
892ЯVА:02/12/01 11:27 ID:FCIxz23R
>>887
>
>          Enhanced RISC Microcontrollers   ← R
>
>                Alf-Egil Bogen        ← Aさん
>                Vegard Wollan        ← Vさん
>              ATMEL Corporation
>      ATMEL Development Center, Trondheim, Norway
>
>  High level languages (HLLs) are rapidly becoming the standard
> programming methodology for embedded microcontrollers(MCUs),
> even for smaller 8-bit devices. The C language is probably the most
> widely used HLL in MCUs, but will in most applications give an increased
> code size compared to assembly programming.
>  ATMEL identified the need of an architecture developed specially
> for the C language in order to reduce this overhead to a minimum.
> The result is the ATMEL AVR MCU, that in addition to the optimized
> code size, is a true single cycle RISC (Reduced Instruction Set Computer)
> machine with 32 general purpose registers (accumulators) running
> 4-12 times faster than currently used MCUs.
>
893名無しさん@1周年:02/12/01 20:55 ID:huyQqQn1
なーるほど、「AlfさんとVegardさんちのRISCプロセッサ」ですか。
894名無しさん@1周年:02/12/01 22:09 ID:R2n3MvQt
PIC16F873のSSOPパッケージの物を探してるんですが、
どこか置いてる店をご存知の方いらっしゃいませんか?
895887:02/12/01 23:14 ID:h4z1I4Sb
>>888
プログラミング言語の違いとかあるんですか?
PICはアセンブラ言語とC言語があるみたいですけど.
あとどっちが一般的に性能がいいんですか?
それに対するコストパフォーマスとかは何か違いとかありますか?

>>889
なるほど…そそる名前ですね.次からは是非AVRを使ってみようと思います.
その後のサービスとかよさそうですね.
896887:02/12/01 23:19 ID:h4z1I4Sb
>>892
なるほどAとVさんが作ったんですか.
言語は主にCですか.
897名無しさん@1周年:02/12/02 01:19 ID:uJHY7E0Z
10×20LEDをPICとデコーダで光らせようとしています。

そこで質問なんですが(というか確認ですが)
3-8デコーダと4-16デコーダひとつずつ使うことで
20のラインをカバーすることは可能ですよね?

PICから出力 → 3to8 → 4端子は 4to16 残りはそのまま使う
いかがでしょうか?
898名無しさん@1周年:02/12/02 01:57 ID:/HJab+83
>>895
http://www.mtl.t.u-tokyo.ac.jp/~iizuka/avr/
ちょっと古そうだけど、大胆なタイトルのこのサイトがPICとAVRの比較には便利。
他にも「PIC AVR 比較」でぐぐってみるとたくさん見つかります。
http://www.google.co.jp/search?q=%50%49%43%20%41%56%52%20%94%E4%8A%72&hl=ja&lr=&num=100

こんなとこかな?
高速動作(8MHz-AVR=32MHz-PIC相当.)
PICで面倒なバンクがない
  高級言語使うなら問題ない?
演算に使えるレジスタが豊富
  8bit即値演算可能レジスタ16個(うちインデックスとして使える16bitレジスタ3)
  8bit即値演算はできないレジスタ16個
書き込みが楽
  ボードから外さずにプログラム書き込みができる。書き込み用電圧不要
高級言語もPICに引けを取らない(gcc,CodeVisionAVR(C),BASCOM-AVR(BASIC),FASTAVR(BASIC))
  http://b2c-1.rocketbeach.com/~jcl/index.html
  #あ、C8051F300ってのも面白そう

899名無しさん@1周年:02/12/02 02:43 ID:/HJab+83
>>897

?ちょっと意味が分からない〜以下的はずれな解釈ならごめんなさい。

3to8で8本の出力を得て、そのうち4本を4to16に通して16本にして使うと
いうならだめじゃないでしょうか。
この場合4to16に与えられるデータは0,1,2,4,8しかないので、5つのLED点灯
しか制御できません。結局点灯できるLEDは9個だけ、それも4to16にゼロが
与えられている時は3to8の他のbitが点灯していると思われますので、これは
重複点灯になり使えません。

結局3本3bitの線で20の情報は表現できないと言うことです。
4to16と3to8を用意して下位4bitを4to16に、下位2bitを3to8にそれぞれ入力して、
5bit目がONなら3to8をenable,4to16をdisableに、
5bit目がOFなら3to8をdisable,4to16をenableにすればいいことになりそうです。
74137/74154なら、137のG1に5bit目を入れ、74154のG1/G2に5bit目を入れればいける?

処理時間に余裕があるなら164を3つ並べて24bitシフトレジスタを
作るのが楽かも。シフトレジスタならPICからの線は2bitですみます。

900名無しさん@1周年:02/12/02 03:32 ID:jrsOFysH
シフト中のデータがダダ漏れするといかんと思うので
ラッチが欲しい
901名無しさん@1周年:02/12/02 05:45 ID:eIE04VO8
>>900
ライン(10個のLED)単位の選択の部分みたいなので
ラッチなしでもいいかなと思うのだが
1→2→4→8→16・・・・しかしないし
ラインの10bitのLEDをシフトレジスタでやるならラッチいるね
902名無しさん@1周年:02/12/02 10:02 ID:nljjC+5g
漏スレに書いたネタなんだけど、PICとかAVRで、昔のGAMEインタプリタを稼動させる事の
意義と実現可能性についてなんですが、液晶は秋月の2行液晶(ケチ)
キーボードはPS/2キーボードを接続、カセットインターフェース搭載
っていう感じで、どんなもんでしょうか?

903AVR:02/12/02 10:36 ID:maD5enZQ
>>897

         ←── 全32本(2本余り)──→
         ┃     ┃     ┃     ┃
         ┃  3  ┃  3  ┃  3  ┃ 374など出力の強い
 RB0〜7 ━┻━ 7 ━┻━ 7. ━┻━ 7. ━┛ ヤシで電流的仕事も
             4      4      4     させれば大安。
            ↑        ↑     ↑
 RA1本クロック ─┴────┴───┘




 ラッチ付ラインデコーダ137など、テキサスの 捨てたすリスト(生存者名簿)
に無いICは国産品いつまで大丈夫なんでしょ。使いたいものがタイトだからと
言われることが多くなってきたような‥
904名無しさん@1周年:02/12/02 14:14 ID:3ccpZyK0
>>903
LED数は40個(20x10)では?これで全LEDつけるにはあと1つ374がいる
それにしてもこれは感動しちゃった。
4bitシフトレジスタ×8本のように動くのね
905904:02/12/02 14:46 ID:3ccpZyK0
あはははは・・ねぼけとる(夜勤明けと言い訳しておく)。20x10=200だ
20x10のマトリクスで動かすなら20+10=30のIOあればいいんだからこれでいいのか
906名無しさん@1周年:02/12/02 15:17 ID:74/d3SrT
>>903
部品の収束ね・・・ま、その為のCPLDでしょうね。

所で、10x20のLEDだとダイナミック点灯になるから
スキャン数xLEDの規定電流と言う計算が必要では
ないか?
それプラス、桁が全点灯してる時のドライブ電流も
考慮しないとならんからドライバ回路は別設計に
なるものと思われ。
907名無しさん@1周年:02/12/02 20:29 ID:JVF8V1zs
PICとかAVRとかできると就職のときに好印象あたえられるものですか?
てっか企業は製品にPICとかほんとに使ってるんですか?
908名無しさん@1周年:02/12/02 20:30 ID:JVF8V1zs
なんか日本語変でした…
909名無しさん@1周年:02/12/02 20:43 ID:3ccpZyK0
>>907
そこらへんの家電あけてみたら?PIC,AVR以外にもいろんなマイコンがある
たぶん、どのマイコン使うことになってもすぐ把握できるような基礎としてなら
PICとかAVRが役立つんだろうと思う。PICやAVRだけできてもだめなんでは?
910名無しさん@1周年:02/12/02 23:04 ID:ux33eaXR
74HC595
911名無しさん@1周年:02/12/03 00:11 ID:0jUS/ugJ
>907
履歴書に嫁入り道具をいっぱい書くのが好きそうだのう。
ヲタの印象が強くなると逆効果なんだが。
912ЯVА:02/12/03 07:56 ID:+QSKDzI4
>>906
 スンマセンうっかり仕事でやった小さなアレイ(高輝度)で考えてました。秋葉原で昔
から売っている10×10のタイプなら電流ドライバ要りますね。

>>897
 もし転送処理が何かの処理で手間取って 転送途中に無関係なドットが薄く見え
てしまう場合は RA出力のクロックを374のOEコントロールにも接続して表示中
はLow一定、転送中は細い負パルス(bcf portA,bitして直ぐにbsf portA,bit)とす
ればかなり軽減されます。(電流ドライバ次第ですが)
913名無しさん@1周年:02/12/03 20:39 ID:zgM/waMb
以前に電気の質問スレッドで質問した者です、今AT90S2313のアイドルモードで悩んでます。
アイドルモードの変わりにNOPで回せば完全に働くプログラムをアイドル
モードに変えたいのです。EXTINTとターマー割り込み
両方を試しても結果は同じで10回中2,3回ハングアップします。電源は約4.6V
周波数は4MHz。
それから内部RAMを越えるデーターを記録するにはどうすればいいでしょう。
EEPの用途もよく分からないので教えてください。
914名無しさん@1周年:02/12/03 22:50 ID:rtLWnyje
>>913
一応聞いとくが、マニュアル類は熟読したか?
取り敢えず質問って言うのでは何も解決しない。
915名無しさん@1周年:02/12/03 23:49 ID:Il1hZdLf
>>913
とりあえず関係ありそうな部分だけでも提示しない?
現象だけ書いても誰も判らないと思う。
アイドルモードとパワーダウンモードを間違えたような話じゃない限り
現象だけ書いてもこれだけの情報では誰も判らないと思う。

割り込みによるタイマ割り込みやINT割り込みでLED点滅プログラムを
作って、メインルーチンでスリープ掛けるような小さなサンプル
プログラムを作って、それでもだめならそれをだしてみては。

916名無しさん@1周年:02/12/04 00:04 ID:eTGC/sYa
>>913
EEPROMについては・・・使い方はデータシート読めばいいとして、
存在意義を聞いているのでしょうか?普通は終了時変数を保存し次回
その値を使う必要がある場合その保存のためとか、時々変更する必要が
ある定数の記憶などに使うと思う。読み書きの面倒さ、書き込みの遅さ、
書き換え回数制限を考えるとSRAM変数領域の代わりには使いにくい。
917名無しさん@1周年:02/12/04 03:37 ID:4LEiiK5i
現在、PIC16F877でAD変換された結果を、
USART非同期シリアル通信でPCに転送するということに
挑戦してるのですが

   (AD変換処理)
   (シリアル送信可否をTRMTで確認)
   MOVF    ADRESH,w
   MOVWF   TXREG
   (AD変換処理に戻る)

のようにして送信してるのですが、
変換結果が、上手く受信できません
(バイナリの形でも不可解なデータばかりが受信されてます)

なるべく、自然2進数0,1の形でデータが欲しいので
そのまま送信する形にしているのですが
どうすれば、良いかヒントだけでもいただけないでしょうか。。。

マイコン自体、10年前のZ80でいじったきりで
現在の様々な機能付加には驚かれます(^^;
918名無しさん@1周年:02/12/04 03:52 ID:mV1sZunH
SPBRGレジスタの値とか
ADCONレジスタの設定とか
AD変換のアクイジョンタイムの確保とか
…どうでしょか
919名無しさん@1周年:02/12/04 04:42 ID:OtfbdFbL
>>917
一応聞いとくが、マニュアル類は熟読したか?
取り敢えず質問って言うのでは何も解決しない。
920917:02/12/04 05:23 ID:4LEiiK5i
お返事有難う御座います

PIC16F877で
20MHz駆動 9600bpsで送信したいので
SPBRG = 81h
ADCON0 は Fosc/32 ch0のみ
ADCON1 は RA0のみをAD変換のチャンネルにしています
AD変換、送信の後 1秒ほど
待機時間を持たせてるので十分だと思います

ソースは 
http://210.153.114.238/img-box/img20021204051210.txt
に置かせていただきました。

待機の時間と位置、転送速度、Bank、各設定を見直したのですが
八方塞状態で。。。。本当に申し訳ないです
921v:02/12/04 05:29 ID:KiP6kvDg
922917:02/12/04 05:43 ID:4LEiiK5i
度々申し訳ありません

参考として PIC16F87xデータシート
PIC ワンチップマイクロコントーラ誌 と
関連がありそうなホームページ 
読ませていただきました

さすがに熟読とまで自信を持っては言えませんが、
関連サンプルコードや、資料は読ませていただいたり
動作させていただきました

あとはPIR1,PIE1、INTCONなどが関連項目として上がっているので
そちらも初期化が必要なのかと疑って、試行錯誤しているのですが。。。
923名無しさん@1周年:02/12/04 08:57 ID:z9xeTwe+
>>917
AD変換自体は問題ないですか?
まずはAD変換値ではなくループ回して0〜255を送信テストしてみませう。
それでおかしければUARTだし、それがまともならAD変換。
924ЯVА:02/12/04 12:57 ID:bSPxcyjB
>>922
 ADconv1レジの設定でAD変換基準電圧=外部入力を設定してますが、
RA2(Vref+)とRA3(Vref−)には何を入れてますか?
アナログ入力RA0には何を入れてますか?何か直流ですか、何ボルトですか。

 ポートBにADresultのHを出して観測してるようですが、そのデータとPCが
受信したデータは全くデタラメなんですか?
925ЯVА:02/12/04 12:57 ID:bSPxcyjB
>>913
 スリープさせないでプログラムがちゃんと動いてるそのとき割り込みは使っ
てるんですか。
スリープに入る前にウオッチドッグが邪魔しないような配慮はしてますか?
スリープの時間とかを知りたいですね。
あと、その障害を聞くと是非聞きたいのが、発振素子はひょっとして水晶振動子
か?です。水晶は同調Qが大きいので発振器を止めても振動エネルギがずーっ
と残って 次回の発振開始のとき回路が立ち上がる電圧スイングとケンカして
しばらく発振が安定しないです。
これ私がPICを始めた最初の頃ぶつかった現象でした。
ためしにアイドルモード(発振器が止まらない)にしてみたらいかがでしょう。
926913:02/12/07 01:38 ID:nTF64pUs
お騒がせして申しわけありませんでした。さきほど解決しました。原因はWDRの
実行回数が不十分でした。
最終的な目的はパワーダウンモードです。しかしパワーダウンでは全然動かず
アイドルモードならかなり動いたのでこちらで調べました。これでアイドルモード
が使えれば電流が減って一歩前進します。しかしパワーダウンに変えるとやはり
駄目です。これが水晶を使ってる事が原因ですか。オシロで見ても複雑な模様が
チラチラしてるだけでよく分からない。明日セラロックが手に入るので交換してみます。
927名無しさん@1周年:02/12/07 06:51 ID:piJySaXt
パワーダウンモードでのINT割り込みはどんなモードでどんな外部信号で
行っていますか?充分長いレベル割り込みが使われているでしょうか。
928AVR:02/12/07 07:40 ID:B/ptROmK
>>926

 スンマソン、925はスリープやアイドルを他チップと間違えた文章になってました。
発振をオシロで見ると綺麗なんですか。単純な exponentで発振が育ってな
くて変に変調がかかっとようなうねりの波形なら容疑濃厚でしょ。スリープに
入る前にどこかのポートにパルスを一発出してオシロのトリガにすれば
チラチラせずに観測できると思います。たぶん発振振幅が完全に減衰する
前に次の周期が始まってるのではと。
試みに割り込み周期を減衰するまで長くしてみてエラーが消えれば確定的。
もし周波数精度にこだわらないなら水晶をやめた方が良いと思います。
>903
強いたって精々50mAくらいでそ?トランジスタ入れるのが吉
930名無しさん@1周年:02/12/07 20:37 ID:zsHl2qe5
20Mhz/4でSPI通信やると、どのくらいで通信完了するんですか?
931名無しさん@1周年:02/12/07 22:19 ID:zsHl2qe5
PIC応用ガイドブックをよみ始めたんですけど、
dsPICってもう発売してるんですか?
932名無しさん@1周年:02/12/08 00:08 ID:DUBU0rkv
>>931
>>930
MicrochipのHP見たの?
データシート読んでるの?
933名無しさん@1周年:02/12/08 03:45 ID:RAhX9TlH
質問なんですけど
AVRを使ってるんですが、
発振子の外部につけるコンデンサの値ってどのくらいがいいんでしょうか?
計算方法とかあるんですか?
934名無しさん@1周年:02/12/08 11:17 ID:atk4OB00
>>933
データシートには書いてないけど、appnotesにある
http://www.atmel.com/atmel/acrobat/doc2521.pdf
AVR042: AVR Hardware Design Considerations
このへんどう?最近追加されたみたいね。
結局一般的に言われている22pFでいいということでしょうか?
935名無しさん@1周年:02/12/08 12:34 ID:hQ5TDf80
>>933
じゃ、「コンデンサ内蔵の3本足のセラミック発振子使え」と、こうなる。
936名無しさん@1周年:02/12/09 18:48 ID:HtLFqXUh
質問させてください。
PICでアセンブラを使って掛け算したいのですが、いい方法ないですか?
実はバイクのトリップメーターを4桁カウンタで作ろうと思うのですが、
例えば、タイヤが6回転かしたら1カウントするというようにしたいのですが・・・。

937ななし:02/12/09 19:05 ID:eLKQv0Gr
>>936
2進数の筆算をやってみてください。そして、その通りのコーディング
をすれば掛け算になります。
では頑張ってください。
938名無しさん@1周年:02/12/09 19:24 ID:Yk8+oGlB
>>937
おー、その説明に萌えてしまったよ。
わり算のアルゴリズムを理解するのにはやっぱり筆算が一番だったなあ。

ところで6回転で1カウントするだけならかけ算なんかせずに、
変数を1つincして6になったらトリップをカウントアップするだけで済まないか?
939名無しさん@1周年:02/12/09 20:03 ID:xqxMygCG
その前に、その処理をするのに何故掛け算が必要なのかが解せん。
割り算なら解るのだが。
940936:02/12/09 20:14 ID:HtLFqXUh
レスありがとうございます。
割り算でもいいと思うのですが、例えば、タイヤの週径が1.74mで、
6回転すると(6*1.74=10.56m)、1桁目(10m)が1カウントする
ような感じで考えていたのです。
941名無しさん@1周年:02/12/09 20:31 ID:xqxMygCG
なるほど。でもそれじゃちょっと面倒では?アルゴリズムを練り直した方が・・・。
例えば、タイヤの円周を簡便に1.75mとしてしまい、
1周ごとにカウンタに1.75*4である7を加えて、
表示するとき4で割れば簡単にm表示にならんかな?
942名無しさん@1周年:02/12/09 20:55 ID:rZLnq7VF
例えばABCD.EFGH(m)と固定少数にして1回転置きに進む距離を
足してくだけで良いのでは?
表示はABCDの桁だけ使えば良いし、誤差減らすなら少数以下を
増やせば良いし。1桁1バイトならソフトウェアも簡単w
943938:02/12/09 22:20 ID:k3+w2FFl
あとで微調整をすることを考えると>>942がいいな。
足し算もunpackedBCDでやっちゃうんだよね。
944936:02/12/09 22:53 ID:HtLFqXUh
だめだ〜。まだ、PIC初心者なので、理解をこえてます。
でなおしてきます。
945名無しさん@1周年:02/12/09 23:38 ID:k3+w2FFl
>>944
もう少しがんばれ、少なくともかけ算より簡単な話だよ。
ファイルレジスタ上に例えば7つのレジスタを確保する。
それぞれ、万千百十一の位及び1/10,1/100の位に割り当てる。
(仮に、それぞれ万千百十一割分と漢字の名前つけとく)

最初に万千百十一割分の各レジスタをゼロクリア
タイヤが一回転する毎に
[分]=[分]+5
[割]=[割]+7
[一]=[一]+1 (1.75をたしたことになる)
桁上がりのチェック
[分]≧10なら[分]=[分]-10、[割]=[割]+1
[割]≧10なら[割]=[割]-10、[一]=[一]+1
[一]≧10なら[一]=[一]-10、[十]=[十]+1
    :
    :
  用意した桁数繰り返し
表示したいときは既に桁別の数値になっているから楽勝。
表示したい桁を7セグLEDのパターンに変更するなり7447を通すなりして
表示すればおしまい。

で、これをPICに乗せるのはPICのお勉強がいる。がんばってねー

946936:02/12/10 00:29 ID:stQCCulK
>>945
ご指導ありがとうございます。
分]=[分]+5
分]≧10なら[分]=[分]-10、[割]=[割]+1

[割]=[割]+7
[割]≧10なら[割]=[割]-10、[一]=[一]+1

[一]=[一]+1
[一]≧10なら[一]=[一]-10、[十]=[十]+1
という様に考えていたのですが、
まとめて桁チェックした方がよさそうですね。
頭がかたいなぁ・・・。すみませんデス。
947名無しさん@1周年:02/12/10 17:39 ID:MBmDl702
アルゴリズムの話とは離れてしまうのでスマンけど
トリップメーターにするなら、キーをOFFにしたりエンストしたりで
ゼロクリアしちゃったら悲しくない?(w
EEPROMをうまく使うとか、勉強しながらそのへんも考えていけると
楽しいね。
948名無しさん@1周年:02/12/10 19:25 ID:6TuC6LJr
>まとめて桁チェックした方がよさそうですね。
見ててきれいなのは>>945だが、プログラムがちいさくなるのは
>>946だと思うよ。見やすい方がわかりやすいかと思って
まとめちぇっくにしてます。
速度はそれほど要求されないから、

足す数をmovlwでwレジスタに入れてコールすれば、

足される桁=足される桁+足す数(w)
足される桁=足される桁+前の桁からの桁上がり
足される桁≧10なら
  足される桁=足される桁-10(足される桁+246)
  前の桁からの繰り上がり(次の桁用)=1
足される桁<10なら
  前の桁からの繰り上がり(次の桁用)=0
足される桁をwに入れて
Return
  
ようなルーチンを作って、
足される桁=[分]
movlw 5
call 足してけたあがり
[分]=w
足される桁=[割]
movlw 7
call 足してけたあがり
[割]=w
ってな感じでできるようにすればすっきりするかな。

試しに作ってみようとしたが、PICのアセンブラむずかしぃ・・・
949936:02/12/10 21:07 ID:stQCCulK
ためしに作ってみたのですが、初心者ということで変なところがあるかもしれません。
最初にCOUNT1〜8 (1桁〜8桁)、COUNT1K〜3K(タイヤ1回転で加算される3桁数字)
宣言してパルスが入ると、
COUNT_UP
     MOVF   COUNT1,w     ;COUNT1→w
ADDWFCOUNT1K,f;COUNT1+COUNT1K→f
MOVFCOUNT2,w;COUNT2→w
ADDWFCOUNT2K,f;COUNT2+COUNT2K→f
MOVFCOUNT3,w;COUNT3→w
ADDWFCOUNT3K,f;COUNT3+COUNT3K→f

MOVFCOUNT1,w;COUNT1→w
SUBWFDEC10,f;DEC10-COUNT1→f
BTFSCSTATUS,C;DEC<COUNT1?
GOTOCOUNT_UP1;NO GOTO COUNT_UP1
MOVFDEC10,w;YES DEC10→w
SUBWFCOUNT1,f;COUNT1-DEC10→f
MOVLWD'1';1→w
ADDWFCOUNT2,f;COUNT2+1→f
950936:02/12/10 21:08 ID:stQCCulK
COUNT_UP1
MOVFCOUNT2,w;COUNT2→w
SUBWFDEC10,f;DEC10-COUNT2→f
BTFSCSTATUS,C;DEC10<COUNT2?
GOTOCOUNT_UP2;NO GOTO COUNT_UP2
MOVFDEC10,w;YES DEC10→w
SUBWFCOUNT2,f;COUNT2-DEC10→f
MOVLWD'1';1→w
ADDWFCOUNT3,f;COUNT3+1→f
                 ・
                 ・
で表示は、COUNT4〜8という感じで作ったのですが、普通のカウンタの動作になって
しまってます。なんでだろ・・。
951936:02/12/10 23:27 ID:stQCCulK
タブのスペースがなくなって見づらくなってる〜。
ごめんなさい。
952名無しさん@1周年:02/12/10 23:51 ID:LCmWbruu
ん?
  MOVF  COUNT1,w  ;  COUNT1→w
  ADDWF  COUNT1K,f  ;  COUNT1+COUNT1K→f
これって、COUNT1+COUNT1K→COUNT1kになってしまうのでは?
  MOVF  COUNT1K,w  ;  COUNT1→w
  ADDWF  COUNT,f  ;  COUNT1+COUNT1K→f
これならいい?
COUNT1k〜3kは定数なんだから、EQUで定数として宣言して
  MOVLF  COUNT1K  ;  COUNT1(即値)→w
  ADDWF  COUNT,f  ;  COUNT1+COUNT1K→f
が変数減っていいと思う。

ここもうーむ・・・保存場所間違っておかしくなる

  MOVF  COUNT1,w  ; COUNT1→w
  SUBWF  DEC10,f   ;DEC10-COUNT1→DEC10
  BTFSC  STATUS,C  ;DEC<  COUNT1?
  GOTO  COUNT_UP1  ;NO GOTO   COUNT_UP1
  MOVF  DEC10,w    ;YES DEC10(=DEC10-COUNT1)→w
  SUBWF  COUNT1,f  ;  COUNT1-DEC10=COUNT1*2-DEC10→COUNT
  MOVLW  D'1'    ;1→w
  ADDWF  COUNT2,f  ;  COUNT2+1→f
  ;DEC10-COUNT1→f

さらに、8.25+1.75=10.00のように、桁上がりは複数場所で起こる
この方法だと全ての桁上がりをチェックしていないよ。
953名無しさん@1周年:02/12/10 23:57 ID:LCmWbruu
COUNT1-10→COUNT1は、
movlw 246
addwf COUNT1,f
でもいけるよ
COUNT1≧10の判定は
movlw 246
addwf COUNT1,w
で、オーバーフローすれば10越えてる.

954これでどうだろ:02/12/11 06:49 ID:wla5yn5Z
 clrf ketaup  ;桁上がりよう変数
 movf C1,w   ;1/100桁
 movlw 5
 call keta_add
 movwf C1
 movf C2,w   ;1/10桁
 movwf ktmp
 movlw 7
 call keta_add
 movwf C2
 movf C3,w   ;1の桁
 movwf ktmp
 movlw 1
 call keta_add
 movwf C3
 movf C4,w   ;10の桁
 movwf ktmp
 call keta_add2
 movwf C4
 movf C5,w   ;100の桁
 movwf ktmp
 call keta_add2
 movwf C5
  :
955これでどうだろ:02/12/11 06:49 ID:wla5yn5Z
keta_add2:       ; 桁上がりだけチェックする場合はこちら
 clrw
keta_add:
 addwf ketaup,w  ; w=足す数(w)+ketaup(前の桁からの桁上がり)
 addwf ktmp,f   ; ktmp=足される桁+(足す数(w)+前の桁からの桁上がり)
 clrf ketaup   ; 
 movlw 246    ;  256-10
 addwf ktmp,w   ; 足される桁≧10ならあふれる
 btfsc STATUS,C  ; あふれたらこちら
 goto keta_under10 ; あふれなければこちら
 incf ketaup,f   ; ketaup=1(次の桁用)
 movlw 246
 addwf ktmp,f   ; 今度は本当に-10する
keta_under10:
 return
956936:02/12/11 22:53 ID:IspRLFyY
ありがとうございます。
しかし、これらを理解するのに時間がかかりそうです。
ふむ〜・・。アセンブラ難しいです。
957間接参照版:02/12/11 23:33 ID:wla5yn5Z
 clrf ketaup  ; 桁上がりよう変数クリア
 movlw p_keta  ; 桁データの置かれたアドレスの先頭を
 movwf FSR   ; 間接参照用レジスタにセット
 movlw 5    ; 1/100m処理
 call keta_add ; INDFについて処理を行う。keta_add内でFSRはINCされる
 movlw 7    ; 1/10m処理
 call keta_add ; 
 movlw 1    ; 1m処理
 call keta_add ; 
 call keta_add2 ; 10m処理
 call keta_add2 ; 100m処理
 call keta_add2 ; 1km処理
 call keta_add2 ; 10km処理
 call keta_add2 ; 100km処理
  :

keta_add2:       ; 桁上がりだけチェックする場合はこちら
 clrw
keta_add:
 addwf ketaup,w  ; w=足す数(w)+ketaup(前の桁からの桁上がり)
 addwf INDF,f   ; INDF=足される桁+(足す数(w)+前の桁からの桁上がり)
 clrf ketaup   ; 
 movlw 246    ;  256-10
 addwf INDF,w   ; 足される桁≧10ならあふれる
 btfsc STATUS,C  ; あふれたらこちら
 goto keta_under10 ; あふれなければこちら
 incf ketaup,f   ; ketaup=1(次の桁用)
 movlw 246
 addwf INDF,f   ; 今度は本当に-10する
 incf  FSR    ; 次にコールされたときは次の桁
keta_under10:
 return
958間接参照版2:02/12/11 23:41 ID:wla5yn5Z
あ、ketaupも消せるな。
 movlw p_keta  ; 桁データの置かれたアドレスの先頭を
 movwf FSR   ; 間接参照用レジスタにセット
 movlw 5    ; 1/100m処理
 call keta_add ; INDFについて処理を行う。keta_add内でFSRはINCされる
 movlw 7    ; 1/10m処理
 call keta_add ; 
 movlw 1    ; 1m処理
 call keta_add ; 
 call keta_add2 ; 10m処理
 call keta_add2 ; 100m処理
 call keta_add2 ; 1km処理
  :
 ; カウントする桁の1つ手前まで処理する(次の桁まで操作しているため)

keta_add:
 addwf INDF,f   ; INDF=足される桁+足す数(w)
keta_add2:       ; 桁上がりだけチェックする場合はこちら
 movlw 246    ;  256-10
 addwf INDF,w   ; 足される桁≧10ならあふれる
 btfsc STATUS,C  ; あふれたらこちら
 goto keta_under10 ; あふれなければこちら
 movlw 246
 addwf INDF,f   ; 今度は本当に-10する
 incf  FSR    ; 次にコールされたときは次の桁
 incf  INDF   ; オーバーフローがあったときは次の桁を+1
 return
keta_under10:
 incf  FSR    ; 次にコールされたときは次の桁
 return
959間接参照版2:02/12/12 00:00 ID:j8jc7xJp
すんません、
×btfsc STATUS,C
○btfss STATUS,C
960名無しさん@1周年:02/12/12 01:41 ID:NUKaC0yB
CPLDもこのスレでつか?
961名無しさん@1周年:02/12/12 02:17 ID:+yMZg27m
962名無しさん@1周年:02/12/12 12:16 ID:P7ibo/x/
その前の
> addwf INDF,w   ; 足される桁≧10ならあふれる
でwにINDF+246(INDF-10)が入っているから,
> movlw 246
> addwf INDF,f   ; 今度は本当に-10する

> movwf INDF,f   ; wに入ったINDF-10をINDFに入れる
だけでいいぞ
963936:02/12/13 14:51 ID:OPe1dzin
夜勤明けに来てみたらなにかすごい事になってます。
理解を超えてる〜。頭がパンクしそうです。
p_ketaって最初に定義しないとだめなのですか?
あと、FSRはSTATUS,IRPて設定しないとだめなのですか?
964名無しさん@1周年:02/12/13 18:36 ID:boUB6+ot
>>963
p_ketaはコメントの通り、equで定数として桁カウンターに使う領域の
先頭の番地を書いて置いてください。例えば0x20hから6バイトを使いたければ20h
IRPは使うPICのデータアドレス100hより後に何もないPICなら最初に0にしてあとは触らない。
Address=IRP×100h+FSRですから
http://www.picfun.com/memory03.html
この辺見て
965名無しさん@1周年:02/12/20 04:44 ID:14L+a5RT
MPLAB C18 demo v2,10になってタイムスタンプチェック入りやがった
…CCS-PCH買うか
966名無しさん@1周年:02/12/22 15:36 ID:1jpdSxBN
セラミック発振子が作動しないんですけどなんでですかね?
ほかの回路ではオシロで動いてるのが分かったんですけど.
967名無しさん@1周年:02/12/22 16:40 ID:ak9EfxDF
>>966
いつも思うが、そんな書き込みで解決方法が判るなら人生苦労しない。
ここはサポートセンターではない。まず必要と思われる状況説明は
できるだけ書き込むべきでしょう。
そんな気がないなら、こっちも答える気はないということで。
968名無しさん@1周年:02/12/22 21:02 ID:mUHF0PmR
>>967
原因が分かりました…グランドつなげてなかった…
969名無しさん@1周年:02/12/22 22:58 ID:IQMHw+qG
お尋ねします。

古い実験機器にコントローラーを付けようと画策しているのですが、
漫然とやるとI/Oが100本近くなりそうなのです。
(ただし、出来ればパラレル入力したいのは16ビットのみです。あとは低速な入出力ばかり)
AVRを使うとすると、どういう外部素子を使うとスマートにまとまりますか?
それとも、最初から何か別のCPUにしておいた方がいいですか?
970名無しさん@1周年:02/12/22 23:49 ID:qmkyGiE5
>>969
40ピンデバイスを3つ、ってのはだめか。

どのくらいの速度が欲しいの?
971名無しさん@1周年:02/12/23 00:01 ID:TgFopoRA
>>969
スピードとか必要ないならひたすらシリパラ変換するとか?

あとは今まだ多分売っている DesignWave Magazine のオマケ CPLD じゃ
ダメ?CPUじゃなくなってしまうけど。I/Oの数は多いよ。
972そろそろ次スレ要るかな:02/12/23 03:45 ID:yjDE9xHA
高速処理したいのが16bitなら、その分は外部素子使うより8515か35でも使う方がスマートそうです。
残りはシフトレジスタICでシリパラ変換でどうでしょ。164で10個以上か・・・
機器に取り込ませるための信号もいるの?
コントローラの入力は何?PCなのかキーなのか?
先に書いたIO100本って、コントローラ入力部も含めての話なのか?
このへんまで書けばいろいろ案が出そう。
973名無しさん@1周年:02/12/23 05:09 ID:utwd1b6/
相互に関連がない入力がたくさん
データはPCじゃなくロータリーエンコーダーとかスイッチなど
なら、1項目毎に1200とエンコーダをあてがう
簡単なブロック図きぼんぬ。
974969:02/12/23 07:38 ID:BOtf3rYA
>970-973
皆さん、早速ありがとうございます。

ほとんどがマンマシンI/Fとメカ制御なので、数十mSで応答すれば充分です。
ただ、ロータリーエンコーダー出力を16bでU/Dカウントする部分があって、
最高10kHzくらいを発生します。これはソフトで計数するのは
無理と思いましたので、74HC192でも使うつもりでした。
また、このデータを取りこむ速度は、速ければそれなりの
メリットがあるので、ここだけがパラレル入力したい部分です。

CPLDですか。使ったことがないので、何とも・・・

ひたすらシリパラ変換するのは覚悟です。その場合、
AVRと相性がよく、I/O数の多い素子があればいいのですが。

40ピンデバイスを3つ? 1項目毎に1200とエンコーダをあてがう?
なるほど、相互にシリアル通信して連携するわけですね。
うん、これが一番早道かも知れませんね。

多謝深謝
975名無しさん@1周年:02/12/23 09:55 ID:pcXjUhjm
これAVR+マンマシンインタフェースと対象機器、どちらに
エンコーダがあってどちらが読みとり側なんでしょうか?
勝手に機器側がエンコーダ出力を吐いてると考えます。
74HC192が使えると言うことはUp/Downそれぞれのパルスが
出ていて、チャタリングなどないと言うことですよね。でそれが最大10kHz。
その程度ならソフトウェアで楽勝ではないですか?
INT0/INT1でキャッチしてそのまま割り込みで2バイトのカウントアップ・
カウントダウンすればいいだけだと思う。
INT0_INTERRUPT: 
  ;割り込みcall
  ;信号変化から割り込み動作まで1クロック
  ;割り込みに4クロック
  ;割り込み先のRJMPに2クロック
  push r0  ;2
  in r0,SREG ;1
  push r30  ;2
  push r31  ;2
  lds r30,counter_mem  ;2
  lds r31,(counter_mem+1) ;2
  ADIW Z,1  ;2 INT0にはUpを入力
  sts r30,counter_mem  ;2
  sts r31,(counter_mem+1) ;2
  pop r31   ;2
  pop r30   ;2
  out SREG,r0   ;1
  pop r0   ;2
  reti   ;4

35クロック。8MHzなら4.4μsecですがどうでしょ?
ポートも2つしかいりません。
976名無しさん@1周年:02/12/23 10:03 ID:l+yqXZ+O
なんか全体像が読めないのでどう考えていいか分かりませぬ。
対象機器にどんな入出力があってそれをどんなマンマシンインタフェイスに
つなごうとしているのか、AVR内で制御する必要のある処理ってどんな処理なのか
支障ない範囲で説明キボンヌ。
977名無しさん@1周年:02/12/23 10:09 ID:BEn7QoR3
問題は16bitカウントよりその16bitデータをどこでどう利用するか?
AVR内部で何らかの制御に使うならAVRでカウントすればいいが
外部に送る必要があるなら、AVRなんか介さずに192で直接わたせばいい?訳で。
978名無しさん@1周年:02/12/23 10:41 ID:l3wtwn1q
PIC,AVR以外の話になるので、ちょっとアレですが、IOの数が多いとなると、
H8とかSH/4とだとどうでしょか?

CPLDを使うっていうのは興味あるので、解説希望。
(丁度デザインウェーブのアレは買いました。ダウンロードケーブルはヒューマンデータのキット購入予定)
979名無しさん@1周年:02/12/23 11:11 ID:3IlKpviw
実は足の数そんなに多くなくてもいい話じゃないだろうかと思う今日この頃
980名無しさん@1周年:02/12/23 11:28 ID:0AbJJsqo
あっという間に尽きそうな気もしたので勝手ながらスレ立てしました。
ここがなくなったら使ってください。
http://science.2ch.net/test/read.cgi/kikai/1040610345/l50
981969:02/12/23 15:09 ID:BOtf3rYA
うわ、またこんなにレスが・・・

機器は元々数多くのリレーで駆動されていたものなので、
それを「漫然」と置きかえると、操作スイッチなどと合わせ
100本近くなりかねないのです。
勿論、外部でエンコード・デコードしたら少しは減りますが、
その分ハード的な手間はかかるわけですから、最初から足数が
稼げるならそちらの方が得策かと思ったもので・・・

あと、ロータリーエンコーダーは今回、対象機器に装備するものです。
データはAVRに取りこんだ後、いくらかの演算を行いますので、
ソフト的な読みこみは最初からあきらめていました。
でも4.4μsecか・・・何とかなるかも。
順序として、そのあたりを最初に考えるべきだったようです。
「ハード的な手間」を避けたいはずなのに矛盾してましたね。

H8とかSH/4についても検索などしなくては。

いろいろとありがとうございました。
皆様のコメントをもとに、もう少し自分なりに検討してみます。
982名無しさん@1周年:02/12/23 15:31 ID:d8fUVJOK
>>975
Up/Downカウントが同時に来ないと決め打ちできるなら、
両方をDiode-ORしてINT0に突っ込んで、どちらかを別の汎用ピンに入れとけば
1つのINTでいける。別の汎用ピン=HiならDown処理、LoならUp処理を行うように
組み込めばいい。INTが足りなければ考えてみて。

ところで、入れるのは普通の?ロータリーエンコーダ??
192に入力できるようなチャタリングのない単純なUp/Down信号を吐く
エンコーダなんてあったっけ?なにか付加回路ついてるの?
983名無しさん@1周年:02/12/23 15:38 ID:lgm2siDw
PICをI2Cで結んでやればI/O増やせるヤン、って自分はそこまでやったことないので、誰か解説してくれ。
984名無しさん@1周年:02/12/23 15:55 ID:0UqsJeGo
そもそも結ぶ必要あるのかな
985>>982:02/12/23 16:22 ID:BOtf3rYA
付加回路つきです。
てい倍とUp/Downの分離回路が組まれ、そこで波形整形もされています。
そんなわけで、Up/Downは同時には来ません。
いろんな工夫があるものですね。
986971:02/12/24 02:11 ID:XgF68yhl
>>978
ゴメン、思いつきで書いただけなんで、詳細はあんまり考えて
いませんでした。
なにをしなければならないのか良く分かってなかったので、
考えようが無かったというか。
ぜいたくにシリパラのためだけに使って、制御にはAVRを使
うとかするのもIO稼ぐのにはいいかなーとか。

ダウンロードケーブルは作るのが安上がりかもしれませんよ。
あと、alteraがあのキットを購入した人向けに安く販売してい
るみたいです。
って、激しくスレ違いですな。すまんです。
987名無しさん@1周年:02/12/24 03:06 ID:90QrCHQL
>986
俺も思いつきだが、中にシフトレジスタとラッチを仕込むと
IOエキスパンダになりそうな予感がする。
で、あのCPLD最安値はどこでいくらだろ?
988名無しさん@1周年:02/12/24 04:48 ID:fsiPdCPp
>>987
この目的(IOエキスパンダ)ならシフトレジスタより>>903なんかがよさげ。
処理時間1/8、コードはそれ以上節減。(Disable→(outp-latch)n→Enable)
port3つですむシフトレジスタ+ラッチと違ってport10個(8bit+Latch+Enable)要するが
10個用意できるなら処理がとても簡単になりそう。
ロジックで作る場合配線が多いのがうっとおしいが、CPLDだとそのへんがいいんだろうなあ。

989名無しさん@1周年:02/12/24 06:11 ID:XgF68yhl
>>987
DesignWave Magazine を買うのが一番安いかも。
普通ではあの値段で変換基板込みでは買えないと思います。
そう思ったので私は5枚買いました(笑

AVRと組み合わせて使う予定です。TTLとかを組み合わせて
処理していたのをCPLDにやらせようかなと。
990名無しさん@1周年:02/12/24 10:34 ID:gHncJCPg
>>989
>普通ではあの値段で変換基板込みでは買えないと思います。
普通に(アマチュアが)買うと、どれくらいになりますか?
991名無しさん@1周年:02/12/24 13:49 ID:iTlxMmgm
>>988
マイコンの8bitportにシフトレジスタ(164や4015)をn個つないで、
共通のクロックでデータを送って最後に共通のEnableをかける。
これでn→4n or 8n拡張(マイコンポート自体も使うなら5n or 9n)
portの幅が8bitでなくても使える分374よりいい面もあるかも
992名無しさん@1周年
>>990
個人で通販出来るところを探したんですが見つかりませんでした。
もっと小さいのとかXilinxの物だったら買えそうです。

同じ物ではありませんが、以前買った時の値段から判断して、付
録の物がもし買えるとするとCPLDが3〜4,000円ぐらいするかと思
います。変換基板が1〜2,000円ぐらいかな?