4 * Copyright (C) 2013-06-10 K.Ohta <whatisthis.sowhat ai gmail.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2,
9 * or (at your option) any later version.
10 * This library / program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this library; see the file COPYING. If not, write to the
17 * Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
20 * As a special exception, if you link this(includeed from sdcc) library
21 * with other files, some of which are compiled with SDCC,
22 * to produce an executable, this library does not by itself cause
23 * the resulting executable to be covered by the GNU General Public License.
24 * This exception does not however invalidate any other reasons why
25 * the executable file might be covered by the GNU General Public License.
34 #include <pic18fregs.h> /* ONLY FOR PIC18x */
37 #include "lcd_acm1602.h"
45 extern keyin_defs keyin_old[2];
46 extern keyin_defs keyin_now;
47 extern char keyin_fifo[32];
48 extern char keyin_nowp;
49 extern char keyin_counter;
51 #define _LOCATE(x,y) acm1602_locate_16x2(LCD_I2CADDR, x, y)
52 #define _PUTCHAR(c) acm1602_putchar(LCD_I2CADDR, c)
53 #define _CURSOR_LEFT() acm1602_cursordir(LCD_I2CADDR, 0x00)
54 #define _CURSOR_RIGHT() acm1602_cursordir(LCD_I2CADDR, 0xff)
55 #define _CLS() acm1602_cls(LCD_I2CADDR);
56 #define _HOME() acm1602_home(LCD_I2CADDR);
57 #define _CURSOR_ON() acm1602_dispcursor(LCD_I2CADDR, 0xff)
58 #define _CURSOR_OFF() acm1602_dispcursor(LCD_I2CADDR, 0x00)
62 extern void keyin_init(void);
64 extern void push_keyinfifo(char b) __critical;
65 extern char pop_keyinfifo(void) __critical;
67 extern void push_keyinfifo(char b);
68 extern char pop_keyinfifo(void);
70 extern unsigned char readkey_compare(void);
72 extern void printstr(char *s);
73 extern void print_numeric(int i, unsigned char supressf);
74 extern void setsignal_tune(unsigned char flag);
75 extern void set_backlight(unsigned char flag, unsigned int val);
76 extern unsigned int read_numeric(unsigned int initial, unsigned char digit,
77 char startx, char starty);
78 extern unsigned long subst_numeric(unsigned long start, unsigned char pos, unsigned char c);
79 extern void print_numeric_nosupress(unsigned long data, unsigned char digit);
80 extern unsigned char readkey(void);
81 extern unsigned char pollkeys(unsigned char *p, unsigned int limit, unsigned char repeat);
82 extern unsigned char pollkey_single(void);
83 extern unsigned char pollkey_single_timeout(unsigned int limit, unsigned char repeat);