地絡検出①ZPDの動作原理
地絡を検出する方法はいくつかある.
地絡検出(方向は検出しない)
①ZPDを用いる(零相電圧)
②EVTを用いる(零相電圧)
③ZCTを用いる(零相電流)
これの他に,零相電圧電流を同時に検出して地絡方向を検出する,「地絡方向継電器」もある.
今回はZPDを用いた地絡検出について記述する.
続きを読む
PSoCの割り込み処理記述
他にも良いやり方があるのかもしれない。
リファレンスに割り込み処理について書かれたものが見当たらなかったので,明治大学さんの解説資料を参考にしてまとめる。
今回はUARTのRXRegisterFull割り込みを例に設定する。
前もってやっておくこと:
・UARTの設定をChip Editerで一通りやっておく
・mainファイルには何も書かず,Buildする
Chip Editerタブに切り替え,Workspace Explorerウィンドウの中からSource Files\boot.asmファイルを開く。
(95行目あたりにあったりなかったり)
そこから下に「Insert your custom code below this banner」ってある。上の画像にもちらっと写ってたり。
で,その下から割込みベクタが色々書いてあるが,一番上に
org 04h
halt
とある。これは,電源電圧が低すぎる状態になるとプログラムを非常停止するものなのかな?よく分からん。
少し下に行くと,
org 08h ;analog Column 0 Interrupt Vector
// call void_handler
reti
がデフォルトなら書き込まれてある。これは見た感じ,analog0の割込みベクタのようだが,コールの記述が打ち消されている。まだ,使うように設定されていない。
そこからまた下の方に行くと,
ljmp _UART_1_RX_ISR
reti
とある。これは,UARTモジュールを設定したので書き換えられたものと推測される。
この「_UART_1_RX_ISR」をどこかにメモっておこう。
今度は,lib\Library Source Files\UART_1INT.asmを開いて,さっきメモった文字列を検索する。
赤で示したところで,
Insert your custom assembly code below this banner
というところがあるので,その下の青いところに
ljmp _ (interrupt vector name)
を入力する(括弧のところは,わかりやすい割込み名を入れておいた方が良い。先頭のアンダーバーは必ず入れてておかないとダメ)。
次に,main.cファイルを開いて,プリプロセッサ
#pragma interrupt_handler (interrupt vector name)
を追加する(こっちでは,先頭のアンダーバーは入力しない)。
あとは,割込み関数を書いていくだけ。書式は,
void (interrupt vector name) (void)
{
// interrupt process
return ;
}
簡単やね。
あとは,割込み関数に割込み禁止・許可の命令も忘れずに書いておいて,完成!!
LinuxでRS232Cのシリアル通信
Evernoteからコピペ
Linuxでシリアル通信を実行しようと思っても,WindowsのTera Termと違って面倒なので備忘録を書いておくことに。
今回は,FT232RL系のモジュールを接続する例で考える。
はてなブログ始めました
何書くかまだ決めてないし,とりあえず気が向いたらダラダラ更新します。