From 62490ef2e61f6e07dbc46d5f7710a7d59287fb31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98rn=20E=2E=20Hansen?= Date: Thu, 18 Apr 2013 19:43:00 +0000 Subject: [PATCH] I2C, register the handler in init --- i2cspi_BaS_gcc/sources/i2c_firebee.c | 35 +++++++++++++++------------- i2cspi_BaS_gcc/sources/interrupts.c | 2 +- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/i2cspi_BaS_gcc/sources/i2c_firebee.c b/i2cspi_BaS_gcc/sources/i2c_firebee.c index 915cad2..e5ded91 100644 --- a/i2cspi_BaS_gcc/sources/i2c_firebee.c +++ b/i2cspi_BaS_gcc/sources/i2c_firebee.c @@ -8,6 +8,8 @@ #include +int register_handler(uint8_t,uint8_t,void (*func)()); + static struct { uint8_t state; @@ -22,22 +24,6 @@ char local_buf[BUFSIZ]; #define FIFO &i2c_param.fifo -/* - * I2Cinit: I2C initilazation as master - * - * Parameters: None. - * - * Return : None. - */ -void I2C_Init() -{ - i2c_param.fifo.buf = local_buf; - i2c_param.fifo.size = BUFSIZ; - i2c_param.delay = 133 * 10L; // We can safely ignore this - i2c_param.len = 0; - I2C_ioctl(0, 0); -} - void __attribute__ ((interrupt)) I2C_InterruptHandler(void) { char ch; @@ -123,6 +109,23 @@ void __attribute__ ((interrupt)) I2C_InterruptHandler(void) } } +/* + * I2Cinit: I2C initilazation as master + * + * Parameters: None. + * + * Return : None. + */ +void I2C_Init() +{ + i2c_param.fifo.buf = local_buf; + i2c_param.fifo.size = BUFSIZ; + i2c_param.delay = 133 * 10L; // We can safely ignore this + i2c_param.len = 0; + I2C_ioctl(0, 0); + register_handler(1,40,I2C_InterruptHandler); +} + void I2C_send(unsigned short device, unsigned char *buf, unsigned short len) { if (len > i2c_param.fifo.size) diff --git a/i2cspi_BaS_gcc/sources/interrupts.c b/i2cspi_BaS_gcc/sources/interrupts.c index 32912bf..beb94be 100644 --- a/i2cspi_BaS_gcc/sources/interrupts.c +++ b/i2cspi_BaS_gcc/sources/interrupts.c @@ -59,7 +59,7 @@ register_handler(uint8_t priority, uint8_t intr, void (*func)()) // Return the saved priority level __asm__ volatile ( "move.w (%%sp)+,%%d2\n\t" \ - "move.w %%d2,sr\n\t" + "move.w %%d2,%%sr\n\t" : \ : \ : \