PS/2

Dependents:   Synth Lab3Translator PS2_Keyboard CLI ... more

Committer:
shintamainjp
Date:
Wed Sep 29 22:15:03 2010 +0000
Revision:
2:a57bbbec16b1
Parent:
1:823c2798e398

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 1:823c2798e398 1 /**
shintamainjp 1:823c2798e398 2 * PS/2 mouse interface control class (Version 0.0.1)
shintamainjp 1:823c2798e398 3 *
shintamainjp 1:823c2798e398 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 1:823c2798e398 5 * http://shinta.main.jp/
shintamainjp 1:823c2798e398 6 */
shintamainjp 1:823c2798e398 7 #ifndef _PS2_MOUSE_H_
shintamainjp 1:823c2798e398 8 #define _PS2_MOUSE_H_
shintamainjp 1:823c2798e398 9
shintamainjp 1:823c2798e398 10 #include "PS2MS_INIT.h"
shintamainjp 1:823c2798e398 11 #include "PS2MS.h"
shintamainjp 1:823c2798e398 12
shintamainjp 1:823c2798e398 13 class PS2Mouse {
shintamainjp 1:823c2798e398 14 public:
shintamainjp 1:823c2798e398 15 PS2Mouse(PinName clk_pin, PinName dat_pin);
shintamainjp 1:823c2798e398 16 ~PS2Mouse();
shintamainjp 1:823c2798e398 17 typedef struct {
shintamainjp 1:823c2798e398 18 bool left;
shintamainjp 1:823c2798e398 19 bool center;
shintamainjp 1:823c2798e398 20 bool right;
shintamainjp 1:823c2798e398 21 int x;
shintamainjp 1:823c2798e398 22 int y;
shintamainjp 1:823c2798e398 23 int z;
shintamainjp 1:823c2798e398 24 } mouse_event_t;
shintamainjp 1:823c2798e398 25 bool processing(mouse_event_t *p);
shintamainjp 1:823c2798e398 26 private:
shintamainjp 1:823c2798e398 27 PS2MS_INIT ps2ms_init;
shintamainjp 1:823c2798e398 28 PS2MS ps2ms;
shintamainjp 1:823c2798e398 29 typedef struct {
shintamainjp 1:823c2798e398 30 union {
shintamainjp 1:823c2798e398 31 uint8_t byte;
shintamainjp 1:823c2798e398 32 struct {
shintamainjp 1:823c2798e398 33 uint8_t btnLeft:1;
shintamainjp 1:823c2798e398 34 uint8_t btnRight:1;
shintamainjp 1:823c2798e398 35 uint8_t btnCenter:1;
shintamainjp 1:823c2798e398 36 uint8_t always1:1;
shintamainjp 1:823c2798e398 37 uint8_t signX:1;
shintamainjp 1:823c2798e398 38 uint8_t signY:1;
shintamainjp 1:823c2798e398 39 uint8_t overflowX:1;
shintamainjp 1:823c2798e398 40 uint8_t overflowY:1;
shintamainjp 1:823c2798e398 41 } bit;
shintamainjp 1:823c2798e398 42 } byte1;
shintamainjp 1:823c2798e398 43 union {
shintamainjp 1:823c2798e398 44 uint8_t byte;
shintamainjp 1:823c2798e398 45 } byte2;
shintamainjp 1:823c2798e398 46 union {
shintamainjp 1:823c2798e398 47 uint8_t byte;
shintamainjp 1:823c2798e398 48 } byte3;
shintamainjp 1:823c2798e398 49 union {
shintamainjp 1:823c2798e398 50 uint8_t byte;
shintamainjp 1:823c2798e398 51 struct {
shintamainjp 1:823c2798e398 52 uint8_t value:7;
shintamainjp 1:823c2798e398 53 uint8_t signZ:1;
shintamainjp 1:823c2798e398 54 } bit;
shintamainjp 1:823c2798e398 55 } byte4;
shintamainjp 1:823c2798e398 56 } mouse_info_t;
shintamainjp 1:823c2798e398 57 mouse_info_t mi;
shintamainjp 1:823c2798e398 58 int cnt;
shintamainjp 1:823c2798e398 59 };
shintamainjp 1:823c2798e398 60
shintamainjp 1:823c2798e398 61 #endif