Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 273 → Rev 274

/PIC Stuff/Cerebot_32MX7_LED_Cube/CONTROLLERS.h
1,35 → 1,33
#ifndef CONTROLLERS_H
#define CONTROLLERS_H
 
#define CONTROLLER_READ 0xA
#define CONTROLLER_WRITE 0xB
#define CONTROLLER_CMD_READ 0xA
#define CONTROLLER_CMD_WRITE 0xB
#define CONTROLLER_CMD_RESET 0xC
 
#define CONTROLLER_BTN_DEFAULT 0xC0
#define CONTROLLER_LED_DEFAULT 0x00
 
#define CONTROLLER_1_ADDRESS 0x24
#define CONTROLLER_2_ADDRESS 0x25
#define CONTROLLER_PREFIX_ADDRESS 0xA0
#define CONTROLLER_START_ADDRESS 0x01
#define CONTROLLER_END_ADDRESS 0x08
 
#define CONTROLLER_MAX_COUNT 8
 
typedef struct {
void (*btn_change_callback)(uint8_t ctrl_1, uint8_t ctrl_2);
uint8_t connected_controllers[CONTROLLER_MAX_COUNT];
uint8_t led_status[CONTROLLER_MAX_COUNT][2];
uint8_t btn_prev[CONTROLLER_MAX_COUNT];
uint8_t btn_last[CONTROLLER_MAX_COUNT];
 
uint8_t ctrl_1_connected;
uint8_t ctrl_1_buttons_prev;
uint8_t ctrl_1_leds;
uint8_t ctrl_1_active;
uint8_t ctrl_2_connected;
uint8_t ctrl_2_buttons_prev;
uint8_t ctrl_2_leds;
uint8_t ctrl_2_active;
uint8_t connected_count;
} CONTROLLER_DATA;
 
void Controller_Init(CONTROLLER_DATA *data,
void (*btn_change_callback)(uint8_t, uint8_t));
void Controller_Init(CONTROLLER_DATA *data);
void Controller_Poll_Connected(void);
void Controller_Update(void);
void Controller_Set_Leds(uint8_t ctrl_1, uint8_t ctrl_2);
void Controller_Btn_Change(void (*callback)(uint8_t, uint8_t));
uint8_t Controller_Query(void);
void Controller_Set_Leds(uint8_t controller, uint16_t value);
uint8_t Controller_Query(uint8_t controller);
 
#endif /* CONTROLLERS_H */