FSSR( FLAG Source Sensitivity Register )はプログラマブル・フラグの割り込み種別を決めます。
このレジスタは16ビットのビットマップレジスタです。初期値は0x0000です。
各ビットはPF入力ピンに対応しています。FSSRレジスタにデータを書き込むと、1に対応するPF入力はエッジセンス割り込みになります。0に対応するPF入力はレベルセンス割り込みになります。
レベルセンスの場合、割り込みはアクティブレベルで発生します。エッジセンスの場合、割り込みはアクティブエッジで発生します。FSPRを使ってアクティブレベルとアクティブエッジを変更できます。
発生条件を以下の表にまとめます。H/LはPFに加えられる電圧レベルをあらわします。↑↓はそれぞれ電圧の立ち上がりと立下りをあらわします。表の○がついている条件で割り込みが発生します。
| 制御レジスタ | PFピンの状態 | |||||
|---|---|---|---|---|---|---|
| FSBER | FSSR | FSPR | H | L | ↑ | ↓ | 
| 0 | 0 | 0 | x | x | 〇 | - | 
| 0 | 0 | 1 | x | x | - | 〇 | 
| 0 | 1 | 0 | 〇 | - | x | x | 
| 0 | 1 | 1 | - | 〇 | x | x | 
| 1 | 0 | 0 | x | x | 〇 | 〇 | 
| 1 | 0 | 1 | x | x | 〇 | 〇 | 
| 1 | 1 | 0 | 〇 | - | x | x | 
| 1 | 1 | 1 | - | 〇 | x | x | 
C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。FSSRにアクセスする前には必ずIOPGにGeneral_Purpose_IOを設定してください。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, General_Purpose_IO) // PFページに設定 io_space_write(FSSR, 値) // FSSRに値を設定 変数 = io_space_read(FSSR) // FSSRの値を取得
| 項目 | マニュアルのページ等 | 
|---|---|
| レジスタ構造 | HR 14-44 |