From 23e5d273ef3e11c8ad463c632daa5a52684bc5bb Mon Sep 17 00:00:00 2001 From: James McKenzie Date: Mon, 3 Aug 2015 00:22:12 +0100 Subject: fish --- app/Makefile | 2 +- app/i2c.c | 48 ++++++++++++++++++++++++------------------------ app/lcd.c | 24 ++++++++++++------------ app/main.c | 15 +++++++-------- app/prototypes.h | 17 +++++++++++------ app/ticker.c | 1 + 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(); } -- cgit v1.2.3