MENWIZ: yet another character lcd menu wizard library

Hello,

I have two questions about the code attached...

First... the section "DEFINE BOARD PINS FOR THE NAVIGATION BUTTONS" I have verified my electronics by continuity test to the pins on the ATMEL, ATMEGA328 and they are attached correctly with a 10K SIP Resistor pack to ground, the only button that works is the DOWN, I can scroll through the S1 menu but the CONFIRM, UP, ESCAPE, LEFT & RIGHT buttons do not work, any assistance you can offer is greatly appreciated?

Second... the section ("// menu.addSplash(("TLHurley Engineering 12'\nEMZ Technologies 09/2012") menu.sbuf, 10000);") returns an error ( Expected ")" before "menu" ) why is this? I have the line commented out to verify the sketch compiles. I cannot find what the actual error is.

Thank you for any help,

Terry

[quote]
[color=#7E7E7E]//The full code is in library example file Sample MENWIZ.ino[/color]
#include <[color=#CC6600]Wire[/color].h>
#include <[color=#CC6600]LCD[/color].h>
#include <[color=#CC6600]LiquidCrystal[/color].h>
#include <[color=#CC6600]buttons[/color].h>
#include <MENWIZ.h>
#include <[color=#CC6600]EEPROM[/color].h>

[color=#7E7E7E]// DEFINE BOARD PINS FOR THE NAVIGATION BUTTONS (DCM2053 Pins shown below in notes)[/color]
#define UP_BUTTON_PIN       0  [color=#7E7E7E]// DCM2053 PIN 19[/color]
#define DOWN_BUTTON_PIN     1  [color=#7E7E7E]// DCM2053 PIN 20[/color]
#define LEFT_BUTTON_PIN     2  [color=#7E7E7E]// DCM2053 PIN 23[/color]
#define RIGHT_BUTTON_PIN    3  [color=#7E7E7E]// DCM2053 PIN 24[/color]
#define CONFIRM_BUTTON_PIN  4  [color=#7E7E7E]// DCM2053 PIN 22[/color]
#define ESCAPE_BUTTON_PIN   5  [color=#7E7E7E]// DCM2053 PIN 21[/color]


menwiz menu;
[color=#7E7E7E]// create lcd obj using LiquidCrystal lib[/color]
[color=#CC6600]LiquidCrystal[/color] lcd(7, 8, 9, 10, 11, 12);

[color=#7E7E7E]/*[/color]
[color=#7E7E7E]*LCD RS Pin - Dorkbaord D7[/color]
[color=#7E7E7E]*LCD EN Pin - Dorkbaord D8[/color]
[color=#7E7E7E]*LCD D4 Pin - Dorkbaord D9[/color]
[color=#7E7E7E]*LCD D5 Pin - Dorkbaord D10[/color]
[color=#7E7E7E]*LCD D6 Pin - Dorkbaord D11[/color]
[color=#7E7E7E]*LCD D7 Pin - Dorkbaord D12[/color]
[color=#7E7E7E]*LCD R/W Pin - GND[/color]
[color=#7E7E7E]*10K Resistor[/color]
[color=#7E7E7E]*ends to 5V and GND[/color]
[color=#7E7E7E]*/[/color]

[color=#7E7E7E]//instantiate global variables to bind to menu[/color]
[color=#CC6600]int[/color]      tp=0;
[color=#CC6600]float[/color]    f=26.0;
[color=#CC6600]boolean[/color]  bb=0;
[color=#CC6600]byte[/color]     b=50;

[color=#CC6600]void[/color] [color=#CC6600][b]setup[/b][/color](){
  [color=#CC6600]_menu[/color] *r,*s1,*s2;
  [color=#CC6600]_var[/color] *v; 
  [color=#CC6600]int[/color]  mem;

  [color=#CC6600][b]Serial[/b][/color].[color=#CC6600]begin[/color](19200);  
  
  [color=#7E7E7E]// have a look on memory before menu creation[/color]
  [color=#CC6600][b]Serial[/b][/color].[color=#CC6600]println[/color](sizeof(menwiz));
  mem=menu.freeRam();
  
  [color=#7E7E7E]// inizialize the menu object (20 colums x 4 rows)[/color]
  menu.[color=#CC6600]begin[/color](&lcd,24,2);

  [color=#7E7E7E]//create the menu tree[/color]
  r=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_ROOT[/color],NULL,F([color=#006699]"MAIN MENU"[/color]));              [color=#7E7E7E]//create a root menu at first (required)[/color]
    s1=menu.[color=#CC6600]addMenu[/color](MW_SUBMENU,r,F([color=#006699]"MEASURE SUBMENU"[/color]));     [color=#7E7E7E]//add a child (submenu) node to the root menu[/color]
    
      s2=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],s1,F([color=#006699]"Test list"[/color]));            [color=#7E7E7E]//add a terminal node (that is "variable"); [/color]
          s2->[color=#CC6600]addVar[/color]([color=#006699]MW_LIST[/color],&tp);                          [color=#7E7E7E]//create a variable of type "option list".. [/color]
          s2->[color=#CC6600]addItem[/color]([color=#006699]MW_LIST[/color],F([color=#006699]"option 1"[/color]));               [color=#7E7E7E]//add option to the OPTION LIST[/color]
          s2->[color=#CC6600]addItem[/color]([color=#006699]MW_LIST[/color],F([color=#006699]"option 2"[/color]));               [color=#7E7E7E]//add option to the OPTION LIST[/color]
          s2->[color=#CC6600]addItem[/color]([color=#006699]MW_LIST[/color],F([color=#006699]"option 3"[/color]));               [color=#7E7E7E]//add option to the OPTION LIST[/color]
          s2->[color=#CC6600]addItem[/color]([color=#006699]MW_LIST[/color],F([color=#006699]"option 4"[/color]));               [color=#7E7E7E]//add option to the OPTION LIST[/color]
          s2->[color=#CC6600]addItem[/color]([color=#006699]MW_LIST[/color],F([color=#006699]"option 5"[/color]));               [color=#7E7E7E]//add option to the OPTION LIST[/color]

      s2=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],s1,F([color=#006699]"Test float var"[/color]));       [color=#7E7E7E]//add a terminal node (that is "variable"); [/color]
          s2->[color=#CC6600]addVar[/color](MW_AUTO_FLOAT,&f,11.00,100.00,0.5); [color=#7E7E7E]//create a variable of type "float number"... [/color]
                                                         [color=#7E7E7E]//...associated to the terminal node and bind it to the app variable "f" of type float[/color]
      s2=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],s1,F([color=#006699]"Test byte var"[/color]));        [color=#7E7E7E]//add a terminal node (that is "variable"); [/color]
          s2->[color=#CC6600]addVar[/color](MW_AUTO_BYTE,&b,25,254,10);         [color=#7E7E7E]//create a variable of type "byte"...[/color]
                                                         [color=#7E7E7E]//...associated to the terminal node and bind it to the app variable "b" of typr byte[/color]
      s2=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],s1,F([color=#006699]"Test boolean var"[/color]));     [color=#7E7E7E]//add a terminal node (that is "variable"); [/color]
          s2->[color=#CC6600]addVar[/color](MW_BOOLEAN,&bb);                    [color=#7E7E7E]//create a variable of type "boolean" [/color]
                                                         [color=#7E7E7E]//...associated to the terminal node and bind it to the app variable "bb" of type boolean[/color]
    s1=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],r,F([color=#006699]"WRITE TO SERIAL"[/color]));             [color=#7E7E7E]//add a terminal node (that is "variable") create an "action" associated to the terminal node... [/color]
      s1->[color=#CC6600]addVar[/color](MW_ACTION,act);                         [color=#7E7E7E]//the act function as default will be called when enter button is pushed[/color]

    s1=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],r,F([color=#006699]"SAVE TO EPROM"[/color]));           [color=#7E7E7E]//add a terminal node (that is "variable") create an "action" associated to the terminal node... [/color]
      s1->[color=#CC6600]addVar[/color](MW_ACTION,savevar);                     [color=#7E7E7E]//the act function as default will be called when enter button is pushed[/color]

    s1=menu.[color=#CC6600]addMenu[/color]([color=#006699]MW_VAR[/color],r,F([color=#006699]"LOAD FROM EEPROM"[/color]));        [color=#7E7E7E]//add a terminal node (that is "variable") create an "action" associated to the terminal node... [/color]
      s1->[color=#CC6600]addVar[/color](MW_ACTION,loadvar);                     [color=#7E7E7E]//the act function as default will be called when enter button is pushed[/color]

  [color=#7E7E7E]//declare navigation buttons (required)[/color]
  menu.navButtons(UP_BUTTON_PIN,DOWN_BUTTON_PIN,LEFT_BUTTON_PIN,RIGHT_BUTTON_PIN,ESCAPE_BUTTON_PIN,CONFIRM_BUTTON_PIN);


 [color=#7E7E7E]// menu.addSplash(("TLHurley Engineering 12'\nEMZ Technologies 09/2012") menu.sbuf, 10000);[/color]
  }

  }

[/quote]