Subversion Repositories Code-Repo

Rev

Rev 240 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 240 Rev 274
Line 1... Line 1...
1
#ifndef CONTROLLERS_H
1
#ifndef CONTROLLERS_H
2
#define	CONTROLLERS_H
2
#define	CONTROLLERS_H
3
 
3
 
4
#define CONTROLLER_READ     0xA
4
#define CONTROLLER_CMD_READ     0xA
5
#define CONTROLLER_WRITE    0xB
5
#define CONTROLLER_CMD_WRITE    0xB
-
 
6
#define CONTROLLER_CMD_RESET    0xC
6
 
7
 
7
#define CONTROLLER_BTN_DEFAULT  0xC0
8
#define CONTROLLER_BTN_DEFAULT  0xC0
8
#define CONTROLLER_LED_DEFAULT  0x00
9
#define CONTROLLER_LED_DEFAULT  0x00
9
 
10
 
-
 
11
#define CONTROLLER_PREFIX_ADDRESS   0xA0
10
#define CONTROLLER_1_ADDRESS    0x24
12
#define CONTROLLER_START_ADDRESS    0x01
11
#define CONTROLLER_2_ADDRESS    0x25
13
#define CONTROLLER_END_ADDRESS      0x08
-
 
14
 
-
 
15
#define CONTROLLER_MAX_COUNT    8
12
 
16
 
13
typedef struct {
17
typedef struct {
14
    void (*btn_change_callback)(uint8_t ctrl_1, uint8_t ctrl_2);
18
    uint8_t connected_controllers[CONTROLLER_MAX_COUNT];
-
 
19
    uint8_t led_status[CONTROLLER_MAX_COUNT][2];
-
 
20
    uint8_t btn_prev[CONTROLLER_MAX_COUNT];
-
 
21
    uint8_t btn_last[CONTROLLER_MAX_COUNT];
15
 
22
 
16
    uint8_t ctrl_1_connected;
23
    uint8_t connected_count;
17
    uint8_t ctrl_1_buttons_prev;
-
 
18
    uint8_t ctrl_1_leds;
-
 
19
    uint8_t ctrl_1_active;
-
 
20
    
-
 
21
    uint8_t ctrl_2_connected;
-
 
22
    uint8_t ctrl_2_buttons_prev;
-
 
23
    uint8_t ctrl_2_leds;
-
 
24
    uint8_t ctrl_2_active;
-
 
25
} CONTROLLER_DATA;
24
} CONTROLLER_DATA;
26
 
25
 
27
void Controller_Init(CONTROLLER_DATA *data, 
26
void Controller_Init(CONTROLLER_DATA *data);
28
        void (*btn_change_callback)(uint8_t, uint8_t));
27
void Controller_Poll_Connected(void);
29
void Controller_Update(void);
28
void Controller_Update(void);
30
void Controller_Set_Leds(uint8_t ctrl_1, uint8_t ctrl_2);
29
void Controller_Set_Leds(uint8_t controller, uint16_t value);
31
void Controller_Btn_Change(void (*callback)(uint8_t, uint8_t));
-
 
32
uint8_t Controller_Query(void);
30
uint8_t Controller_Query(uint8_t controller);
33
 
31
 
34
#endif	/* CONTROLLERS_H */
32
#endif	/* CONTROLLERS_H */
35
 
33