summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames McKenzie <git@madingley.org>2015-08-03 00:22:12 +0100
committerJames McKenzie <git@madingley.org>2015-08-03 00:22:12 +0100
commit23e5d273ef3e11c8ad463c632daa5a52684bc5bb (patch)
tree25392c9f60292d265fdc5066c6f3383512d71dc8
parent85caee84eec03dd1f04ceb8d01494322e713fd65 (diff)
downloadcandlestick-23e5d273ef3e11c8ad463c632daa5a52684bc5bb.tar.gz
candlestick-23e5d273ef3e11c8ad463c632daa5a52684bc5bb.tar.bz2
candlestick-23e5d273ef3e11c8ad463c632daa5a52684bc5bb.zip
fish
-rw-r--r--app/Makefile2
-rw-r--r--app/i2c.c48
-rw-r--r--app/lcd.c24
-rw-r--r--app/main.c15
-rw-r--r--app/prototypes.h17
-rw-r--r--app/ticker.c1
6 files changed, 56 insertions, 51 deletions
diff --git a/app/Makefile b/app/Makefile
index 3bdb8d4..f02196e 100644
--- a/app/Makefile
+++ b/app/Makefile
@@ -24,7 +24,7 @@ PROG=crypto
V=1
default: ${PROG}.elf
-CSRCS=dfu.c crypto.c main.c usb.c led.c ticker.c i2c1.c i2c2.c lcd.c keypad.c
+CSRCS=dfu.c crypto.c main.c usb.c led.c ticker.c i2c.c lcd.c keypad.c
BINARY = ${PROG}
diff --git a/app/i2c.c b/app/i2c.c
index db60931..89249d0 100644
--- a/app/i2c.c
+++ b/app/i2c.c
@@ -9,7 +9,7 @@
#define I2C_BB_DELAY do { delay_us(1); } while (0)
int
-i2c1_bb (int scl, int sda)
+i2c_bb (int scl, int sda)
{
if (scl)
gpio_set (GPIO_SCL, SCL);
@@ -26,62 +26,62 @@ i2c1_bb (int scl, int sda)
void
-i2c1_bb_start (void)
+i2c_bb_start (void)
{
- i2c1_bb (1, 1);
+ i2c_bb (1, 1);
I2C_BB_DELAY;
- i2c1_bb (1, 0);
+ i2c_bb (1, 0);
I2C_BB_DELAY;
- i2c1_bb (0, 0);
+ i2c_bb (0, 0);
I2C_BB_DELAY;
}
void
-i2c1_bb_stop (void)
+i2c_bb_stop (void)
{
- i2c1_bb (0, 0);
+ i2c_bb (0, 0);
I2C_BB_DELAY;
- i2c1_bb (1, 0);
+ i2c_bb (1, 0);
I2C_BB_DELAY;
- i2c1_bb (1, 1);
+ i2c_bb (1, 1);
I2C_BB_DELAY;
}
int
-i2c1_bb_send_data (uint8_t v)
+i2c_bb_send_data (uint8_t v)
{
int c;
for (c = 0x80; c; c >>= 1)
{
- i2c1_bb (0, c & v);
+ i2c_bb (0, c & v);
I2C_BB_DELAY;
- i2c1_bb (1, c & v);
+ i2c_bb (1, c & v);
I2C_BB_DELAY;
- i2c1_bb (0, c & v);
+ i2c_bb (0, c & v);
I2C_BB_DELAY;
}
- i2c1_bb (0, 1);
+ i2c_bb (0, 1);
I2C_BB_DELAY;
- i2c1_bb (1, 1);
+ i2c_bb (1, 1);
I2C_BB_DELAY;
- c = i2c1_bb (1, 1);
- i2c1_bb (0, 1);
+ c = i2c_bb (1, 1);
+ i2c_bb (0, 1);
return c;
}
int
-i2c1_bb_start_transaction (uint8_t a, int wnr)
+i2c_bb_start_transaction (uint8_t a, int wnr)
{
int ret;
- i2c1_bb_start ();
- ret = i2c1_bb_send_data (a << 1 | ! !(wnr));
+ i2c_bb_start ();
+ ret = i2c_bb_send_data (a << 1 | ! !(wnr));
return ret;
@@ -89,7 +89,7 @@ i2c1_bb_start_transaction (uint8_t a, int wnr)
#if 0
void
-i2c1_bb_scan (void)
+i2c_bb_scan (void)
{
int i, r;
@@ -118,15 +118,15 @@ i2c1_bb_scan (void)
#endif
void
-i2c1_bb_init (void)
+i2c_bb_init (void)
{
gpio_set_mode (GPIO_SCL, GPIO_MODE_OUTPUT_50_MHZ,
GPIO_CNF_OUTPUT_OPENDRAIN, SCL);
gpio_set_mode (GPIO_SDA, GPIO_MODE_OUTPUT_50_MHZ,
GPIO_CNF_OUTPUT_OPENDRAIN, SDA);
- i2c1_bb_start ();
- i2c1_bb_stop ();
+ i2c_bb_start ();
+ i2c_bb_stop ();
}
diff --git a/app/lcd.c b/app/lcd.c
index 5fc0b03..714e850 100644
--- a/app/lcd.c
+++ b/app/lcd.c
@@ -52,9 +52,9 @@ clock_nibble (uint8_t n)
{
if (backlight)
n |= LINE_BACKLIGHT;
- i2c1_bb_send_data (n);
- i2c1_bb_send_data (LINE_EN | n);
- i2c1_bb_send_data (n);
+ i2c_bb_send_data (n);
+ i2c_bb_send_data (LINE_EN | n);
+ i2c_bb_send_data (n);
}
@@ -92,9 +92,9 @@ send_command (uint8_t c)
static void
send_one_command (uint8_t cmd, int delay)
{
- i2c1_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
+ i2c_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
send_command (cmd);
- i2c1_bb_stop ();
+ i2c_bb_stop ();
if (delay)
delay_ms (delay);
}
@@ -150,7 +150,7 @@ lcd_refresh (void)
int addr;
- i2c1_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
+ i2c_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
for (r = 0; r < LCD_H; ++r)
@@ -178,7 +178,7 @@ lcd_refresh (void)
}
}
- i2c1_bb_stop ();
+ i2c_bb_stop ();
}
void
@@ -299,9 +299,9 @@ lcd_backlight (int i)
{
backlight = i;
- i2c1_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
- i2c1_bb_send_data (backlight ? LINE_BACKLIGHT : 0);
- i2c1_bb_stop ();
+ i2c_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
+ i2c_bb_send_data (backlight ? LINE_BACKLIGHT : 0);
+ i2c_bb_stop ();
}
@@ -312,7 +312,7 @@ lcd_backlight (int i)
void
lcd_reset (void)
{
- i2c1_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
+ i2c_bb_start_transaction (PCF8574_I2C_ADDRESS, I2C_WRITE);
clock_nibble (0x30);
delay_ms (5);
clock_nibble (0x30);
@@ -322,7 +322,7 @@ lcd_reset (void)
clock_nibble (0x20);
send_command (LCD_FUNC | LCD_FUNC_4BIT | LCD_FUNC_2ROWS | LCD_FUNC_5X7);
- i2c1_bb_stop ();
+ i2c_bb_stop ();
on ();
cls ();
}
diff --git a/app/main.c b/app/main.c
index 0d683e7..edca1e6 100644
--- a/app/main.c
+++ b/app/main.c
@@ -17,22 +17,21 @@ main (void)
ticker_init ();
led_init ();
- i2c1_bb_init ();
+ i2c_bb_init ();
lcd_init ();
- i2c2_bb_init ();
- keypad_init();
+ keypad_init ();
lcd_backlight (1);
#if 0
{
- char buf[16];
- sprintf(buf,"%x",dfu_flag);
- lcd_write(buf,0,1);
-}
+ char buf[16];
+ sprintf (buf, "%x", dfu_flag);
+ lcd_write (buf, 0, 1);
+ }
#endif
-
+
lcd_write ("hello world", 0, 0);
diff --git a/app/prototypes.h b/app/prototypes.h
index 78a0e8b..7f5498a 100644
--- a/app/prototypes.h
+++ b/app/prototypes.h
@@ -31,12 +31,12 @@ extern void delay_ms(uint32_t d);
extern int timed_out(uint32_t then, unsigned int ms);
extern void ticker_init(void);
/* i2c.c */
-extern int i2c1_bb(int scl, int sda);
-extern void i2c1_bb_start(void);
-extern void i2c1_bb_stop(void);
-extern int i2c1_bb_send_data(uint8_t v);
-extern int i2c1_bb_start_transaction(uint8_t a, int wnr);
-extern void i2c1_bb_init(void);
+extern int i2c_bb(int scl, int sda);
+extern void i2c_bb_start(void);
+extern void i2c_bb_stop(void);
+extern int i2c_bb_send_data(uint8_t v);
+extern int i2c_bb_start_transaction(uint8_t a, int wnr);
+extern void i2c_bb_init(void);
/* lcd.c */
extern uint8_t fb[2][16];
extern uint8_t shadow[2][16];
@@ -51,3 +51,8 @@ extern void lcd_backlight(int i);
extern void lcd_reset(void);
extern void lcd_init(void);
extern void lcd_shutdown(void);
+/* keypad.c */
+extern int i2c2_bb(int scl, int sda);
+extern uint16_t keypad_read(void);
+extern void keypad_tick(void);
+extern void keypad_init(void);
diff --git a/app/ticker.c b/app/ticker.c
index dcba0d1..c9d12ec 100644
--- a/app/ticker.c
+++ b/app/ticker.c
@@ -29,6 +29,7 @@ sys_tick_handler (void)
led_tick ();
lcd_tick ();
+ keypad_tick();
}