Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
238 Kevin 1
#ifndef CONTROLLERS_H
2
#define	CONTROLLERS_H
3
 
274 Kevin 4
#define CONTROLLER_CMD_READ     0xA
5
#define CONTROLLER_CMD_WRITE    0xB
6
#define CONTROLLER_CMD_RESET    0xC
238 Kevin 7
 
8
#define CONTROLLER_BTN_DEFAULT  0xC0
9
#define CONTROLLER_LED_DEFAULT  0x00
10
 
274 Kevin 11
#define CONTROLLER_PREFIX_ADDRESS   0xA0
12
#define CONTROLLER_START_ADDRESS    0x01
13
#define CONTROLLER_END_ADDRESS      0x08
238 Kevin 14
 
274 Kevin 15
#define CONTROLLER_MAX_COUNT    8
16
 
238 Kevin 17
typedef struct {
274 Kevin 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];
238 Kevin 22
 
274 Kevin 23
    uint8_t connected_count;
238 Kevin 24
} CONTROLLER_DATA;
25
 
274 Kevin 26
void Controller_Init(CONTROLLER_DATA *data);
27
void Controller_Poll_Connected(void);
238 Kevin 28
void Controller_Update(void);
274 Kevin 29
void Controller_Set_Leds(uint8_t controller, uint16_t value);
30
uint8_t Controller_Query(uint8_t controller);
238 Kevin 31
 
32
#endif	/* CONTROLLERS_H */
33