秋月のPIC16シリーズDIP品限定ピン数別評価(先頭のvは値下げ,-は維持)'2010年4月24日更新版
v40ピンは-◎16F887 \200
v28ピンは◎16F886 \190
ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHzとフルサポート
新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを
20ピンはF690のバリエーションモデル多.価格差が小さいからF690か,OPアンプのF785.スキルあるなら18F14K50も検討しては?
-◎16F690 \210 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ
-○16F689 \180 F690からeCCP機能削られた
-×16F687 \180 さらにF689を2Kwと半分に
-△16F677 \170 さらにF687からeUSARTも削られた
-○16F685 \190 F690からSSP&eUSART機能が削られた
-◎16F785 \180 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載ってのはいいね
18ピンは種類は多いけど選択の幅は狭い。F88かいっそ20pinにするとか
v×16F84A \250 機能無,1Kw,いまさら不要 10個以上なら1個¥220
-△16F648A \180 CCP有,USART有,4Kw,内蔵4MHz,同じ値下組のF819と比較するとキツイ
-△16F628A \160 F648Aの2Kw版,売りが値段だけだと厳しいかな
-×16F627A \160 F648Aの1Kw版,売りの低コストで628Aと並ばれると・・・
v◎16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzとGood
-○16F87 \200 F88にADC無い,下のF819と比較するとADCで負けフラッシュ4Kwで勝ちダケド
-○16F819 \180 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,値下げで価値が急上昇!
-×16F818 \200 F819の1Kw版,上位のF819の値下げで不要に
-◎16F716 \110 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意
14ピンはF688だね
-◎16F688 \160 ADC有,eUSART有,4Kw,内蔵31K-8MHz
-△16F676 \140 ADC有,1Kw,内蔵4MHz
8ピンはF683だと思っていたがF615も\100にしてはなかなか良い
-◎12F683 \150 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能
-○12F675 \120/130 ADC有,1Kw,内蔵4MHz ,環境によってはE/P版
-○12F629 \80 675のADC無(機能無しってこと),この値段ならチョット使うに便利
-△12F635 \120/130 機能無し,1Kw,内蔵31K-8MHz,環境によってはE/P版
-◎12F615 \100 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無し
-×12F609 \100 F615からADC,eCCP機能省かれてる
(参考)機能無,EEPROM無,12bitコア プログラム組む上で制限多し
-△16F57 \100 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら
-△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら
-△10F200 \70 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用
マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書にのってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない。
PICでUSBメモリを読み書きする簡単な方法は何
>>7 PICとパソコンをRS-232Cで接続して、パソコンに刺さったUSBメモリを
PICから読み書きする。
ほほう、なるほど
18F2550あたりを使うんだろうな
自分がホストになるサンプルはあんまり転がってないが
>>10 ホUSBスト
マスストレージクラス
ファイルシステム
面倒だな
でもPCとシリアル通信できても、利用範囲が狭いしな
データロガー的な用途ならUSBメモリの方がスマート
multi media cardの事例がいくらでも転がっているのに、なぜわざわざusb hostなど構築するのかと
小一時間質してやりたい。
LEDを点灯させる回路で1を出力すると点灯する接続と
0を出力すると点灯する接続がありますがどんなメリットデメリットがありますか?
>>14 全部のポートがトーテムポールなら1で点灯でもいいけど
実際はオープンドレインが多いと思うから
0で点灯に統一しておいたほうがいいと思う。
>実際はオープンドレインが多いと思うから
RA4だけじゃないの?
しかも最近のデバイスだと普通のトーテムポールだし。
17 :
15:2010/07/19(月) 01:24:09 ID:jVsRwZoU
>>14 そーりー
>>16の言う通りでした。
まったく別のデバイスとごっちゃになってたorz
論理さえ統一してあればどちらでもいいと思います。
>>14 PICに限らず、ICのデジタル出力は、例えトーテムポール出力(押し引きできるやつ)でも
High出力(吐き出し)に比べて、Low出力(吸い込み)の方が、大きい電流を流せた、という
特徴により、はるか以前からLowで点灯する回路が多く使われている。
しかし、近年のC-MOS出力では、吐き出しの電流でも 十分に大きな電流が流せるようになり、
High出力で点灯する回路も問題なく使えます。
そうなると、それらをどちらにするかは、思想的な話になります。
僕の場合はプログラムソースで、on=High=1を出力5Vとして扱ったほうが
思考が自然なので、H=LEDがonにして回路設計をしています。
マイコン入力も同様にSW on=Highで回路設計をします。
しかし、5V電源のC-MOS入力でも、TTLを意識してか、Low=0.8V以下、High=2.4V以上というのが多いので
ちょっとだけ注意しています。
バッテリーや電気二重層Cのバックアップ電源と外部電源とに分けて
外部電源でLED点灯させるなら'L'駆動の方が都合良し。
入力は内部プルアップがあるのでonでGNDが楽
吸い込みで使うとGNDピンに大きな電流を流すことになり、
同居しているADCに影響が出る。アナログGNDピンを持ってない奴では
H駆動で使ったほうが都合が良い。
スイッチは、人の手が近寄る部分の電位が浮かないよう、
端子の一方をGNDに繋ぐような、オンでLになるようにするのが基本だと思うが。
ま、なんにしても時と場合によるよ。
>>21 >スイッチは、人の手が近寄る部分の電位が浮かないよう、
>端子の一方をGNDに繋ぐような、オンでLになるようにするのが基本だと思うが。
これはどういうことでしょうか? ぜひ教えてください。
>>21 VREFが内部VCC参照だと、やはりADCに影響出ると思いますがどうなんでしょうか?
いずれにしても何を優先するかによって判断基準はことなりますね。
けちらないでトランジスタ外付けしろよ
>>24 賛成
マイコンのファンインアウトになんか期待しない。
趣味ならそれでいいけど、
量産は、部品を1つでも減らしたいものです。
部品を1つ増やすということは、部品の価格だけでなく、
それに纏わるコストがガンガン上がるようです。
>>26 量産前提なら全部の組み合わせで信頼性・安定性を評価して決定しな。
量産設計してるようなやつがPICすれやAVRスレで質問するとは思えないな。
>18
>しかし、5V電源のC-MOS入力でも、TTLを意識してか、Low=0.8V以下、High=2.4V以上というのが多いので
>ちょっとだけ注意しています。
これ気になったので調べてみたら、HとLでだいぶ違いますね
http://ww1.microchip.com/downloads/en/DeviceDoc/30487c.pdf P201〜 FIGURE 19-18 VOH vs IOH , FIGURE 19-20 VOL vs IOL
20mA流した場合 TYP値で、VOHは3.2V,VOLは0.44V(VDDとの電位差約4.5V)
Vfが3.5V程度の白色&青LEDはHigh出力(吐き出し)で20mA流すのは無理と…
電流とりたいなら、やっぱりLow出力(吸い込み)の方がよさそう
最近衛星について調べてるんだけど、PICがcubesatとかの小型衛星に採用されやすい理由ってなんだろう?
>>30 >HとLでだいぶ違いますね
出力の話をするのに、入力電圧について書かれた
>>18の引用をする理由がわかんないけど、
出力の押し引きの能力が、ピタッと同じというのはなかなか無くって、
ほとんどのものが、引きの方が得意になってる。
でもPICは20mA吐いても3.2Vもあるから優秀だよ。ほとんど対称インピーダンスと言ってもいいと思う。
H8なんて、0.1mA吐くだけで、0.5Vとか1Vとか、平気で落ちる。
また「大電流ポート」と銘打ってあるので見てみると、10mA引けるのが大電流だとか。
PICは優秀だと思う。LED程度なら直接吐いても全然平気。トランジスタも要らない。
くだんのH8でも、出力電圧が落ちるだけで、LED程度の電流なら吐けるので、
直接光らせてる。
「LEDの点灯=0」というのは、どうも直感的でないから嫌い。
>>32 論理なんて入出力ルーチンで隠蔽すればどっちでも変わらないよ。
>>33 a_port = xxxxで指示したいんだけどね。
例えば、LEDを吸い込みで点灯するように配線して、
a_port = 0xff; とやると、LEDは全部offになるような気がするけど。
temp_a_port =0xff;
a_port = ~temp_a_port; とかじゃないよね?
>>34 例えばLEDをON/OFFする関数を作れば関数を呼ぶ方ではポートの論理を意識
しなくて済むということ。
36 :
電脳死:2010/07/20(火) 08:30:49 ID:TWHIrzDt
>PICがcubesatとかの小型衛星に‥
・ルール(半導体の微細度)が粗くて宇宙線に強い?
・比較的単純(?)だから↑でのエラーや誤作動が少ない?
・68Kより8086が理解しやすかったみたいに開発しやすい?
どうなんだ
でもなんか自分のサットができるなんて面白いじゃん、消・厨ん時から自作ワイヤレスマイク仕掛けてたみたいに
今度は上空から‥ キューブじゃ解像度あるのは無理だな、複数で焦点を上げて超解像度やって窓から覗き衛星とか。
大人になったら素晴らしく面白いインフラが整っていたとさ♪
>>36 >68Kより8086が理解しやすかったみたいに開発しやすい?
ご冗談を。
38 :
774ワット発電中さん:2010/07/20(火) 18:48:57 ID:6NwPgTZK
>>37 同意。
インテルの8080から、Z80が出てきた時、技術屋は、欲しいものが全部手に入ったと思った。
それが幻想で、実はソフトウェアが如何に作り辛いか、地獄を見たので、まともなハード系の
技術屋、は8086のレジスタMapと命令の概略を眺めたとたん、即、屑籠に放り込んだ。
PICの16シリーズは、まあ限られたリソースで何が出来るかっていう、パズルみたいなもので、
Microchip社が商売なら、こっちも商売。これでどうやって必要な機能を作るかの知恵競べ。
良くあれでCコンパイラなんて物を作った人が居たものだと、感心する。
今のお勧めなら、初心者には、私ならPICの24Hシリーズを薦める。
もちろん、C言語限定で使う。
24Fは、dsPICの流れを汲む、何でも出来るハードを持った、万能CPU的な感じで、
そこから枝葉を刈り取って高速化したのが、24Hシリーズに見える。
Cが動けばどんな変態CPUでもかまいません。
てゆうか、自分は「刷り込み」されたヒナなんだ。
PICがお母さん状態。
昔は、80系がお母さん。
隣の母さんの方が美人でも移れないんだよねぇ。
何かする度にパズルみたいなバンク切替をさせられる苦行はオッサンの俺にはもう辛すぎる。
つうかアレ?PWMのテストパターンを書き込もうと買ったPICが入って無い。
・・・ほう、マ○ツ電波は俺に明日も熱波の中ダイエットさせたいと?
メタボ対策までしてくれるとは気が利いてる。
おっさんは今更Cを勉強したりできないしな
あんまり難しいICには手を出さない方がいいのでは
43 :
774ワット発電中さん:2010/07/21(水) 00:46:37 ID:6F5r/mtc
>>43 スイッチはRBPU=0にして内部プルアップ有効にするか
外部抵抗でプルアップかプルダウンしないとだめじゃない?
>>43 >RA1の電圧に変化がありません。
って、何で電圧を見たの? オシロスコープだよね? テスターじゃないよね。
>PORTA=0b00001111;
>PORTA=0b00000000;
って、一瞬で終わるよ。こんな感じ。
__|________(16.5s)______|____(10.0s)___|____・・・・繰り返し
あと
>>44の指摘通り。
細かいこと言うと、トランジスタへの抵抗の150Ωという値は、
どこから来たの?
>>42 オッサンでも PIC16C は使えるのだ。
「asmでも、basicでも、Cでも変わらんのです。
言語なんてみんな一緒。
エライ人にはわからないのです。」
このセリフ自体が親父だよな。
>おっさんは今更Cを勉強したりできないしな
おっさんが書いた本でCを勉強した世代かいな?
49 :
43:2010/07/21(水) 20:48:31 ID:6F5r/mtc
>>43さん
RBPU=0 というのは、プログラム中に入れればよいのでしょうか?
プルアップ・プルダウンについては調べてみます。
>>45さん
申し訳ございません。テスターでございます。
針が振れるかどうかの判断基準でございました。
>って、一瞬で終わるよ。こんな感じ。
ニンテンドーDSで、電気的にAボタンが押される回路を作っております。
これ程短い時間ですと、やはりノイズ扱いになって押された判定をされないでしょうか。
念の為、
PORTA=0b00001111;
DelayMs(500);
PORTA=0b00000000;
でも試してみたのですが、やはりボタンは押されませんでした。
>トランジスタへの抵抗の150Ωという値は、どこから来たの?
あるサイトの回路を参考にして作成致しましたので、
そのサイトの回路丸写しで、150Ωの抵抗を入れております。
急いでおりましたので、特に何も計算をしておりません。
この様な事を申し上げるのはタブーである事を存じておりますが、
回路製作・PICプログラムに関しては初心者でございます。
申し訳ございませんが、お力添えの程、宜しくお願い致します。
針式テスターは、反応が遅いので注意。でも0.5秒なら多少は触れるに違いない。
それでもピクリともしないなら、マイコンが動いていない。
>>43の言うように、入力を修正するといいと思う。
その後、RA1と150Ωの接続を切り離して、470Ωくらいの抵抗→LED→GNDとつないで、
LEDがピカピカと期待通りに店頭することを確認したほうがいいです。
DSに接続するのは、そこまで確認できた後だと思う。
トランジスタでDSのボタンを押すのは難しいかも。
リレーを使ってDSの回路と無縁にしてAボタンを押せば、行けそうな予感。
とりあえず、自分の作ったところは、その機能を確認してから
次のステップに行かないと、全体として うまくできないと思うよ。
シャント使う?
52 :
774ワット発電中さん:2010/07/22(木) 21:55:20 ID:xm1ZOONK
MCP1253 秋葉原で売ってるところ知らない?
53 :
774ワット発電中さん:2010/07/23(金) 00:30:36 ID:7U2gXrDl
Microchip Directで買えば?
54 :
774ワット発電中さん:2010/07/23(金) 13:17:32 ID:M1wlFljF
>>47 親父は。酸素欠乏症でがたの来た脳みそでも、必死に開発を続けようとする。
息子は、「こんな古くさいもの」、と、馬鹿にするのだが、じゃあ、息子は何か、
技術的に付け加えられる物を作ったかというと、試作品を動かすオペレータで
しかない。
私は、あの親父を尊敬する。痴呆老人になっても、エンジニアの魂を忘れてない。
もう私は、移り変わっていくasmや、オブジェクト指向がちがちのBasicに付いてい
くことは出来ないが、Cで書ける限り、組み込みコンピュータのプログラムは続ける
だろう。
最近はGUIでコネコネするだけでプログラムが自動生成されたりする
ご時世だしな
flowcodeのことかぁああああああ
PIC程度のコントローラーで、Cが難しいとか言ってる人って…
16F84Aを使っているのですがスイッチ入力待ちのループ中に
LEDを0.1秒点灯、1秒消灯を繰り返したいのですがどんな感じで書けば良いでしょうか
消灯中や点灯中にスイッチ入力チェックが停止してしまっては困るのですが
84Aでこのようなことは出来ますか?
>>58 全てを細切れにしてメインを一定周期でぐるぐる回す。
「一定周期」はタイマで作りメインで判定する。
メインは只のカウンタ制御の塊。
>>58 0.1秒間隔で割り込みするタイマーを作ればいい
タイマーの中でカウントアップさせておいて
OFFの時10までカウントしたらカウントを0にしてON
ONの時1までカウントしたらカウントを0にしてOFF
俺も始めたばっかりなんで間違ってたらすまん
> PIC程度のコントローラーで、Cが難しいとか言ってる人って…
少なくとも、16F以下では却って難しい罠
ページとか16シリーズの特性知ってないと厳しいわな
難しいというより16FでCを使ってみようという気にならない。
>>63 なして?
Compilercを使えば、バンク切り替えを気にしなくて済むじゃん。
それだけでも開発効率が上がるけど。
65 :
774ワット発電中さん:2010/07/24(土) 00:38:17 ID:BE6IfGZ9
>>64 16のCって、ある意味曲芸みたいなレジスタバンクの使い方してる。
アーキテクチャーからして、そうならざるを得ない。
ここぞというときに、インラインアセンブラを使おうとすると、頭の中は
大混乱。
18、さらに24は、非常にすっきりしてる。周辺も、もう3.3Vしか使わない
と決めてしまえば、数百円以内の価格差で、天国の世界にいける。
3相モータを回すのなら、H8かSHに転べばいいし。
>>59-60 タイマーを使って実現できました。
比率も
>>60さんの書いてくれた通り自由に設定できるようになりました。
タイマー便利ですね
レスありがとう
>>66 マイコンソフトは、
・割り込みが使える。(タイマー、UARTなど)
・1カ所に留まらないようなmainを書く。
この2点ができれば、ほぼ思い通りの物が作れます。
それがマルチタスクの原型なんだけどね。
<チラ裏>
マルチタスクって言葉は定義が曖昧すぎるので、俺は嫌いだ
</チラ裏>
レジスタバンク0は直接アクセス
レジスタバンク1〜3は間接アドレス専用にすれば
すっきりと書ける。bankisek FSR INDF
>>71 擬似マルチタスクって
マルチタスクを簡略化したものだろ?
だったらマルチタスクの原型ってのが正しいよね
結局シングルタスクだからって言いたいんだろう。
てか、マルチタスク論争は私ももうイイ。いいだしっぺ、ごめん
プロセッサが一つなのに切り替えでやってるのが疑似
複数のプロセッサで並列してるのがガチマルチタスク|プロセス|スレッド
じゃあPCもついこないだまで擬似マルチタスクだったってことか
プロセッサの単位はコアではない
>プロセッサが一つなのに切り替えでやってるのが疑似
何これ、わらった。
79 :
774ワット発電中さん:2010/07/24(土) 23:46:22 ID:EntcHt2g
マルチタスクってOSレベルの話じゃ・・・
80 :
774ワット発電中さん:2010/07/25(日) 10:25:36 ID:NIQ26cxa
またまたご冗談を
暑いよ〜
SOPのPICもチリンチリンだぜベイベ
意味わかんね〜よ〜
頭で考えるからわかんね〜んだ
そうだ、PICで風鈴作ろう
それだ!
風入力は何がいいだろう・・・
普通に軸とリングが接触したら検知とか。
(|) <リング
| <軸
札
せっかくのマイコン制御なんだから人が近づいたときだけ鳴る方がエコでしょ。
風の揺らぎで発電できればさらにベストか?
89 :
のうし:2010/07/25(日) 17:47:29 ID:MA9o/3i6
風鈴の重りをPICにしてそいつが適当なカップに当たるやうなやつにする。
ゴーモンされまくったPICはリードが曲がって無惨な姿になっている。
この風鈴キットは〇ネサスが販売しているとか。
tuitterが入るたびに鳴るとか。
ぶら下がったLCDにそれが表示される
> 風鈴の重りをPICにして
おまえというやつは・・・ネタにできそうじゃないかw
余韻部分はほぼ正弦波なんだけど、
アタック部分の金属的な音が計算では難しいんだよな
フラッシュ外付けして何パターンか用意するか
sinテーブルがあればFM音源で作れるんだが、
20MHzでも追いつくかどうか
オーバークロックしよう
dspicで作った事があるけど余裕だった>FM音源
新潟鹿です。
明日、聖地巡礼に伺います。
車が新潟ナンバーですが乗っているのは正真正銘の鹿です。
石なげないで下さい。
すみません
すっげ誤爆でした
∩ ∩
|つ ⊂|
丶っ_cノ
⊂ノ・ \
| __▼
|・(゚Д゚) <つまり新潟から車でPICを買いにアキバに来ると?
|(ノ |)
|・・ |
<丶・_ノ
∪ ∪
石のかわりにPICを投げてあげよう
例えば温度計を作るとして
ADコンバータで10bitの精度で読みとるから、
5Vを約1000分割で分解能は5mv、10mv/degなら0.5度程度の精度しか出ない
ところが、分解能の半分だけ高い電圧をサンプリングすると、
その上下の値が50%ずつの確率で現われてきて、平均すると分解能以上で読める
どのくらいアップするかというと、軽く数bitは増える
対象が安定してれば、ノイズの限界まで読める
>>102 > (非接続時3.8V ポート接続時1.2V)
んー、これが気になる。RC2/CCP1端子の入出力設定あってる?
LM358の供給電圧が単電源5V/0Vなら、高い方で3.8Vしか出てないのは納得できる。
ホール素子の特性がよく分からんけど、デジタル出力でいいんなら、
フルスイングできるLM319とかのコンパレータの方がいいのでは?
>>102 オペアンプをコンパレーターとして使ってるのに、出力がフワフワしてる時点でおかしいよ。
出力に設定してあって、Lになってて
358の過電流保護でクランプされてるとかじゃない?
>>102 です。皆さん、ありがとうございます。
当方オペアンプを使うのは初めての者で、適当な奴を選びました。
近場の部品屋で扱ってる「LM393」や「LM339N 」に変えてみます。
ポート設定ですが、ポートに電源電圧(5V)を流してやると
トリガが掛るので大丈夫だと思います。
オペアンプに罪はないと思うけどなあ。
その回路でONにならない基板に問題あると思うけど。
基板の結線とソフト、確認したほうがいいよ。
てゆうか、その回路(コンパレータ)でアナログ入力はおかしいよ。
inputにしてないんじゃないの?
outputでL出力にしてても5V直に掛ければ出力段が負けてHになるよ
>>108 LM358で、PICに対して0V〜5Vを出力する、というのはできません。
OPAMPは、電源電圧から1.5V程度は出力できないものなのです。
もしそれでも0V〜5VをPICに入れたいと考えるなら、次の2つ。
1. 「レールtoレール出力」と謳われているOP AMPを使う
2. LM358の電源電圧を5V→7V以上に上げる
1.の「レールtoレール出力OP AMP」でも、(電源電圧-1.5V)の出力範囲で、
ちょっと電流を吐くだけで、すぐ電圧が落ちてしまう。
いくら「レールtoレール出力」といえども、力強く美味しい出力は、
やっぱり電源電圧-1.5V以下の電圧のときだけです。
あと、回路図のLM358は、OP AMPとしての使い方でなくて、コンパレータとしての
使い方だけど、だいじょうぶだよね? トリガがかからない、みたいな事を言っているから
2値を期待しているから、コンパレータ使いで合ってると思うけど。
なんでCCP1の端子につないでいるんだろう。
・Input Captureがしたい。→ということは2値信号で入力したい。
・そのピンしか空いていなかった。
・特に意味はない。適当につないだだけ。
コンパレータは使わないな。10bitA/Dで何でも実装しちまう。
ヒステリシス処理もソフトで可変できるし。
>>115 AD空いてて、10bitで十分で、信号が十分遅くて、時間にも余裕があるならそれでいいけど。
>>112 -1.5V云々はCMOSオペアンプには関係ないのでは
同意
>>108で
>「LM393」や「LM339N 」に変えてみます。
と言ってるのに、LM358云々と・・・ずれた人w
だけど-1.5VされててもVIH満たすから、問題があるとすれば別の場所だよ
原因の切り分けもせずに闇雲に部品変えても意味無いよ
シュミットトリガ入力のVIH規定は 0.8VDD
あ、TTLポートじゃなかったのね。
122 :
774ワット発電中さん:2010/07/29(木) 14:48:40 ID:Sb0fq2Hn
16bitタイマーを使ってみようかと思って
MPLABシミュレーター上で動きをみてます。
チップは18F2420に設定しています。
どうもTMR?Lが0になったときも割り込みが発生してしまいます。
これってTMR?Hが0になったときだけ割り込みが発生するように設定できないんですか?
これって単にシミュレーターのバグなのかな?
前に12F683で16bitタイマー使ったときはこんなことなかったと思うんだけど。
123 :
774ワット発電中さん:2010/07/29(木) 16:03:14 ID:mEsDB5gG
PIC24でRTC使いたいんだがSOSCENが有効になってくれない
asm mov OSCCONL, w1
asm mov.b #0x02, w0
asm mov #0x46, w2
asm mov #0x57, w3
asm mov.b w2, [w1]
asm mov.b w3, [w1]
asm mov.b w0, [w1]
この後OSCCONBits.SOSCEN見てもビット立ってないし
RTCも動いていない。
これじゃダメなのかい?
asm mov.b #0x02, w0
も0x32やら0x42やらを使っているサンプルがあるので
試してみたが変わりなし
ADATAの2GBのmicroSDってSPIで読める?
SDメモリは基本的にSPIで読み書きできる規格じゃなかったっけ?
たまにSPIコマンド通らないSDもあるからこまる
初期化の仕方が悪いんだと思う
基本的にSPIだけど作法がちょっと違う
他のSPI機器を繋いでるとうまくいかないよ
んー
本気でSPIに対応してないのを作ってもいい決まりにはなってるんだけど、
雰囲気からすると実際にはそんなのはまだマイナーみたいなので、
読めるという仮定で進めてみる
ググってみたのですが、資料が少なく、解決できなかったのでここで質問させていただきます。
PICは18f4620、言語はC言語、コンパイラはMCC18を使っています。
18f系列のPICとMCC18の環境を使うのは初めてなので、テストとしてPORTAの0,1番ポートから5Vを出力してLEDをつけるということをしてみているのですが、出力されず苦戦しています。
下に現在のソースを書くので、何か特別な設定が必要であれば、教えてください。
また、入力をする際にもどうすればいいのかなどもわからないので、教えてもらえるとうれしいです。
ソース
#include<p18f4620.h>
#pragma config OSC=HSPLL, FCMEN=OFF, IESO=OFF
#pragma config PWRT=ON, BOREN=OFF, BORV=0
#pragma config WDT=OFF, WDTPS=1
void main(){
TRISA = 0;
PORTA=0xff;
}
ADCONあたり
datasheet で確認
>>131 ADCON1 = 0x0f;
を入れるとデジタルアウトプットになる…ということでしょうか?
今日は世間一般が休日だが、自分で試す環境が手元に無いの?
>>133 ADCON1 = 0x0f;
を追記して試してみたのですが…うまくいきませんでした。
データシートもう一度読んでみます。
書き込みようのPICkit2をさしっぱなしにしていたため、どうやら出力されなかったみたいです。
お騒がせしてすみませんでした。
config あたりがあやしいな
OSCCON で 内部発振にしてやってみれば
ああ 動いたのか
charって普通はunsignedだけど、
if (pos > 3)
if (pos < 0)
みたいなことをしたい時には、そこだけsignedにする?
>>138 > if (pos < 0)
な可能性があるのなら始めからsignedでコードを書く
signedで書くか、オフセット付ける。
一箇所だけならif(pos&0x80)で判定する。
unsignedを0からさらに減らした時の挙動は処理系依存になるからなあ
まあ、処理系もターゲットも固定だから動けばどうでもいいんだけど、気分の問題
>始めからsignedでコードを書く
に、100ポイント
てst
SPI制御の方法がネットで調べてもよくわからなかったので、ここで質問させてもらいます。
現在SPI制御を使用し、PICの外にあるシフトレジスタICでシリアルデータをパラレルデータに変換仕様と試みています。
ネットで検索してみたのですが、この場合はどうすればいいのかわからなかったので、もし知っている方がいたら教えてください。
PICは18f4620、言語はC言語、コンパイラはMCC18を使っています。
>>145 OpenSPI()関数でMSSP初期設定して
WriteSPI()かputcSPI()関数でbyte単位data出力。
シフトレジスタのラッチ等は汎用outピンで制御
>>146 ありがとうございます。
OpenSPI()の設定の際には、具体的にどのような値を入れればいいのでしょうか?
例えば・・・
OpenSPI(SPI_FOSC_16, MODE_10, SMPMID);
\doc 下のlib みてみよう
18F2550ですが、EEPROMの内容が任意の内容からFFhに変化してしまいます。
タイミングはよくわかりません。
プログラム中では書き込みしていないのでバグは考えにくいですが
152 :
774ワット発電中さん:2010/08/03(火) 15:48:13 ID:TAROTuGM
>>151 フラッシュに書き込みした時に初期化されたとかじゃなくて?
153 :
151:2010/08/03(火) 20:11:49 ID:2KdaCimH
書き忘れましたが、全部ではなく任意の数バイトなんです。
0番地がよくFFhに変化していたのですが、昨日はそれに加えて5hと30hもFFhに変化していました。
20回も書いてないと思いますが。
>>145 です。
先日、教えていただいた通り、OpenSPIとWriteSPIを使用してみたのですがうまく動かず、苦戦しています。
以下にソースを載せるので、何かおかしなところがあれば教えていただけないでしょうか。
シフトレジスタのソースにはポートC5番、クロックにはポートC3番がつながっています。
シフトレジスタの先にはLEDが各ポートにひとつずつ、8個つながっています。
ソースはこんな感じです。
#include<p18f4620.h>
#include<spi.h>
#pragma config OSC=HS, FCMEN=OFF, IESO=OFF // CONFIG1H
#pragma config PWRT=ON, BOREN=ON, BORV=3 // CONFIG2L
#pragma config WDT=OFF, WDTPS=1,MCLRE = OFF // CONFIG2H
#pragma config PBADEN = OFF,LPT1OSC = OFF,LVP = OFF
void main(void){
ADCON1 = 0x0f; // All disital output
OpenSPI(SPI_FOSC_16, MODE_00, SMPMID);
WriteSPI(0xff);
while(0 != (WriteSPI(0xff)));
while(1);
}
>>155 シフトレジスタのICの型番は?
一口にシフトレジスタとは言っても、ICごとにお作法がかなり違う
>>157 ICの型番はTC74HC595AFです。
74(HC)164じゃないの?
595ならLatch制御必要。
あと言うまでも無いがOEとCLRは適切に
160 :
123:2010/08/04(水) 09:31:40 ID:yiiOYug+
どうもmikroC for PIC24のバグくさい
ほぼ同じコードでMPLABなら動いた、、、
mikroCとPIC24でRTCつかえている人居たら
ソース提供おねがいー
TC74HC595の場合、pin信号名は以下のように読み替えてな
Latch制御→RCK
OE→G
CLR→SCLR
おお
つい先日595をいじったばかり
16pinで8bit出力だったら、片側に8個並べると思うのに
>>159 >>161 >>162 ありがとうございます。
なんとかうまくいきました。
聞いてばかりですみません。
クロックの周波数によってPWM制御で音を鳴らしているブザーが鳴らなくなるということはあり得るのでしょうか?
クロック10MHzのとき、以下のプログラムを走らせたところ、きちんと音がなりました。
OpenPWM1(255); //PWM1をオープン
SetDCPWM1(1); //PWM1のDuty変更
delay_ms(250);// 自作msディレイ
SetDCPWM1(0);
しかし、内部クロックを40Mhzにあげたところ、殆ど音が鳴らなくなってしまいました。
この問題の解決法がありましたら教えていただきたいです。お願いします。
コンパイラはC18、PICは18f4620を使っています。
>>163 クロック4倍って、音を鳴らすための分周比は1/4にしたかい?
そうしないと音の周波数が4倍になるから例えば4kHzが 16kHzになる。
10MHzで動いていて40MHzで駄目なら20MHzにしてみようとか15MHzではどうだとか
考えてやってみるよなぁ,偏差値40程度の奴でもさ。
音は鳴ってるけど聞こえないだけとか?
人間の可聴域って20Hz〜20kHzぐらいだったはず。
やったことないけど30kと35kぐらいの作ってヘテロダインの実験もしてみよう
ちゃんと聞こえるのかな
・・
返答送れてすみません。
40Mhzにした理由は、ブザー以外のとある処理が40Mhz用に作られていたからです。
ブザーとブザー以外の処理を比べると、ブザー以外の処理の方が修正が難しかったので、
ブザーの方を修正していました。
ですが、ブザーを鳴らすため試用するPWM制御のduty値をいくら変えてもうまくいかなかったので、ほかの処理を10Mhzでも動くようにすることで解決しました。
このことでいろいろと検討していただいた皆様、本当にありがとうございました。
現在手元に環境がないので試すことができないのですが、環境が戻り次第、
>>167さんの実験も行い、ここに書き込ませていただきます。
duty変えても周波数は変わらないぞ?
いったいどこの誰の質問なんだい?
コテ名乗れやカス質問主
てすと
PICとSDを繋げる時って、SDのVDDに3.3V供給するとして、
データ線に5Vかけていいんだっけ?
177 :
170:2010/08/09(月) 23:21:51 ID:cGyEz6cs
ブザー: VCC(5V)から10kオームの抵抗を並列接続しつつ、圧電ブザーに接続。
もう片方の端子はトランジスタのコレクタに接続。
トランジスタ(npn): コレクタは圧電ブザーに接続。
ベースは10kの抵抗を途中に入れつつ、PICのRC2に接続。
エミッタはGNDに接続。
PIC(18f4620、MCC18):外部10Mhzクロック
RC2を使い、PWM制御でブザーを鳴らす。
回路はこんな感じです。
明日頃に部品が戻ってくる予定なので、戻ってきたらいろいろ試してみます。
まだやってんの?
OpenTimer2()関数は?
オシロで波形くらい見れよって言いたい
みなさんPICやめたのかい?
.....あきちゃった、テヘッv
182 :
774ワット発電中さん:2010/08/17(火) 18:10:48 ID:6M+aKaeR
先日から始めました
が、猛暑で気力減退
そりゃ16F84でLEDピコピコばかりじゃ飽きるだろ。
185 :
774ワット発電中さん:2010/08/18(水) 13:35:37 ID:WJnTkbUU
連日、格闘中。
普段、16Bit系を使ってたんだけど、客先の依頼(教育関係)で、
16F877Aを、CCPで動かすお仕事。
RAMは足りねえ、お仕着せ関数は糞。もう嫌…
LEDピコピコ程度しか出来ないんです
液晶で値を表示してるセンサーがあって、
液晶の7セグを読みこんでデータロガーに改造したりできる?
やってみれば
センサーからもらえ
> お仕着せ関数は糞。
って言いながら使うこと自体が糞だと思うが。
887使うと少し幸せになれるかも
お仕着せ関数なんて使わなければいい
ガーってシフトしといて目的分戻すんだよ
いっつもやってる事じゃん
論理な俺かっこいいとか思った?
ちょっと何言ってるかわかんないっすねー
要は、おまえら今PICいじってんのか? と問いたいのだと思う。
ハード組み立て中。
ここ数週間は何気にやる気が出てきて夜中まで半田付けしてるな。
ソフトはまだ全然かけてない、と言うか知らないことを何個もやろうとしていてどうソフト書けばいいか分からず大変だ。
いや、点呼とか必要ないから…
> ここ数週間は何気にやる気が出てきて
俺は逆だわ。
暑すぐる・・・丑三つ時の室温34度(無風)とか。
眠いのか眠くないのかすらワカランくなったわ。
ここ2日ほどは、なんとか健康で文化的な最低限の夜が送れてるが。
エアコンを使うと驚くほど快適になるぞ
ビットを指定して出力を変化させる際の1サイクルの時間は出力が変化する前にかかりますか?
日本語で
あれ?
(1サイクル=0.4uSとして)
CLRF PORTA
となってる状態で
1 BSF PORTA,0
2 NOP
3 NOP
4 NOP
5 BCF PORTA,0
とした場合にHighが出力されているのは1〜5のうち、どこの期間?
16Fだけど、実行サイクルの最後で変化だから2〜5じゃないの。
フェッチだと1つずれるけど。
他のファミリは知らない。
大麻使えよ。
だめぜったい
>>202 外部回路で変わるけど、適切なら1〜2にかけてじゃない?
「間に合わないことがあるからひとつNOP入れろ」というのは
オフィシャルにも明文化されていたはず。
208 :
202:2010/08/25(水) 02:03:37 ID:nmvkZi8J
レスどうもありがとう
間に合わないことなんてあるんですね
気をつけないと・・
>>208 つうか16FならI/Oに対してビット制御命令は使うべきじゃない。
負荷が重かったりノイズが入ったら誤動作する。
>>209 負荷やノイズと、ビット操作命令の関係が分からんのだが。
アナログな話と、デジタルな部分の話まぜるな。
デジタルでも特殊な通信を行う場合ではポートに対するビット操作はアウト。
2線式半二重同期通信(IIC風)を行うデバイスで同一ポートが別のデバイスに接続されているケース。
別のデバイスを操作するとラッチデータが書き換えられてしまい、通信側がだめになることがある。
>>210 16FのI/Oへのビット操作命令はピンの状態を読んだデータにビット操作した
ものをデータラッチに出力している。
0を出力しているピンに電流を流しすぎて、読み取ったときHレベルと見なされ
れば1に化けてしまうということ。
データラッチを読み取ってビット操作をするようになっていれば、こういう
問題はなかったんだが。
おれはデータラッチと同じデータをRAMに保存しておいて、RAMから読み出した
データに論理演算してデータラッチとRAMを更新するようにしている。
_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|リードモディファイライト │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
214 :
202:2010/08/25(水) 14:26:01 ID:nmvkZi8J
なんか難しい話になってる・・・
パルス波形を2つ出力したいのですが
1つのパルスがLowになって次が立ち上がるまでに
3.2u秒の休止期間をいれて
それを繰り返すという簡単な動作なのですが
危ないということですかね?
周波数は20kHzで負荷はフォトカプラです・・・
>>214 操作しているビット(今回は0ビット)に関しては大丈夫だ。
PORTAの他のビットについて誤動作の可能性があるという話だから。
PIC自体には不足はない。
ただ外部回路を配慮して作らないといけないよって事
仕事なら当たり前。
> 負荷はフォトカプラです・・・
モノじゃなくて使い方だ。PICの定格内で使えば問題ない。
PIC16でぷちFatFsを使ってて、
PICCの9.7だと動いてたのに9.71とか9.8にしたら動かなくなった
FAT32を殺すとどっちでも動く
問題はどっち?
>>218 両方。と言いたいところだけど、問題の根源を探すの面倒だよね。
継続して開発するのであればコンパイラのバージョンも維持するのが吉。
たいていはVerUp=改善の方向だけど、先祖返りしてるんかな。
もともと、アセンブラレベルでの変なwarningが9.7でのコンパイル時に出てた
9.71だと出なくなって、コードサイズがかなり縮んでいた
何か暗黙の型変換とかそのへんで曖昧なコードになってて、
コンパイラが最適化しすぎると動かないのかもしれない
あ、なんか思い出してきた
unsignd char c と unsigned int i があって、
c = 0xff でさらにインクリメントして i と足す、みたいな時に
0として扱うか0x100にするか、みたいなとこで互換性が怪しかった
castすれば解決しそうだけど、悩ましいね。
俺が昔見た不具合は、変数でシフト回数を指定するケース。 a <<= b;
変数が0の時にシフトが不具合。VerUpしたら直ったけどね。
当時はコーディングで回避したと思った。がんばってくれ。
223 :
202:2010/08/25(水) 23:54:31 ID:nmvkZi8J
やっぱりなんかむずかしいですが、そういう仕様だということで頭に入れておきます。
ありがとうございました
PIC24のRTCCて、sleepしたとき動かないのね
TMR1で1分後とに割り込みとかして時計進めるわけ?
外付けコンデンサを使う超低消費電力な方法があった
> 202その他
AVRに変えてgccで組んだほうが圧倒的に早い
PICでコストダウンとかやるのは暇ができてから
>>226 いい歳こいて、アンカーくらいしっかりうてよ
私はお馬鹿ですと言ってるみたい
PICとSDカードを繋いでて、
5VのPICに3.3VのSDの出力を直結すると動くんだけど、
本当は0.8Vddだから4V要るんだよな
なんで動いてるんだ?
@どこが0.8Vddなの??
A3.3VのSDに5V掛けて良いの??
へんな設計
>>228 0.8Vddは動作保証値で、グラフを見るとTypicalは3V位だからギリギリ
で動いてるんだろ
何のグラフ?
っていうか、シュミットトリガさんが0.8だって言ってるんだから、
それは余裕とかじゃなくて0.8を守らないと駄目だろ
一旦Lになった信号がふらついて0.67Vddまで上がってもまだHにしないのが
シュミットトリガのいいところ
これなら3Vでも余裕で動きそうだな
シュミットトリガの0.8Vddってのは、それを超えればHになるのは当然として、
それを超えるまではLを維持することも保障してないといけないのではという意味
>>233 >それを超えるまではLを維持することも保障してないといけないのではという意味
そんな規格はありえないよ。それじゃ誤差が0しか許されなくなる。
だからといって、際限なく低い電圧でONしていいということにもならない
つまり、VIHの上限と下限をスペックとして謳うべきなのに、上限しか書いてない
と書いてはみたけど、どう見ても間違ってる
普通に0.8Vdd越えて設計しるという話だし
デジタル回路に中間の電圧をかけるのがそもそも間違いなんだけど、
シュミットトリガはそれを許容するという意味にも思える
SDをシュミットトリガポートに繋いでるの?
TTLポートならVIHが2VくらいだからOKだけど。
PICは機能でINPUTレベルが換るよ。汎用入力だとTTL, タイマー入力などはシュミット
>>232 の16ページ参照
TTLとかSTとか選択できるという意味かと思って一瞬喜んだ
SDIピン固定なんで自動的にST
別PCに最新のMPLABをインストールしたんですけど
Pickit2がプログラマの選択肢に出てこない・・
仕方ないので単体の書込ソフトを同時起動してやってるのですが、もうサポート外ってことなんですかね
どっかで同じトラブル書き込みを見た気がするんですがみつからず
release noteになんかかいてないか?
つい先日最新のを入れたけど、普通にpickit2使えてるぞ
インストールオプションでpickit2選択しなかったんじゃね?
244 :
240:2010/08/29(日) 21:28:39 ID:VgjWfWQC
すいません
インストールで適当にOKOK押してました カスタムにしたら出てきた・・・orz
すいません、16F88のPWM機能使って60hlz〜200hlzくらいの発振しようとしてるんですが、
クロック20MHz、プリスケールT2_DIV_BY_16、period255に設定しても
最低周波数は120hlzもあります。
なんとかして上記範囲内の周波数をPWM発振出来ないでしょうか?
よろしくおねがいします。
>>245 タイマーでPWM出力を作るかクロックを落とすか
hlzという表記に違和感があるな
>>245 PWMしたいんじゃなくてただ発振させたいだけなら他の方法使えばいいと思うが
周波数の単位は普通はcだよな
あ、クロック落とすと周波数下げれるんですね
1Mhzにすると思い通りの結果出ました。
というかさっきまで20Mhzじゃなくて2Mhzでした、失礼
data sheet ぐらいみとけ
主語ぬけてるから わからんよ
255 :
774ワット発電中さん:2010/08/30(月) 18:38:38 ID:bajyOrMV
ちょっとわかりにくかったですね、
全体の構成は
パソコン → 市販USB-MIDIインターフェイス(UM-1X) → MIDIコネクタ → MIDI受信回路
です。書き直してみます。
-----------------------------------------------------
PICとフォトカプラでMIDI受信回路を作ったのですが、
5Vの電圧をMIDI入力から取れることを下記サイトで知りやってみました。
http://picmidi.seesaa.net/article/111607871.html MIDI受信回路を外してコネクタの4番と2番ピンを測定すると
5V出ているのですが、MIDI受信回路の方につなぐと電圧が0Vになってしまいます。
MIDI受信回路は上記サイトとほとんど同じなのにどうしてでしょう。
何か必要な変更点などあればアドバイスいただきたく。
ちなみにMIDI入力からではなくPickit2などから5V給電するとちゃんと動きます。
下記、MIDI受信回路です。(MIDI入力からの5V給電部分は上記サイトと同じです)
http://nukkorosu.80code.com/img/nukkorosu16224.jpg
4番ピンの電流はどのくらい流れてるんだろう?
どこか短絡とかしてれば 電流大で電圧はでてこない
chwwwww
omwwww
MIDI出力の4番ピンは一般に出力機器の5Vから220Ω挿入されているらしい。
1mAあたり0.22V低下する計算になるので電流取り出すのは無理。
それに各機器を絶縁する前提でフォトカプラ(TLP552等)利用するのだから
MIDIコネクタから5V電源を得ようとする発想は間違ってるな。
PICとフォトカプラ(TLP552)の電源は共通で良いのだから
MIDI入力とは絶縁された5V電源を用意汁。
>電流取り出すのは無理。
訂正:安定した5V電源として利用するのは困難。
>>258 安定した電流取るの難しいですかー
MIDI受信回路の後も絶縁して他の5V回路に波形送るので、
あちこちで5V電源作ることになっちゃうんですよね。
せめて簡単に5V-絶縁-5Vみたいに絶縁されたDC5V取り出す方法があれば…
>>261 これいいですね!
ありがとうございます
2550のシュミットトリガ端子でどれのことですか?
12F510で遊ぼう
何して遊ぶ?
十五夜御月様見て
デバッグ
車載する装置にPICを使用する為に、電源を物色してみたけど、
結局PICを内蔵RCで動作される程度の消費電力ならツェナー+トランジスタで十分だった…
むしろ半端に高性能な電源だと電源自体の消費電力がPICの消費電力を超えるねw
>>269 確かに言えてるけど、
ツェナーは、PICの消費電流変動分を、カバーする必要があるので、
ツェナーにガンガン電流が流れて、かなり発熱して、何かもったいないよね。
LDOの、Iq極少の3端子レギュレータの方が良くない?
300mA流れてもVio=0.07Vとかのやつもあるし。
LDOの利点を誤解してそうなレス
えっ? なんでですか? すみません、教えてください。
PICって12Vで動く?
LDOにがんがん発熱して貰えば
275 :
774ワット発電中さん:2010/09/03(金) 20:41:10 ID:Rnysy3hB
DSPICを使ってデジタル電源で遊びたいと思ってます。デバイスはここ最近
でたもの・・・評価キットでお勧めはありますか?
>>270 ツェナー+トランジスタって言ってるから、ツェナーに食わすんじゃなくて、
ツェナーの電圧基準を元にエミッタフォロワか何かでバッファしてんじゃないの?
そもそも車載ならLDOである必要は無いな。
12Vを5Vに落とすというのは、7V分を熱にして飛ばすということ
PICが25mW食う間に抵抗が35mW食う
35mWだと1/6Wの抵抗でも暖かくなる
>>269 百均のシガーソケット用USB電源がちょうどいいのでは。
でも、数mAの出力では効率が40%を割って
> むしろ半端に高性能な電源だと電源自体の消費電力がPICの消費電力を超えるねw
ってことになるのか。
すまん
すんごい初歩的な質問なのかも知れんが、MPLAB IDEでプラグラムをシミュレートできない
PICは16F716で
#include<htc.h>
__CONFIG(
& UNPROTECT
& WDTEN
& HS
& BORDIS
);
void main()
{
}
というテスト用のプラグラムを作った
コンパイラはHi-Techのやつを使ってるんだけど、DebuggerからRunを押すと
Make: The target "C:\Users\ユーザー名\Documents\PIC\test.p1" is out of date.
Executing: "C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe" --pass1
"C:\Users\ユーザー名\Documents\PIC\test.c" -q --chip=16F716 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe" "-o7SEG LED.cof" "-m7SEG LED.map"
--summary=default --output=default test.p1 --chip=16F716 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
(1273) Omniscient Code Generation not available in Lite mode (warning)
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.80
Copyright (C) 2010 Microchip Technology Inc.
Error [876] C:\Users\ユーザー名\Documents\PIC\test.c; 3. syntax error
********** Build failed! **********
と出る
test.c自体を単体でコンパイルすることはできるんだけど、何が悪いんだろうか?
ユーザー名に日本語使ってないし、Cドライブ直下で試してみても同じ表示が出る
バージョンは最新でOSは7を使っている
誰か助けて・・・
>>280 > test.c;3. syntax error
文法エラーだにょって言ってくれてるのに、ユーザー名とかCドライブ直下とか…
おそらくUNPROTECTの前の&が原因。演算子の使い方考えればわかるはず。
単体でもコンパイルできないと思うぞ
>>281 うひょおおおありがとおおおおおう
でもなんでtest.c単体ではコンパイルできたんだろう?
285 :
774ワット発電中さん:2010/09/05(日) 21:36:31 ID:6r8gVeFE
しょうもない質問ですいません。
PCWHDとかのコンパイラは、windows7で
使うことはできるのでしょうか?
対応OSとか何も書いてないようですが。
>>286 ありがとうございます。
お手数おかけしました。
すいません、CCSC (16F887) でセンサ状態を常に監視するプログラム作ってるんですが
定期的にEEPにログデータを書き込む際に時間がかかって、パルスを読み飛ばしてしまうので
write_eepromの書き込み確認待ちを無くして、単に書くだけの関数にする方法はないでしょうか
この関数の元が見られれば改造出来そうな気もするのですが、コンパイラに内蔵なんでしょうか 見つからずじまい
宜しくお願いします。。
>>288 元なんか探さなくても自分で関数書けばok
例:
#byte EEPDAT = 0x10C
#byte EEPADR = 0x10D
#byte EEPDATH = 0x10E
#byte EEPADRH = 0x10F
#byte EECON1 = 0x18C
#byte EECON2 = 0x18D
#bit EEP_WREN= EECON1.2
#bit EEP_WR = EECON1.1
void write_only_eeprom(int8 addr, int8 val)
{
EEPADR = addr;
EEPDAT = val;
EECON1 = 0b00000100; //EEPGD=0, WREN=1
disable_interrupts(GLOBAL);
EECON2 = 0x55;
EECON2 = 0xAA;
EEP_WR = 1; // bsf EECON1.WR
enable_interrupts(INT_EEPROM);
enable_interrupts(GLOBAL);
}
#INT_EEPROM
void complete_eeprom()
{
EEP_WREN = 0; // bcf EECON1.WREN
}
例のPS3のが2550に移植されたらしい
部品揃ってるし作っちゃおうか
PS3ないけど
291 :
288:
>>289様
動きました〜
まだ全部理解できてませんが、すごく勉強になります 289様に感謝・・