PIC24FでUARTの送信が反転していた
PIC24FJ64GA004でUARTを使うことになり,適当に組んでみたところ挙動がおかしいので少し調査してみたところ,どうやら送信時の極性に関する設定が間違っているらしいことを突き止めた.オシロスコープでみると,アイドル時の極性が反転していました.
UARTの設定はライブラリを使用しているわけで,ヘッダファイルを探してみたところ
#define UART_IrDA_POL_INV_ONE 0xEFFF /*IrDA encoded, UxTX Idle state is '1' */
#define UART_IrDA_POL_INV_ZERO 0xAFFF/* IrDA encoded, UxTX Idle state is '0' */
というパラメータが見つかった.ここで注意するのが,このパラメータはIrDAのみだけではなくUARTのTxに関しても影響する点で,うっかりしていると「IrDAか・・・ まあUARTには関係ないだろ」と思い込んで要らぬ時間の浪費をするかもしれない.
詳細は下記のPDFを参照してもらえば良いかと思います.
http://ww1.microchip.com/downloads/en/DeviceDoc/DS39708A_JP%20PIC24F%20Ref.Manual%20Section%2021.pdf
よくデータシートを見れば大した問題では無いだろうけど,もし上手く動作しないときにはパラメータを見直してみると良いかもしれない.
pic30-lm.exeで問題が起きた場合の対処法
原因自体はググってもらえれば良いかと思います.
手っ取り早く解決するには,下記のアドレスに置いてあるpic30-lm.exeと既存の物を入れ替えれば動作すると思います.
http://www.microchip.com/forums/download.axd?file=0;630396
「空か日本を見てみよう」 終了のお知らせ
いくらなんでも、終了のお知らせが軽すぎだろ・・・
※DVD-BOXの発売希望
OpenCV2.1 Windows版 cvExtractSURFでのランタイムエラー
研究室内でOpenCVのSURFを使っていたのだが、その際に「明らかに問題が無いのに、ランタイムエラーが発生する」という話を持ちかけられた。ちなみに、持ちかけてきた方のOpenCVは2.1であった。
そこで、そのプログラムを実行するためにOpenCVをPCに導入したのだが、その際にOpenCV2.3を入れて確認してみたところ、なにも問題なく動作した。確認のために話を持ちかけてきた方のPCでもOpenCV2.3をセットアップしたところ、問題なく動作した。
どうやらOpenCV2.1の時点ではバグがcvExtractSURFにはバグが存在するようなので、似たような症状が発生したら試しに新しいバージョンに入れ替えて試してみるとよいのではないだろうか。
windowsでUSBデバイスを使うために
ここ最近はPICを使ったUSBデバイスを作ることが多い.
Microchipから提供されているライブラリを使うことで簡単にファームウェアが開発できるので,なかなか便利である.
USB Framework for PIC18, PIC24 & PIC32
ちょっとググれば,PIC18F14K50やPIC18F2550などで自作USBデバイスを開発している方々が多く居るので,ある程度の知識があれば比較的簡単に自作USBデバイスを開発できるようになってきた気がする.
Microchipから提供されているライブラリにはwindowsのサンプルプログラムも用意されているので,サンプルプログラムを変更していくことで自作USBデバイスを扱うプログラムを簡単に手に入れることが出来る.その際に使っている関数の仕様は以下のページで見ることが出来るので,なにか困ったときに参考にしている.
Windows previous versions documentation | Microsoft Docs
Public Device Installation Functions - Windows 10 hardware dev | Microsoft Docs
話はまったく飛ぶけど,今年度もROBOMECに参加します.
前回と同じようにロボットのデモを行うので,ポスターの前で何か走っていると思います.