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]