RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
前にPIC16FでI2Cの実験をしているという話を致したと思います。
昔24Fで何事も無くできたので、テストがてらに・・・なんて思っていたのですが、
何故か全然出来なかったんです。
その謎が今日、データシートを読み返してわかりました。
一口にPICと言っても、18F以前のものと24F以降のものでは内部構造が全然違っていて、
I2Cの部分でもそれは躊躇に現れています。
というのも、I2Cの通信に使われるSCKとSDAというピンがあるのですが、18F以前だとこれは
マスターモードの場合は両方出力に、スレーブモードの場合は両方入力にする必要がありました。
それに対して、24F以降のPICでは、どちらのモードでも入力にする必要があります。
それで今回、僕が使ったのは16F1939。16Fなので当然前者になる・・・と思っていたのですが、
データシートを見るとなんと後者だったのです。
どうやら最新式である16F18xxシリーズと16F19xxシリーズのPICは新しい方の規格を採用しているらしく、
両方とも入力にする必要があるようです。
両方とも入力にする必要があるようです。
設定を変更したら何事もなかったかのように通信を成功させてくれました。全く・・・
今回の件にしても・・・やっぱり最新式16F達は今までの16Fとは別物と考えるべきなのでしょうね。常識通じないよこの子達・・・
やっぱり謎だらけです最新式16F。
まぁ謎の数で言えば24Fに勝るPICはないのでしょうけど・・・
なんてったって一般に知られているものだけでも、
UARTなどの数多くの関数の類が揃いも揃ってバグってるし、IrDA勝手に使ってるし!
ADコンバーターに関しては関数自体がダミーだし、ヘッダだけ・・・
挙句RA3ピンだったかな。強制常時H出力でちゃってるし。これ一番意味不明!
なんて具合です。
今思えば32MXが一番まともだったような・・・気がします。イネーブル機能してなかったけど
そんなPICの一日でした。ロボットやってねぇ!
(^・ω・)ノ RadiumProduction in RoboCup Junior
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
(01/11)
プロフィール
HN:
Luz
性別:
男性
アーカイブ