3 * I2C/Parallel LCD ACM1602 Handler, variant of ST7066U.
4 * Copyright (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2,
10 * or (at your option) any later version.
11 * This library / program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 * See the GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this library; see the file COPYING. If not, write to the
18 * Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
21 * As a special exception, if you link this(includeed from sdcc) library
22 * with other files, some of which are compiled with SDCC,
23 * to produce an executable, this library does not by itself cause
24 * the resulting executable to be covered by the GNU General Public License.
25 * This exception does not however invalidate any other reasons why
26 * the executable file might be covered by the GNU General Public License.
51 #define LCD_I2CADDR 0xa0
53 // Notes: Master clock = 8MHz(0.125uS)
56 #define _ACM1602_TC_WAIT() delay10tcy(4)
58 #define _ACM1602_SHORT_WAIT() delay100tcy(4)
60 #define _ACM1602_LONG_WAIT() idle_time_ms(50)
62 //#define _ACM1602_LONG_LONG_WAIT() delay100ktcy(10)
63 #define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125)
65 #define _ACM1602_I2C_WAIT() idle_time_ms(6)
67 #define _ACM1602_TC_WAIT() __delay_us(5)
69 #define _ACM1602_SHORT_WAIT() __delay_us(50)
71 #define _ACM1602_LONG_WAIT() idle_time_ms(50)
73 #define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125)
75 #define _ACM1602_I2C_WAIT() idle_time_ms(6)
79 extern void acm1602_cls(unsigned char addr);
80 extern void acm1602_putchar(unsigned char addr, unsigned char c);
81 extern void acm1602_locate_16x2(unsigned char addr, char x, char y);
82 extern void acm1602_locate_8x2(unsigned char addr, char x, char y);
83 extern void acm1602_home(unsigned char addr);
84 extern void acm1602_cursordir(unsigned char addr, unsigned char right);
85 extern void acm1602_dispcursor(unsigned char addr, unsigned char flag);
86 extern void acm1602_init(unsigned char addr, unsigned char cls);
87 extern void acm1602_suspend(unsigned char addr);
88 extern void acm1602_resume(unsigned char addr);
90 //extern unsigned char acm1602_getchar(unsigned char addr);
94 * ST7032 extension functions
96 extern void st7032_extcmd(unsigned char addr, unsigned char mode,
97 unsigned char cmd, unsigned char busyf);
98 extern void st7032_setcontrast(unsigned char addr, unsigned char value,
105 #endif /* LCD_ACM1602_H */