Initial commit of fifo and i2c headers

This commit is contained in:
Ørn E. Hansen
2013-04-16 20:21:16 +00:00
parent 57e3d242b8
commit a3c31dff28
4 changed files with 88 additions and 1 deletions

View File

@@ -71,7 +71,9 @@ CSRCS= \
$(SRCDIR)/sd_card.c \ $(SRCDIR)/sd_card.c \
$(SRCDIR)/wait.c \ $(SRCDIR)/wait.c \
$(SRCDIR)/s19reader.c \ $(SRCDIR)/s19reader.c \
$(SRCDIR)/flash.c $(SRCDIR)/flash.c \
$(SRCDIR)/fifo.c \
$(SRCDIR)/i2c_firebee.c
ASRCS= \ ASRCS= \
$(SRCDIR)/startcf.S \ $(SRCDIR)/startcf.S \

View File

@@ -0,0 +1,39 @@
/*
* This is taken from general implementations
* on the internet, and definately needs some
* work.
*
* good enough for now.
*
*/
#ifndef FIREBEE_FIFO
#define FIREBEE_FIFO
#include <inttypes.h>
typedef struct {
char * buf;
int head;
int tail;
int size;
} fifo_t;
void fifo_init(fifo_t*,char*,int);
void fifo_advance(fifo_t*,int*);
uint8_t fifo_get(fifo_t*);
void fifo_put(fifo_t*,uint8_t);
void fifo_clear(fifo_t*);
int fifo_used(fifo_t*);
int fifo_unused(fifo_t*);
int fifo_full(fifo_t*);
int fifo_empty(fifo_t*);
int fifo_read(fifo_t*,char *,int);
int fifo_write(fifo_t*,const char*,int);
#endif

View File

@@ -0,0 +1,45 @@
/*
* i2c.h
*
*/
#ifndef I2CFIREBEE_h
#define I2CFIREBEE_h
#include <fifo.h>
#ifndef BUFSIZ
#define BUFSIZ 512
#endif
#define I2CTLREAD (('i'<<8) | 1)
#define I2CTLWRITE (('i'<<8) | 2)
#define I2CTLSBUF (('i'<<8) | 3)
#define I2CTLINIT (('i'<<8) | 4)
#define I2CTLDEV (('i'<<8) | 5)
// Set a specific bit
#define set_bit(p,bit) p |= bit
// Clear a specific bit
#define clear_bit(p,bit) p &= ~bit
#define ELAPSED(t) (t - ReadTimer())
#define I2C_BUFFER_LENGTH 32
#define I2C_READY 0
#define I2C_MXRX 1
#define I2C_MXTX 2
#define I2C_ADDR 6
#define I2C_READ 1
#define I2C_WRITE 0
unsigned long ReadTimer();
void DelayMicroSec(unsigned long);
void I2C_Init();
int I2C_ioctl(unsigned int, unsigned long);
#endif

View File

@@ -1,4 +1,5 @@
#define SYSTEM_CLOCK 133
#define cf_stack #define cf_stack
#define DIP_SWITCH (*(volatile uint8_t *)(&_MBAR[0xA2C])) #define DIP_SWITCH (*(volatile uint8_t *)(&_MBAR[0xA2C]))