プレステ1アナログコントローラ用ライブラリのサンプル
Diff: pspad.cpp
- 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;