Subversion Repositories Code-Repo

Rev

Rev 239 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
228 Kevin 1
#ifndef DEFINES_H
2
#define	DEFINES_H
3
 
232 Kevin 4
#include <xc.h>
5
#include <stdint.h>
6
 
228 Kevin 7
// <editor-fold defaultstate="collapsed" desc="I/O Pins">
8
#define BTN_L_N_TRIS    TRISAbits.TRISA1
9
#define BTN_L_N_PORT    PORTAbits.RA1
10
#define BTN_L_N_WPU     WPUAbits.WPUA1
11
 
12
#define BTN_L_S_TRIS    TRISAbits.TRISA0
13
#define BTN_L_S_PORT    PORTAbits.RA0
14
#define BTN_L_S_WPU     WPUAbits.WPUA0
15
 
16
#define BTN_R_N_TRIS    TRISCbits.TRISC2
17
#define BTN_R_N_PORT    PORTCbits.RC2
18
#define BTN_R_N_WPU     WPUCbits.WPUC2
19
 
20
#define BTN_R_E_TRIS    TRISAbits.TRISA3
21
#define BTN_R_E_PORT    PORTAbits.RA3
22
#define BTN_R_E_WPU     WPUAbits.WPUA3
23
 
24
#define BTN_R_S_TRIS    TRISAbits.TRISA5
25
#define BTN_R_S_PORT    PORTAbits.RA5
26
#define BTN_R_S_WPU     WPUAbits.WPUA5
27
 
28
#define BTN_R_W_TRIS    TRISAbits.TRISA2
29
#define BTN_R_W_PORT    PORTAbits.RA2
30
#define BTN_R_W_WPU     WPUAbits.WPUA2
31
 
239 Kevin 32
#define LED_4_TRIS      TRISCbits.TRISC3
33
#define LED_4_LAT       LATCbits.LATC3
228 Kevin 34
 
239 Kevin 35
#define LED_3_TRIS      TRISCbits.TRISC4
36
#define LED_3_LAT       LATCbits.LATC4
228 Kevin 37
 
239 Kevin 38
#define LED_2_TRIS      TRISCbits.TRISC5
39
#define LED_2_LAT       LATCbits.LATC5
228 Kevin 40
 
239 Kevin 41
#define LED_1_TRIS      TRISAbits.TRISA4
42
#define LED_1_LAT       LATAbits.LATA4
228 Kevin 43
 
44
#define I2C_CLK_TRIS    TRISCbits.TRISC0
45
#define I2C_DAT_TRIS    TRISCbits.TRISC1
46
// </editor-fold>
47
 
48
#define _XTAL_FREQ      32000000
49
 
230 Kevin 50
#define CMD_QUERY_BTN   0x0A
51
#define CMD_SET_LEDS    0x0B
228 Kevin 52
 
53
typedef union {
54
    struct {
55
        unsigned BTN_L_N    :1;
56
        unsigned BTN_L_S    :1;
57
        unsigned BTN_R_N    :1;
58
        unsigned BTN_R_E    :1;
59
        unsigned BTN_R_S    :1;
60
        unsigned BTN_R_W    :1;
61
        unsigned            :2;
62
    };
232 Kevin 63
    uint8_t value;
228 Kevin 64
} BTN_STATUS;
65
 
66
typedef union {
67
    struct {
68
        unsigned LED_1      :1;
69
        unsigned LED_2      :1;
70
        unsigned LED_3      :1;
71
        unsigned LED_4      :1;
72
    };
232 Kevin 73
    uint8_t value;
228 Kevin 74
} LED_STATUS;
75
 
76
void Pins_Read(BTN_STATUS *btns);
77
void Leds_Write(LED_STATUS *leds);
78
 
79
#endif	/* DEFINES_H */
80