I did a small cleaning in my menu routines and I was thinking, that it would be nice, if somone else could use it. Here it is! It's 
platform and 
lcd hardware independend. You have to define names of your own LCD routines in menu.h (lcdClear(), lcdString(str, x, y)).
Features:
- Tested on AVRs ( incl. Arduino ) and ARMs
- more after break...