X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=lcd_acm1602.h;h=1d229b926fc64a1ee39860061402600a5b817766;hb=5985d1905d9ded48fc9137043fe2d83c5f66c6c9;hp=b4fb65684b9ee14d8decf0adb14fae081ddee461;hpb=2a4907034d9297ab00190afe76f3f6eb2e77d566;p=openi2cradio%2FOpenI2CRadio.git diff --git a/lcd_acm1602.h b/lcd_acm1602.h index b4fb656..1d229b9 100644 --- a/lcd_acm1602.h +++ b/lcd_acm1602.h @@ -30,40 +30,66 @@ #include #include +#ifdef __SDCC #include +#else +#include +#endif + #include #include "iodef.h" #include "i2c_io.h" +#include "idle.h" #ifdef __cplusplus extern "C" { #endif +#ifndef LCD_I2CADDR +#define LCD_I2CADDR 0xa0 +#endif // Notes: Master clock = 8MHz(0.125uS) // Wait 5us -#define _ACM1602_TC_WAIT() delay10tcy(4) +#ifdef __SDCC +//#define _ACM1602_TC_WAIT() delay10tcy(4) // Wait 50us #define _ACM1602_SHORT_WAIT() delay100tcy(4) // Wait 5ms -#define _ACM1602_LONG_WAIT() delay10ktcy(40) -// Wait 50ms -#define _ACM1602_LONG_LONG_WAIT() delay10ktcy(40) +#define _ACM1602_LONG_WAIT() idle_time_ms(50) +// Wait 200ms +//#define _ACM1602_LONG_LONG_WAIT() delay100ktcy(10) +#define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125) // Wait 5.5ms -#define _ACM1602_I2C_WAIT() delay1ktcy(44) - +#define _ACM1602_I2C_WAIT() idle_time_ms(6) +#else +//#define _ACM1602_TC_WAIT() __delay_us(5) +// Wait 50us +#define _ACM1602_SHORT_WAIT() __delay_us(50) +// Wait 5ms +#define _ACM1602_LONG_WAIT() idle_time_ms(50) +// Wait 125ms +#define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125) +// Wait 5.5ms +#define _ACM1602_I2C_WAIT() idle_time_ms(6) +#endif extern void acm1602_cls(unsigned char addr); extern void acm1602_putchar(unsigned char addr, unsigned char c); -extern void acm1602_locate_16x2(unsigned char addr, char x, char y); -extern void acm1602_locate_8x2(unsigned char addr, char x, char y); +extern void acm1602_locate_16x2(unsigned char addr, unsigned char x, unsigned char y); +extern void acm1602_locate_8x2(unsigned char addr, unsigned char x, unsigned char y); extern void acm1602_home(unsigned char addr); extern void acm1602_cursordir(unsigned char addr, unsigned char right); +extern void acm1602_dispcursor(unsigned char addr, unsigned char flag); extern void acm1602_init(unsigned char addr, unsigned char cls); -extern unsigned char acm1602_getchar(unsigned char addr); +extern void acm1602_suspend(unsigned char addr); +extern void acm1602_resume(unsigned char addr); + +//extern unsigned char acm1602_getchar(unsigned char addr); +#ifdef _USE_I2C_1602 /* * ST7032 extension functions */ @@ -71,7 +97,7 @@ extern void st7032_extcmd(unsigned char addr, unsigned char mode, unsigned char cmd, unsigned char busyf); extern void st7032_setcontrast(unsigned char addr, unsigned char value, unsigned char busyf); - +#endif #ifdef __cplusplus } #endif