プレステ1アナログコントローラ用ライブラリのサンプル

Dependencies:   mbed-src

Revision:
3:3a33f8294a84
Parent:
0:ab4722670dd8
--- a/pspad.cpp	Mon Sep 09 06:34:48 2013 +0000
+++ b/pspad.cpp	Fri Apr 04 05:23:04 2014 +0000
@@ -1,10 +1,3 @@
-/*
- * pspad.c
- *
- *  Created on: 2012/12/21
- *      Author: KORA
- */
-
 #include "mbed.h"
 #include "pspad.h"
 
@@ -25,6 +18,7 @@
 #define PS_FREQ    250//125         // パッドの動作周波数    (kHz)
                                     // タイマはこの2倍の周波数で動かす
                                     // 本来250kHzだが変更しても問題ない
+                                    // DAT線のプルアップ抵抗が高すぎる場合は速度を落とすこと
 
 #define TM_PERI    (500/PS_FREQ)    // タイマの1クロックに要する時間(us)
                                     // タイマの2クロックをパッドの1クロックとしている
@@ -34,6 +28,7 @@
 //----------------------------------------------------------
 Pspad::Pspad(PinName dat, PinName cmd, PinName sel, PinName clk) : datpin(dat), cmdpin(cmd), selpin(sel), clkpin(clk)
 {
+    datpin.mode(PullUp);
     // GPIOの出力値を設定する
     PS_CMD_H;               // CMD を1に
     PS_CLK_H;               // CLK を1に
@@ -74,10 +69,10 @@
 
         // クロックをHIGHに
         PS_CLK_H;
+        // 待機
+        while(tm.read_us()/TM_PERI <= 2*i+1);
         // 受信データ
         recv_data |= (PS_DAT<<i);
-        // 待機
-        while(tm.read_us()/TM_PERI <= 2*i+1);
 
         // 送信データを1ビットずらす
         send_data >>= 1;