Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: User.cpp
- Revision:
- 16:b232fd9ee9c2
- Parent:
- 15:c5258a4dee75
- Child:
- 17:c5c41fcf316e
--- a/User.cpp Sat Apr 29 11:48:36 2017 +0000
+++ b/User.cpp Mon Aug 21 04:51:26 2017 +0000
@@ -3,24 +3,25 @@
#include "hci.h"
#include "ps3.h"
#include "User.h"
-
#include "mbed.h"
int RSX,RSY,LSX,LSY,BSU,BSL;
//これより下に関数外に書く要素を記入する
-PwmOut led1(LED1);
-PwmOut led2(LED2);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
+//spi通信用
+SPI spi(p5,p6,p7);
+DigitalOut cs(p8);
+
-void UserLoopSetting(){
- //一度だけ行いたい初期設定をここに書く
- led1.period_ms(20);
+void UserLoopSetting()
+{
+ spi.format(16,3);
+ spi.frequency(1000000);
}
-void UserLoop(char n,const u8* data){
+void UserLoop(char n,const u8* data)
+{
u16 ButtonState;
- if(n==0){//有線Ps3USB.cpp
+ if(n==0) { //有線Ps3USB.cpp
RSX = ((ps3report*)data)->RightStickX;
RSY = ((ps3report*)data)->RightStickY;
LSX = ((ps3report*)data)->LeftStickX;
@@ -29,7 +30,7 @@
BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
//ボタンの処理
ButtonState = ((ps3report*)data)->ButtonState;
- }else {//無線TestShell.cpp
+ } else {//無線TestShell.cpp
RSX = ((ps3report*)(data + 1))->RightStickX;
RSY = ((ps3report*)(data + 1))->RightStickY;
LSX = ((ps3report*)(data + 1))->LeftStickX;
@@ -40,24 +41,81 @@
ButtonState = ((ps3report*)(data + 1))->ButtonState;
}
//ここより下にプログラムを書く
-
-
- //データ取得例
- if((ButtonState >> BUTTONCIRCLE)&1 == 1) {
- led1 = 1;
- //○が押されたとき
- }else{
- led1 = 0;
- //○を押してないとき
+ //spi通信用プログラム
+
+ int a,b,c,d,e,f,g,h,i,j;
+ int send = 0;
+
+
+ while(1) {
+ if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { //フォトトランジスタ1
+ a = 1;
+ } else {
+ a = 0;
+ }
+
+ if((ButtonState >> BUTTONCIRCLE)&1 == 1) {//フォトトランジスタ2
+ b = 2;
+ } else {
+ b = 0;
+ }
+
+ if((ButtonState >> BUTTONUP)&1 == 1) {//対応するボタンを書く(今回上ボタン
+ c = 4;
+ } else {
+ c = 0;
+ }
+
+ if((ButtonState >> BUTTONDOWN)&1 == 1) {//対応するボタンを書く(今回下ボタン
+ d = 8;
+ } else {
+ d = 0;
+ }
+
+ if((ButtonState >> BUTTONL1)&1 == 1) {//対応するボタンを書く(今回L1ボタン
+ e = 16;
+ } else {
+ e = 0;
}
-
- led1=LSX/256.0f;
- led2=LSY/256.0f;
- led3=ButtonState & 0x0400; //L1の状態
- led4=ButtonState & 0x0800; //R1の状態
- //値の取得はps3.hを参照
- //ここまでプログラム例 実機に乗せるときは消して大丈夫です
-
-
-
+
+ if((ButtonState >> BUTTONL2)&1 == 1) {//対応するボタンを書く(今回L2ボタン
+ f = 32;
+ } else {
+ f = 0;
+ }
+
+ if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン
+ g = 64;
+ } else {
+ g = 0;
+ }
+
+ if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン
+ h = 128;
+ } else {
+ h = 0;
+ }
+
+ if((ButtonState >> BUTTONR1)&1 == 1) {//対応するボタンを書く(今回R1ボタン
+ i = 256;
+ } else {
+ i = 0;
+ }
+
+ if((ButtonState >> BUTTONR2)&1 == 1) {//対応するボタンを書く(今回R2ボタン
+ j = 512;
+ } else {
+ j = 0;
+ }
+
+
+
+ send = a+b+c+d+e+f+g+h+i+j;
+
+ cs = 0;
+ spi. write(send);
+ cs = 1;
+ printf("%d\r\n",send);
+
+ }
}
\ No newline at end of file