OSDN Git Service

git-svn-id: http://svn.osdn.jp/svnroot/mimic/trunk@127 47198e57-cb75-475f-84c4-a814cd...
authornyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Sat, 10 Dec 2011 08:46:30 +0000 (08:46 +0000)
committernyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Sat, 10 Dec 2011 08:46:30 +0000 (08:46 +0000)
misc/MiMicVM/api.js/LPC1769.Pin.js [new file with mode: 0644]

diff --git a/misc/MiMicVM/api.js/LPC1769.Pin.js b/misc/MiMicVM/api.js/LPC1769.Pin.js
new file mode 100644 (file)
index 0000000..59a6b7f
--- /dev/null
@@ -0,0 +1,80 @@
+/**\r
+ * @fileOverview LPCXpresso1769の物理ピンを制御するクラスを定義する。\r
+ */\r
+\r
+(function(){\r
+var DEV=LPCXpresso1769;\r
+var BCF=DEV._BCF;\r
+var EE=DEV._EE;\r
+var isUndef=MiMicLib.isUndef;\r
+\r
+/**\r
+ * LPCXPresso1769.Pin (Pin)クラスのコンストラクタ。\r
+ * ピン識別子を元に、MCUに関連付けたPinインスタンスを生成する。\r
+ * Pinクラスは、MCUの物理ピン単位に、操作インタフェイスを定義する。\r
+ * クラスは、1ピンのポートとして実装する。\r
+ * @name LPCXpresso1769.Pin\r
+ * @constructor\r
+ * @param {object as LPCXpresso1769.Mcu} i_mcu\r
+ * インスタンスを結びつけるMcuオブジェクト。\r
+ * @param {object as ピン識別子} i_pin\r
+ * 生成するピンのピン識別子。\r
+ * @param {object as associative array} i_opt\r
+ * インスタンス生成と同時にsetOpt関数で設定する値。省略時は無視する。\r
+ * 詳細はsetOpt関数を参照。\r
+ * このクラスは、上位クラスへピンの基本的な操作機能を提供する為のものであり、ユーザが直接使用することは(あまり)ない。\r
+ * この関数は、MiMicの管理しているピン(ENET_?)も操作することが出来るが、操作してしまうとMiMicRemoteMcuとのコネクションが破壊されるので、注意すること。\r
+ * @example\r
+ * //create pin instance at P0[0]\r
+ * var mcu=new LPCXpresso1769.Mcu(“192.168.0.39”);\r
+ * var pin=new LPCXpresso1769.Pin(mcu,LPCXpresso.P0[0]);\r
+ */\r
+DEV.Pin=function Pin(i_mcu,i_pin,i_opt)\r
+{\r
+       try{\r
+               if(isUndef(i_pin)){\r
+                       throw new MiMicException(EE.INVALID_PIN);\r
+               }\r
+               //1ピンのポートとして実装する。\r
+               this._port=new DEV.Port(i_mcu,[i_pin],isUndef(i_opt)?undefined:[i_opt]);\r
+       }catch(e){\r
+               throw new MiMicException(e);\r
+       }\r
+}\r
+DEV.Pin.prototype=\r
+{      \r
+       _port:null,\r
+       /**\r
+        * ピンにオプションパラメータをセットする。\r
+        * 関数は、物理ピンのレジスタに、i_optで与えられる値を設定する。\r
+        * 関数は、レジスタの位置に合わせてパラメータ値を自動的にシフトする。\r
+        * @name LPCXpresso1769.Pin#setOpt\r
+        * @function\r
+        * @param {object as associative array} i_opt\r
+        * ピンコンフィグレーションのパラメタである。必要な値を格納した連想配列で指定する。\r
+        * 全ての値を省略することは出来ない。連想配列のメンバは以下の通り。\r
+        * <pre>{sel,mode,od}</pre>\r
+        * <ul>\r
+        * <li>sel:int - 2bitのint値。 PINSEL? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+        * <li>mode:int - 1bitのint値。PINMODE? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+        * <li>od:int - 1bitのbit値 PINMODE_OD? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+        * </ul>\r
+        * @example\r
+        * //set GPIO,mode=1,open drain=0\r
+        * var mcu=new LPCXpresso1769.Mcu(“192.168.0.39”);\r
+        * var pin=new LPCXpresso1769.Pin(mcu,LPCXpresso.P2[3]);\r
+        * pin.setOpt({sel:0,mode:1,od:0});      \r
+        */\r
+       setOpt:function setOpt(i_opt)\r
+       {\r
+               try{\r
+                       //portのsetOptで合成\r
+                       this._port.setOpts([i_opt]);\r
+               }catch(e){\r
+                       throw new MiMicException(e);\r
+               }\r
+               return;\r
+       }\r
+}\r
+\r
+}());
\ No newline at end of file