Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
155 Kevin 1
#ifndef SPI_H
2
#define	SPI_H
3
 
4
#define MAXSPIBUF 64
5
 
6
#define SPI2_WRITE_ONLY
7
 
8
// Option to use interrupt. If interrupt are used, SPI write does not block but
9
//  there is a longer delay between reading/writing data
10
//#define SPI2_USE_INTERRUPT
11
 
12
// SPI speed selection
13
#define SPI2_FOSC_64        0b0010
14
#define SPI2_FOSC_16        0b0001
15
#define SPI2_FOSC_8         0b1010
16
#define SPI2_FOSC_4         0b0000
17
 
18
typedef struct {
19
#ifndef SPI2_WRITE_ONLY
20
    char buffer_in[MAXSPIBUF];
21
    char buffer_in_read_ind;
22
    char buffer_in_write_ind;
23
    char buffer_in_len;
24
#endif
25
 
26
    char buffer_out[MAXSPIBUF];
27
    char buffer_out_ind;
28
    char buffer_out_len;
29
} SPI_DATA;
30
 
31
void SPI2_Init(SPI_DATA *data, char speed);
32
void SPI2_Write(char *msg, unsigned int length);
33
void SPI2_Write_Repeat(char c, unsigned int length);
34
#ifndef SPI2_WRITE_ONLY
35
void SPI2_Recv_Interrupt_Handler(void);
36
void SPI2_Read(char length);
37
char SPI2_Buffer_Len(void);
38
char SPI2_Read_Buffer(char *buffer);
39
#endif
40
 
41
#endif	/* SPI_H */
42