]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2003-10-08 13:39:53 by andy-b]
authorandy-b <andy-b@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 8 Oct 2003 13:39:53 +0000 (13:39 +0000)
committerandy-b <andy-b@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 8 Oct 2003 13:39:53 +0000 (13:39 +0000)
Cleaned up code in MilfordInstruments.c, and added descriptions for other display sizes (untested)

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@262 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

MilfordInstruments.c

index ae2b7f194b2839cf6d756c81d8feac92a2d20419..2818e26895469fe20333ed4e4ef35d10d4f07e26 100644 (file)
@@ -1,18 +1,18 @@
-/* $Id: MilfordInstruments.c,v 1.2 2003/10/05 17:58:50 reinelt Exp $
+/* $Id: MilfordInstruments.c,v 1.3 2003/10/08 13:39:53 andy-b Exp $
  *
- * driver for Milford Instruments serial display modules
- * based on the MatrixOrbital driver by M. Reinelt 
+ * driver for Milford Instruments 'BPK' piggy-back serial interface board
+ * for standard Hitachi 44780 compatible lcd modules.
  *
- * Copyright 2003 Andy Baxter <andy@earthsong.free-online.co.uk>
+ * Written 2003 by Andy Baxter <andy@earthsong.free-online.co.uk>
  *
- * This file is part of LCD4Linux.
+ * based on the MatrixOrbital driver by M. Reinelt 
  *
- * LCD4Linux is free software; you can redistribute it and/or modify
+ * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2, or (at your option)
  * any later version.
  *
- * LCD4Linux is distributed in the hope that it will be useful,
+ * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -23,8 +23,8 @@
  *
  *
  * $Log: MilfordInstruments.c,v $
- * Revision 1.2  2003/10/05 17:58:50  reinelt
- * libtool junk; copyright messages cleaned up
+ * Revision 1.3  2003/10/08 13:39:53  andy-b
+ * Cleaned up code in MilfordInstruments.c, and added descriptions for other display sizes (untested)
  *
  * Revision 1.1  2003/09/29 06:58:36  reinelt
  * new driver for Milford Instruments MI420 by Andy Baxter
@@ -118,10 +118,10 @@ static void MI_write (char *string, int len)
 
 static void MI_define_char (int ascii, char *buffer)
 {
-  char cmd[3]="\376x";
+  char cmd[2]="\376x";
   if (ascii<8) {
-    cmd[2]=(char)(64+ascii*8);
-    MI_write (cmd, 3);
+    cmd[1]=(char)(64+ascii*8);
+    MI_write (cmd, 2);
     MI_write (buffer, 8);
   }
 }
@@ -210,21 +210,13 @@ static int MI_init (LCD *Self)
 void MI_goto (int row, int col)
 {
   char cmd[2]="\376x";
-  char ddbase=0;
-  switch (row) {
-  case 0:
-    ddbase=128;
-    break;
-  case 1:
-    ddbase=192;
-    break;
-  case 2:
-    ddbase=148;
-    break;
-  case 3:
-    ddbase=212;
-    break;
-  }
+  char ddbase=128;
+  if (row & 1) { // i.e. if row is 1 or 3
+    ddbase += 64;
+    };
+  if (row & 2) { // i.e. if row is 0 or 2.
+    ddbase += 20;
+    };
   cmd[1]=(char)(ddbase+col);
   MI_write(cmd,2);
 }
@@ -315,6 +307,57 @@ int MI_quit (void)
 
 
 LCD MilfordInstruments[] = {
+  { name: "MI216",
+    rows:  2, 
+    cols:  16,
+    xres:  XRES,
+    yres:  YRES,
+    bars:  BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+    icons: 0,
+    gpos:  0,
+    init:  MI_init,
+    clear: MI_clear,
+    put:   MI_put,
+    bar:   MI_bar,
+    icon:  MI_icon,
+    gpo:   NULL,
+    flush: MI_flush,
+    quit:  MI_quit 
+  },
+  { name: "MI220",
+    rows:  2, 
+    cols:  20,
+    xres:  XRES,
+    yres:  YRES,
+    bars:  BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+    icons: 0,
+    gpos:  0,
+    init:  MI_init,
+    clear: MI_clear,
+    put:   MI_put,
+    bar:   MI_bar,
+    icon:  MI_icon,
+    gpo:   NULL,
+    flush: MI_flush,
+    quit:  MI_quit 
+  },
+  { name: "MI240",
+    rows:  2, 
+    cols:  40,
+    xres:  XRES,
+    yres:  YRES,
+    bars:  BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+    icons: 0,
+    gpos:  0,
+    init:  MI_init,
+    clear: MI_clear,
+    put:   MI_put,
+    bar:   MI_bar,
+    icon:  MI_icon,
+    gpo:   NULL,
+    flush: MI_flush,
+    quit:  MI_quit 
+  },
   { name: "MI420",
     rows:  4, 
     cols:  20,
@@ -332,5 +375,6 @@ LCD MilfordInstruments[] = {
     flush: MI_flush,
     quit:  MI_quit 
   },
+
   { NULL }
 };