|
自己编写的一个ps2摇杆的类,大家给点意见
主程序: - //--------------------------------------------------------------------test.ino----------------------------------------------
- #include "ps2.h"
- ps2 ps;
- void setup()
- {
- ps.init(0,1,2);
- //函数指针赋值
- ps.Up=Up;
- ps.Middle=Middle;
- ps.Dwon=Down;
- }
- void loop()
- {
- ps.setXYvalue(495,519); //设置中间值
- ps.run();
- delay(500);
- }
-
- void Up()
- {
- Serial.println("up");
- }
- void Middle()
- {
- Serial.println("Middle");
- }
- void Down()
- {
- Serial.println("Down");
- }
复制代码
- //------------------------------------------------------------ps2.h头文件------------------------------------------------
- #ifndef ps2H
- #define ps2H
- //---------------------------------------------------------------------------
- #include <Arduino.h>
- class ps2
- {
- private:
- //当前x,y值
- int x_position;
- int y_position;
- //中间值,也就是不动摇杆时的X,Y值
- int X_Middle;
- int Y_Middle;
- //模拟端口
- int PIN_ANALOG_X;
- int PIN_ANALOG_Y;
- // 模拟端口,数字端口都可以
- int PIN_ANALOG_K;
- //中间按钮
- bool k_pressed;
- public:
- //
- ps2();
- void setXYvalue(int X,int Y); //设置X,Y的中间值
- void init( int X, int Y, int k);//初始化端口
- int getX_position();//读取当前X的值
- int getY_position();//读取当前Y的值
- bool getKey();//读取中间按钮是否为按下状态
- void run();//运行程序
- //函数指针
- void (*Middle)(); // 横/竖,中间
- void (*Up)();
- void (*Dwon)();
- void (*Left)();
- void (*Right)();
- void (*LeftUp)();
- void (*RightUp)();
- void (*LeftDwon)();
- void (*RightDwon)();
- };
- #endif
复制代码
|
|