OSDN Git Service

[SCHEMATIC] Modify SW/MW/LW Preamp, insert galbanic-isolator replace of common-mode...
[openi2cradio/OpenI2CRadio.git] / ui.c
diff --git a/ui.c b/ui.c
index 1e42ec5..07dcc0a 100644 (file)
--- a/ui.c
+++ b/ui.c
@@ -63,6 +63,58 @@ char keyin_counter;
 
 unsigned char cold;
 
+// LCD Routines
+void _PUTCHAR(unsigned char c)
+{
+    acm1602_putchar(LCD_I2CADDR , c);
+}
+
+void _LOCATE(unsigned char x, unsigned char y)
+{
+    acm1602_locate_16x2(LCD_I2CADDR , x, y);
+}
+
+void _LOCATE_0_0(void)
+{
+    acm1602_locate_16x2(LCD_I2CADDR , 0, 0);
+}
+
+void _LOCATE_0_1(void)
+{
+    acm1602_locate_16x2(LCD_I2CADDR , 0, 1);
+}
+
+void _CLS(void)
+{
+    acm1602_cls(LCD_I2CADDR);
+}
+void _HOME(void)
+{
+    acm1602_home(LCD_I2CADDR);
+}
+
+void _CURSOR_ON(void)
+{
+    acm1602_dispcursor(LCD_I2CADDR, 0xff);
+}
+
+
+void _CURSOR_OFF(void)
+{
+    acm1602_dispcursor(LCD_I2CADDR, 0x00);
+}
+
+void _CURSOR_LEFT(void)
+{
+    acm1602_cursordir(LCD_I2CADDR , 0x00);
+}
+
+void _CURSOR_RIGHT(void)
+{
+    acm1602_cursordir(LCD_I2CADDR , 0xff);
+}
+
+
 void keyin_init(void)
 {
     char i;
@@ -93,7 +145,7 @@ void push_keyinfifo(char b)
     keyin_fifo[keyin_nowp] = b;
     keyin_nowp++;
     keyin_counter++;
-    if((keyin_nowp > 31) || (keyin_nowp < 0)) keyin_nowp = 0;
+    if(keyin_nowp > 31) keyin_nowp = 0;
 }
 
 /*
@@ -113,20 +165,20 @@ char pop_keyinfifo(void)
     c = keyin_fifo[keyin_readp];
     keyin_readp++;
     keyin_counter--;
-    if((keyin_readp > 31) || (keyin_readp < 0)) keyin_readp = 0;
+    if(keyin_readp > 31) keyin_readp = 0;
     return c;
 }
 
-void printstr(char *s)
+void printstr(const char *s)
 {
     int p = 0;
-    _CURSOR_RIGHT();
+//    _CURSOR_RIGHT();
     if(s == NULL) return;
     do {
         if(s[p] == '\0') break;
         _PUTCHAR(s[p]);
         p++;
-    } while(p < 255);
+    } while(p < 32);
 }
 
 
@@ -148,7 +200,6 @@ void print_numeric_nosupress(unsigned long data, unsigned char digit)
     unsigned char i;
     unsigned char bcd[11];
 
-
     if(digit == 0) return;
     if(digit > 10) digit = 10;
     uint2bcd(data, bcd);
@@ -310,6 +361,7 @@ unsigned char pollkey_single(void)
 unsigned char pollkey_numeric(unsigned char init)
 {
     unsigned char c;
+    _PUTCHAR('0' + init);
     c = pollkey_single();
     if(c == charcode_0) {
         return 0;
@@ -320,10 +372,10 @@ unsigned char pollkey_numeric(unsigned char init)
     }
 }
 
-unsigned char pollkey_single_timeout(unsigned int limit, unsigned char repeat)
+unsigned char pollkey_single_timeout(unsigned char limit, unsigned char repeat)
 {
     unsigned char c;
-    unsigned int ticks = 0;
+    unsigned char ticks = 0;
     unsigned char penalty = 0;
     unsigned char count = 0;
 
@@ -363,7 +415,7 @@ unsigned char pollkey_single_timeout(unsigned int limit, unsigned char repeat)
     /*
      * Set Deadzone.
      */
-    if(limit == 0) {
+    if(limit != 0) {
         while(ticks <= limit) {
             idle_time_ms(5 + 18);
             ticks++;
@@ -386,4 +438,4 @@ unsigned char pollkey_single_timeout(unsigned int limit, unsigned char repeat)
  * In application handler:
  * c = pop_keyinfifo();
  * if(c != 0) do(c);
- */
\ No newline at end of file
+ */