PIC専用のスレ Part 59 エラッタの話題も歓迎
>>423
すまん、画像(グラフ)だと抵抗等の定数がいい加減すぎて、閾値に対して余裕がない感じですね
RCK(LD)の抵抗を大きくするかキャパシタの容量を増やせばもっと余裕ができると思う 入力寄生容量使えば、抵抗2本とキャパシタ1個でいけるか。ラッチにすんごく時間かかりそうだけど。
かかるの嫌ならD使って、もっと速めたければピン増やせ、と。 I2CのEEPROMが書き込みできる、ROMライターを探してるのだけど
色々探してるのですが、良いのがないので
知ってたら教えてください。
ROMは、AT24C02を書き込みます。 ここPICのスレなんだけど……
PICで読むならPICで書けばいいんでは?
そもそもI2CのEEPROMのライタなんて大差ないと思うんだが
良い悪いの判断基準(要件)は何? CH341Aなんちゃらっていうやつが安くていいんじゃない?
書き込みアプリは探さないといけないけど WS2812Bを3.3Vで動かしている例があるようだけど
無点灯のとき実力として何Vで停止するの? CLCの無いデバイスでWS2812Bを制御する場合
1bitごとの割り込みだと
(今何個目の何ビット目とかの)ステートの保存で余裕がないけど
やっぱり割り込み使わずに命令サイクルだけでタイミング調整するのが無難? 8bitマイコンで、32MHz(FOSC/4 = 8MHz)の話してる?
割り込みじゃ無理だと思う。
アセンブラ使って実装したよ。 割り込みは使わずPWMは使うのが無駄(nop)が少ないんでは 作ってみたらわかるんだが、32MHzでも2インストラクションしか
ONの1状態には時間がないから、PWMでも結局タイミングを合わせて使わないといけない。
それをするなら、直接IOを叩いたほうが効率的 効率の考え方の違いだけのような?
PWMを使うと脱調しない範囲で本来の出力周期よりループを早く回せる
節約できるのが1命令だけでも8bit単位のループで8命令稼げる
ループの中の1命令ではほぼ何もできないが
ループの外の8命令なら色々できる
逆にそこまで頑張る必要がないなら労力として非効率とも言える PICのアセンブラでないので申し訳ないが、
CCPを使うとして、
mov W , ON
testAndSkipIf0 colorR , bit7
mov W , OFF
mov CCPR1L , W
確かに4命令で、あと4(5とか6でも良い?)命令自由に使えるとも言える。
しかし、これループもせずに、RGB全部のすべてのBITに対して
延々と命令書くのか?Wレジスタも消えるし。
いや別にいいけど。
IOを直接叩くのなら、R、G、Bについての
それぞれのループ3つ書くだけで済む。
(800kくらいの設定で考えたので9命令クロック)
ワード数では1ループ8命令、次のロードで1命令で30ワード+α程度
たしかにPICのプログラムメモリはそれなりに潤沢
ちなみにこれをループさせようと思うと
shift colorR , left
decrementAndIf0Skip counter
jmp to front
mov W, 8
mov counter , W
が必要になる。
ループはこの時点で8クロックかかり、1クロック程度余るのかもしれないが、
この、次のロードに1クロック余分にかかるのが曲者で
TMRのループと非常に相性が悪い。この方法は使えないかもしれない。
IOを直接叩く場合、BSFが使えるため、Wレジスタが空く。
このため、カウンタをWに入れておけば、きれいに周期的な出力ができる。
IOを叩く場合、周期的である必要はないが。
だから、結論としては、延々長いアセンブラを書き、
8~9命令中4,5命令をなにかに使うか、
IOを叩くループを書いてプログラムを短く、ついでにタイミングを気にせず書くか、
の違いだ。 しかし、基本的にPICはWレジスタとの間の計算しか
ほとんどできず、細切れになった4,5命令で、Wレジスタが
揮発する状態で何ができるのかというとちょっと悩む。 あと、ループしないにしてもIOでも
BSF
BTFSS BCF
BCF
の必要なのは4命令なんだ。
場所はちゃんとしないといけないが。
Wレジスタは空くし、CCPのリソースまで何のために使っているかは
よくわからんとしか言えない。 ループ回すって書いてあるのに何でループ使わない前提になっているの? データ「0」ばっかり送るとか、「1」ばかり送るなら、
PWMでループすればいいと思います。 おそらく、私の考えとあなたの考えの間に理解のずれがあるようです。
私にはどういうループを短くする手段なのかわかっていません。
PWMを使う、LEDを操作する時点で、DUTYは変えないといけませんよね。
そのうえで、PR2も変えるというようなことを考えておられるのでしょうか。
変えることが可能なら、全体の転送時間は短くなりますね。
それがループを短くするということでしょうか。
しかし、単にDUTYを変えるだけで、4サイクルかかります。
PR2を変えるのにまた同じくらい時間を要しては、PR2を変えると破綻するだけで、
結局命令が足りずできない気がしています。 出力先がIOかDUTYの違いで大差ないと思うんだが
何か大きく変えなきゃいけない理由はあるんか? いえ、前の方がPWMで回したほうが効率がいいと言われるので、
比較してみただけです。
同じか、めんどくささを考えるとIOのほうがよさげです。 要するに、私がIOのアセンブラで書くと良いよ、と書いたのに対し、
PWMのほうが効率が良いと、レスが付いたものですから、
実際に書くとどう違うかちょっと考えて、
やっぱりIOのほうが良いだろうという結論を私は出しました。 大差ないのに同意しといてなんでPWMだと良くないのかが説明されててモヤモヤするな
ビットテストにとらわれてローテートでキャリーによる分岐が使えることを見落としている? 前提としてバンクセレクト不要にしたらLレベルの時間調整でnop入れる余裕があるでしょ?
そのループの中のnopを1つ削る
Lレベルの時間が不足する分はタイマで待たせる
削った8命令分を他のことに使う
バンクセレクト不可避とか前提が違うなら比較にならないからどうとでも言える なるほど、説明を省いたからPWMが良くない理由がよくわからないと。
デューティを変えるだけなら、IOもPWMも同じ命令数がかかる。
これはいいよね。
IOを使うと、Wレジスタを使わなくていい。
これがIOの1つのメリット。
デメリットは、IOだと位置が完全固定になること。
しかし、NOPで待たなければならない、とあるが、この1命令、
何か別のことに使ってもいいかもよ。
だから、使える命令の位置関係に制約があるけど、使える命令数は変わらない。
PWMの一番のデメリットは自走すること。
どこかで
TMR2ON=0
TMR2=X
TMR2ON=1
を入れないといけない。
そして、ちゃんと数えて、
PWMがちゃんとPWMとして機能するように命令を並べないといけない。
ONから数えて何番目だから・・・と最初を見つけ出すのが一番めんどくさいと思っている。
そして、「データ1」を送信するとき
1100000000
データ0を送信するとき
1111100000
この
11XXX00000
のXXXの部分でPWMのデューティサイクルを変えるようにしてしまうと
破綻が起こる。
ここを常に気にしながら、こまかーく設定をしていかないといけない。
繊細な人ならいいけど、いや、繊細な人にしても、いろんなパターンを入れて
テストしないとちゃんと動くって言えないかもしれないプログラムを書くのって
どうよって思う。
あとで何か変更したいとき、どうするの?
また、最初と最後にデューティ0を出力するか、しかるべき位置でタイマを止めなければならない。次のLEDにランしたまま引き継ぐと、どこでどうなってるのか意味がわからなくなる。
そして、PICの周辺回路を専有してしまう。
これもデメリット。
ところで、複数のLEDをつけて、送信することを前提に考えているから
これを関数化して呼び出したいわけだが、
そのときに何度もこの関数呼ぶことを前提に考えて、
この空き命令に何か処理させたいことって何なのか、
私にはちょっとわかんないんだけど。
以上。 ところで、TMR2ON=1って書くと、
その同じ命令サイクルでTMR2はカウントアップするの?
それとも次のクロックから?
同様にCCPR1L=Xって書くと、そのデューティが反映されるのは、
その命令と同時?
細かく仕様を知ったPICのプロフェッショナルになるならともかく、
めんどくさいことこの上ない。 >ビットテストにとらわれてローテートでキャリーによる分岐が使えることを見落としている?
これについてはわからないので、説明願いたいな あと、上に書いた内容は、
bit7から0まで、ループすることなく愚直にずらずらっと書くことを前提に
命令の余りの数などを書いている。
これをループで書くと、ループの制御に命令を食われ、
空き命令はほぼないことはご理解いただきたい。 あなたが賢いんだか賢くないんだか、私には少なくとも理解ができない
>Lレベルの時間が不足する分はタイマで待たせる
これについてももうちょっとよくわかるように説明してほしい。
どういうこと? 自分の言いたいことだけ言うんじゃなくて
もうちょっと読む人のこと考えて書いて貰えんかな
> デューティを変えるだけなら、IOもPWMも同じ命令数がかかる。
厳密に同じかは別としてそうね
> IOを使うと、Wレジスタを使わなくていい。
それはそう
> TMR2ON=0
> TMR2=X
> TMR2ON=1
> を入れないといけない。
うん、だから入れるよね?
使う前に準備して使い終わったら片付ける
日常生活でも基本だね
> 11XXX00000
> のXXXの部分でPWMのデューティサイクルを変えるようにしてしまうと
> 破綻が起こる。
> 同様にCCPR1L=Xって書くと、そのデューティが反映されるのは、
> その命令と同時?
PWMの動作の理解間違ってない?
デューティが反映されるのはタイマーがカウントアップした時だよ
あとはどのタイミングにデューティを書き換えても動作に関係ない
だからPWMの周期(10サイクル)より短い9サイクルでループを回してもいいよねってこと
> これをループで書くと、ループの制御に命令を食われ、
> 空き命令はほぼないことはご理解いただきたい。
だからIOと大差ないっつてるだろーが s/カウントアップ/カウントオーバー/
素で間違えた 自分の考えた方法で問題が無いなら変える必要はない
理解できない方法を無理に使う必要もない
でも理解できていないのに自分の理解の範囲で勝手に批評するな!
以上 なるほど、Dutyはそういうタイミングで更新されるんですね。
勉強になりました。
理解できていない、と言われると、まあ、そうなるのかもしれませんね。
しかし、完璧に理解しているかどうか、どうやって判断するんでしょうか。
自分は完璧だ、と思うことでしょうか?
無理だと思います。
批評というかですね、良いとか悪いは、私の意見です。
あなたの意見は違うかもしれません。
意見ですから。
それは言う自由があります。
理論的な正解はあると思っていますので、理論的に間違っていたら
指摘してください。それが勉強だと思っています。 教わり方を勉強した方が良いね。
なんかムッとする内容だったから。
じぁあね。 なるほどね。
私にはまだ難しいなぁ。
ま、ともかく私も勉強させていただきました。
ありがとうございました。 WS2812Bを制御するのにEUSARTのAsyncモードでできそう
内蔵クロック8MHzx4か16MHzx4ができるPICでボーレートを8Mbpsに設定すると
START:1+DATA:8+STOP:1で800kキャラクタ/秒になる
data 0: H375ns+L875ns 0 00111111 1 書き込みデータ0xfc
data 1: H625ns+L625ns 0 00001111 1 書き込みデータ0xf0
CKTXP=1にして論理を反転して送信する
キャラクタ間で10命令または20命令実行できる
試してないから間違ってるかも スタートビットとストップビットを信号の一部として使うアイデアは面白いけど
出力バッファ1キャラクタしかないから
RGB値1ビットずつセットする必要があるという根源的問題が残る
(割り込みを使うのが厳しいし他の処理がほぼできない)
PWMに対する利点がPWMを使わないくらい? そもそも最近のデバイスでCLCが使えないのって低コスト全振りのPIC16F152くらいじゃ?
老人の懐古趣味の世界 次はCLBで自由自在やね。 はーやくこいこい 13145シリーズ CLCを使ったやり方ってどうやるの?
ざっくりとでいいので教えてもらえませんか? >>466
なんかいろいろできそうだな・・・と思ったけど、最大で20ピン? 単機能周辺デバイスを作るのがおもなターゲットかな?
趣味用には遊べそうだけど。 USBオーディオDACを作っているがやっと動いた。とは言っても習作(安物AK4490REQ)なのだが
本番はAK4491EQ+AK4499EXEQで作る。チップ価格が高いのでまずはソフトテスト用環境構築。
・メインマイコン16F887
・ディスプレイマイコンPIC16F886
・COMBO384 I2C変換マイコンPIC16F88
AK4490REQでも1.8V内蔵レギュレータ使わないで外部供給にすると結構いい音でたまげたわ
https://i.imgur.com/dvuOo86.jpeg
https://i.imgur.com/DJiN44H.jpeg ピン数必要ならそれこそFPGAを使えばいいんじゃないの
単にGPIO増やしたいだけなら152シリーズ併用で
下手なGPIOエキスパンダより安いし
という訳で秋月で152シリーズを扱うようみんな要望出してくれ! >>472
言うだけ野暮だけど外部回路がキモならPICどうでも良くない?
もっと高性能で安価なUSB付きのマイコンボードあるじゃん
あとソフトテスト用環境とはいえノイズ対策はそれでいいの? >>474
DACのレジスタ設定がI2Cなんよ
PIC使っても良いだろ PICの得意領域にPICを使う←わかる
PICの苦手領域をあえてPICで挑戦してみる←わかる
PIC使っても良いところにPICを使う←で?
ってだけだよ >>473
件のとその辺のFPGAの底辺とを比べても、どえらい差があるでしょ。価格といいLUT数といい。
たくさんの入力の特定条件をわしゃっとハードウェアデコードしてPICに割り込みかけたい、とかにはピン数ほしいよ。 152てPIC16F152xx? これ、どんな特長があるんです? >>477
ピン数ほしいよって言ったところで現時点で無いもんは無いんだから…… 無ければPICから離れるだけのこと。
希望を述べてはいけない法も無し。 microchipは数百円のEEPLDを売ってて
> たくさんの入力の特定条件をわしゃっとハードウェアデコードしてPICに割り込みかけたい
みたいな一方通行でソフトウェア処理とのインタラクションが少ない用途は既にカバーしている
おそらく「その辺のFPGAの底辺」ってのが想定が違っていて
Microchip自身が力を入れ始めている小規模FPGAとは別に
LatticeのiCE40あたりの市場をターゲットにしていると思われる
もっと言えばルネサスがForgeFPGAとか言い出したから
「既存」の需要の確保、防衛として先手を打ったというところでは?
で、ForgeFPGAの量産品はいつ一般市場に出るんだろうか? 市場の反応が良ければ多ピンの品種にも展開していくんじゃないですかね。
ピンにアサインできる自由度も増えて。 >>481
数100円の「PICひとつ」でやりたいなぁ。安価、コンパクトが売りだと思っているんで。
数100円で100MHz超の32bitマイコンとか使える時代なんだし。もうハードウェア要らんかも、な処理能力になりつつある。 >>483
CLBが32個でマクロセルが4つみたいよ。 >>485
や、CPUコアの話ね
セル数は十分だから18か24シリーズで出してほしい
psoc好きで使ってるがコストとか消費電力とか色々いまいちなんだよね >>481
ルネサスは中国資本になって好調になったのでは? 何かと誤解してない? そしてだから何?
ForgeFPGAという製品の話であってルネサスという会社の話はしてない PICxxアーキテクチャって言うよね
あと古いPIC16とPIC16F1はだいぶ別物 みなさますみません。
知っている方が居られましたら教えて頂きたいです。
PIC16F1825を使用して、CCP4をシングルPWMで
出力しようとしています。CCP1〜CCP3まではシングルで
出力出来るのですが、CCP4だけなぜか出力出来ません。
試しにMCCで出力したコードを使用しても、CCP4だけ
出力されません。さらに、デバッグヘッダAC244043でも
同様でした。エラッタにも無いような気がします。
ピンが足らず、CCP4を使ったのが失敗でした・・・。 >>493
大体そうですよね。なので、いつもは使わないMCCを使ってみた。
設定すると、デューティ関係なくHi(100%?)が出る。タイマ及び
他の設定はもちろんCCP1〜CCP4全部同じです。CCP1とCCP3,
CCP2とCCP4がペアみたいになっていますが、CCP3は問題なく
単独で出力されるんですよね。 RC1 9 AN5 CPS5 C12IN1 CCP4 P1C(1)
これのCCP4って入力しかなくね?
CCP4の出力はModulatorのソースにしかなってないような >>495
うわー。ほんとですね。PINOUT DESCRIPTIONの表ではOutput Typeが
「CMOS」ではなく「ー」になってる。 逆に言えば無変調にしたらMDOUTから出たりせんの? MDOUTだとP1Bと同じ6ピンだから6ピンを使うならECCP1が使える ああ、そうか
じゃあP1Cで出力すればいいってことでは?
PPS対応のデバイスに移行した方が幸せな気もするが 皆様有難うございます。500Hzにして、分解能荒くなるけど、
ソフト処理でPWM出すことにしました。32段階ぐらいなら
いけるでしょ。空きピン無いし基板作ってしまったので
9ピンRC1で何とかします。
CCPx PWM x=1〜3とか書いてくれればいいのになあ。 DC24Vから1.8V作ってPIC動かしたいんだけど
PIC自身で降圧チョッパ動かした例ってある?
電池一本駆動の昇圧の例はあるんだけど 原理的にできるのは分かるんだけど
NMOSでやろうとするとゲート回路の電圧設計が結構繊細なんよね……
やっぱりスイッチングレギュレータIC使う方がいいのか NJW1933が秋月で80円だからなぁ
大きさもMOSFETと変わらんし
低電圧域は最新デバイスでも同期整流でも効率頭打ちだし PIC16F131ファミリーもPICkitminusでサポートされたようだね
肝心のデバイスが入手できてないが あと秋月でICD5入荷したな
どういう人が買うのか分からんが PICをこれから始めようと思っている者です
プログラミングの経験はありません
色々検索して後閑哲也さんのサイトにたどり着いて
CD付きのC言語の書籍を買おうかと思いましたが
内容的に古過ぎたり、本当に初歩的なことが書いていないような事が
レビューに書かれていたりします
価格等から12Fシリーズ辺りで始めたいと思っているのですが
これを読んでおけば良いというおすすめの書籍やサイトはありますか?
アドバイスいただければ幸いです
回路図はある程度読めます プログラミング経験がないってことはマイコンも初めてでしょ?
自分もPIC派だったんだけどさすがに今から始めるのにPICは勧めないな
ライタも高いし
Arduinoでもいいのでは ホビーならarduinoが簡単だね
仕事でやるならPIC18Qがいいんじゃない
本は色々穴があっても後閑さんのがいいと思う ありがとうございます
最終的には小型に作ったりしたいと思っています
ライターはPICKIT3を安い時に買ってます
本は現在のXCの時代のものでないのでそのまま使えないというようなのも見ました
Arduinoが簡単みたいですが、ハードが違うという事はこちらで始めてしまうと
PICで作りたいと思った時にそのままでは移行できないですよね?
C言語のルールとか恐らく当たり前の事はサイト等を見ても書いていないので、
各ファイルの役割とか基本的な事から書いてある物だと助かります
Arduinoだと良い本やサイトはありますか
基本から学ぶにはハードから見直した方が良いでしょうか? PIC32MZ2048EFでADC 16xオーバーサンプリングと980サンプルDMAしたいのだが、オーバーサンプリング中に何らかの割り込みが入るとオーバーサンプリング停止してしまうね。
DMAで各入力レイテンシーを最小にしたいと思ったが、うまくいかないものだ。
STM32H7ではこんなことは無いのに、PIC32はムズイ。 >>510
とりあえず適当な12Fのデータシートを読んでみては。web上でタダで見れるから。理解できそうならもうそれで行けばいいし、サポート欲しければ本買えばいい。
一歩踏み出してみないことには、どこまで理解できるのか自分でもワカランでしょ。他人が判るはずもない。 >>512
ありがとうございます
一応現物買ってデータシート読んで色々なサイトを参考にはしています
どこの行がどういう意味を持っているのかとかコピペでやって
コンパイルエラーが出た時の対処法とかを
見つけ出すまで凄く遠回りをしていると感じたもので
書籍を買うなりちゃんと勉強をした方が良いと感じました
とりあえずシリアルデータを読み取ってLEDを光らせるとかのレベルでいいと思っていますが、
中途半端に人の書いた物をかじって基本的なルールとかを知らないのだなと感じました
PCの組み立てや基礎的な電子工作は出来ると思います
バッチファイルの分岐云々で躓いたので、考え方が出来ていないと思っています >>513
意外に良いのがYouTubeです。
「PICでLチカしてみた」とかのタイトルでいろいろ出ています。
ソース(プログラム)も出ていたりするので、
画面を止めてゆっくり見えます。
おすすめしたい勉強法は、以下の通りです。
1. 最初はマネ
難しい理屈を考えようとせずに、人のまねをして、
その通りの回路で、その通りのプログラムを
何も考えずにベタでコピーして動くようにします。
2-3種類を何度も何度もやります。いわゆる体育会系的に行います。
すると、ツール(MPLABやPICKit)の使い方が覚えられます。
鉛筆と消しゴムは無意識に使えないと
国語の勉強ができないのと同じです。
2. 改造してみる
プログラムをまねて打ち込んでいると、なんとなく意味がわかってきて
「もしかしたら、こうしたらこうなるんじゃないか?」と
予想が立てられるようになります。
そうしたらプログラムの値を変えていじって結果を見て意味を考えます。
エラーで動かなくなってしまっても、動くものからの変更なので、
迷うことなく元に戻れます。
いつでもスタート地点に戻れる環境、これが大変重要です。
3. 自分で1からやってみる
上記2ができるようになるということは、
もうツールの使い方からプログラムまでできるようになったということです。
あとは自分で小さなプログラムを作ってみることです。
いろいろと作っていくと、だんだんプログラム文法の
わからないことが出てくるはずです。
その時は、ネットや本、それこそ後閑さんの本を読んで見てください。
知りたいことがはっきりしていますから、理解も格段に早いです。
アルデーノもいいですが、
最初は時間がかかりますが、ハードの製作を伴うほうが良いです。
ある地点で、それは突然にマイコン全体が見えてきます。
そこからの理解は、ハードが面倒だからとアルデーノから
スタートした人より、超スピードで理解が深まります。
これは実体験ですので、まちがいありません。 最初にマイコンを学ぶなら癖ツヨのPICを選ばなくてもいいと思います。 >>514
ありがとうございます
専用の書籍等があればと思いましたが
コピペがきかないので電子で・・・なんて思っておりました
どれも気軽に買える値段ではないのでしばらく見送りたいと思います
動画はほぼノーマークでした。
大きなヒントありがとうございます
元々ハードは好きでいじって来ましたがソフトは触れて来なかったので
やりながら繋がりを見つけて行きたいと思います >コンパイルエラーが
( ゚д゚)ハッ!
>価格等から12Fシリーズ辺りで始めたい
>最終的には小型に作ったりしたい
アセンブラだとばかり・・・ いまさらアセンブラもないでしょ。
Cでやっとけば、PICだろうがどれでも同じだよ >Cでやっとけば、PICだろうがどれでも同じだよ
今はバンクをまたぐような配列確保やポインタ加算に問題はないのかな。 PICやり始めたところだけど、勉強かねてアセンブラでやろうかと PICも色々あるけど、12FとかクラスでCはどうだろうと思う。 >>521
目覚めるもよし、辟易として高級言語に逃げるもよし。経験は血肉になるよ。 >>519
>今はバンクをまたぐような配列確保やポインタ加算に問題はないのかな。
そんなこと意識したことないな。Cのレベルに現れない。 昔のCCSは配列サイズに制限があったな
16F877で使ってた xc8はバンクとか無いので普通のCだわ。
出来ればC++で書ければ変数管理楽なんだが >>526
なるほど。
そのあたりの制約が無い(またはとても少ない)なら、C言語で取り組む限り、
「PICでマイコン入門」は問題なさそう。 メモリ次第ってのもあるな12F509とかROM1kW,RAM41Byteしかないもんな、まあこんなのもう使う奴いないだろうけど…
12FでもRAMが1kあるやつもあるからそれくらいならCで書いても何とかなるかもな Cでやるなら12Fでも4桁型番にしておいた方がいいかも ピン数少ないのはデバッガ繋がらないから入門にはいまいちじゃない? >>527
python使いたいならESP32あたりにしときな パイソンって、記述の位置とかを変えてはいけないんでしたっけ。 インデントがブロックに対応してるから固定といえば固定だな
煩いのはその位だけど if( a==1 ){
b++;
} else {
b=8;
}
と書いたり
if( a==1 ){ b++; }
else { b=8; }
とか書いたりしてるんですけど、それを許さないんですよね。
窮屈で、抵抗が1MΩくらいあります。 上の書き方しか通らないね
俺は気にならんけど好みに合わないときついかもね
ライブラリが揃ってるからネットに繋ぐ物を作るのはすごく楽だよ
あとは地味だけど文字列の処理が楽 好き嫌いとか印象で、好きだ嫌いだって言ってたら、自由奔放に取り残されるのが技術の世界ですね。 嫌いの感情が芽生えたら潰す方が、新しいものについていきやすい、って話ですよ。 遊ぶだけならPIC10F200をCで書いてもいいけどね 数年ぶりの久々にPICKit4を使おうとしたら、
Transmission on endpoint 2 failed (err = -109)
のエラーで全く使い物にならない。
以前使えていた時は同じパソコン筐体でWindow7で、USBポート(ドライバー)が3.0非対応だから2.0で通信していた。
今はWindow10にしていて、デバイスが対応していればUSB3.0通信が可能となっているのと
MPLABXを最新の6.20(前は5.45あたり)という違いがあります。
デバイスマネージャーを見ていると、firmwareを更新を開始して1分以内に
PICKit4が消滅して再表示されないので、更新処理に失敗していると思われる。
工場出荷状態に初期化は出来ているから、
USB通信に絡む部品が経年劣化しているのかな。
通信速度をLowにしても状況は変わらず。
もう純正品をやめて、PICerFTやPICKleを使おうかと悩み中。 >>544
一度PICkit4のファーム書き直してみたら?
あとUSBケーブルを変えてみる
あと、複数のUSBコントローラ使われてるMBなら違う系統のポートに繋いでみるとか >>545
工場出荷状態に初期化は544に書いた通り実施済。
ケーブルは3種類試しました。
シールド付きの高級ケーブルは近所で今時売っていないので、
それは試していません。
違うポートは既に試しました。
普段タワー型を使っていて2口駄目で、更にノートパソコンでも試しました。 XORLW B'xxxx0101'
のxってどんな意味があるのでしょか? >>547
どこにどんな文脈で書いてありましたか? レスありがとうございます
おそらく、おもしろいPICマイコンPCI12F675を使いこなすって本に
って今見たら勘違いでした
MOVLW B'xxxxx011'
MOVWF TRISIO
MOVLW B'xxxxx0xx'
MOVWF ANSEL
xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか? TRISIOやANSELレジスタの仕様でそのビットには何も意味がない
もしくは
その本の中での使い方ではそのビットに何を設定しても動作に影響がない
みたいな感じかな ぼくの知らない記述だ。といってももう5年ぐらいPICのアセンブリ言語にはタッチしてないけど。
>MOVLW B'xxxxx0xx'
>xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか?
実際にそういう記述をしろと書いてあったのかな?
それとも、この機能を使うときは、xはあなたの用途に合わせて変えて、の意味だったのかな?
>>552さんには悪意はないのだろうけれど、質問するときに、情報を小出しにするのは良くないです。
>おそらく、おもしろいPICマイコンPCI12F675を使いこなすって本に
>って今見たら勘違いでした
「本は ”おもしろいPICマイコンPCI12F675を使いこなす”で、
今見てみたら、おそらく私の勘違いでした」
の意味でしょうか。
>552さんが書いた情報だけだと、この本を持っている人しか答えにくいです。
この本はAmazonでもレビューが少ないし、傾向としては、たくさん売れている本でもなさそうです。
どういう文脈で書かれているのか書いて質問する方が、より広い人からコメントをもらえるでしょう。 みなさんサンクスです
>>553
この本の中で0と1どっちでもいいよとゆう意味だったのでしょうか
いまMPLABで
MOVLW B'11111111'
MOVLW B'xxxx0101'
と記述するとエラーでましたError[107] : Illegal digit (x in binary)
>>554
すいません情報小出しにするつもりはなかったんですけど
「よく使う表現だよ」「そんな記述方法はないよ」とか簡単に扱われるものだとおもてました
> 実際にそういう記述をしろと書いてあったのかな?
それがxについて注釈がないんです、
30行ぐらいの書けばプログラムが完成するような例文にサラっとかいてあるだけで
どうやらxを含む表現はなさそうですね >>552
>xは元から入ってる数値を変更しない、みたいな認識でいいんでしょうか?
そう読むのが自然ですが
以下のように解釈するとよいです。
>MOVLW B'xxxxx011' この話は下から3bitについて物を言ってるから
下から3bitを001にして、残りはあなたの希望する値を入れてね。
>MOVLW B'xxxxx0xx' この話は下から3bit目について物を言ってるから
下から3bit目を0にして、残りはあなたの希望する値を入れてね。
xのbitは自分で判断、決定してね。僕は知らないからね。 >>556
サンクス、任意の数値を入れないとダメですか
都合のいいように考えてました
いろいろとシビアですね ここに出されている情報だけで判断するとPCI12F675ということだからIOはb0~b5、TRISIOは入力/出力どっちにするか決めるレジスタ
b0~b2だけが具体的な数値が入っている
xが書いてあるb3~b5に何かつながっているなら>>556のように
>xのbitは自分で判断、決定してね。僕は知らないからね。
b3~b5に何もつながっていないなら>>553のように
>その本の中での使い方ではそのビットに何を設定しても動作に影響がない
という感じ
(xって書いたらエラーになってしまうのでだめだよ) どうでもいいけどPCI12F675じゃなくてPIC12F675だな まとめありがとうございます
mpasmコンパイラがMPLAB XIDEv5.35で終了していて
新しいアセンブラの情報がネットでも少なくて困ってました アセンブラの情報とかいう問題じゃなくて住所を書くサンプルに
XX県○○市
と書いてあったら、そのまま書類に書いちゃったレベルに見えるが >>561
東京都xx区 フジテレビ本社
って書いたら郵便届きそうな気がしない? 「住所を書くべきところには、XX県○○市とは書かない」という常識があるから、そうは書かないということであって、
その前提がなければわからない。さすがに、役所の申請用紙の住所欄ならどう書くべきかは、浸透率が高いだろうけれど、
本件のような、
X…変更しない
0…0にする
1…1にする
という認識にならないでいるためには、当該命令がどういうものなのかをわかってないといけない。
その本がどういう流れでそう書いたのかがわからんけれど。 >>562
情報の重み付けを考えればこんな感じだろ。
;東京都xx区
movlw 'フジテレビ本社' >>563
movlwの内部の命令構造をわかってないといけないってなかなか厳しいですね
ビット処理命令は操作対象外のビットも一度読み込み上書きって書いてあったような
気がするんですが、そんな感じかなあとおもてました
>>564
さいきんのとれんど
GOTO $+2
MOVLW 'フジテレビ'
MOVLW 'テレ東'