0,0 → 1,90 |
|
#include <avr/io.h> |
#include <inttypes.h> |
#include <stdlib.h> |
#include <avr/pgmspace.h> |
|
#include "main.h" |
#include "lcd.h" |
#include "rs232.h" |
#include "base64.h" |
#include "parameter.h" |
#include "menu.h" |
#include "display.h" |
#include "motortest.h" |
#include "debug.h" |
#include "settings.h" |
|
|
// Subroutine für den Stern (*) bzw. Cursor |
|
void menu_set_cursor (uint8_t before, uint8_t line, uint8_t pos) |
{ |
lcd_print_atp(pos,before,PSTR(" "),0); // Die vorhergehende Position löschen |
lcd_print_atp(pos,line,PSTR("*"),0); // Den Cursor an der aktuellen Position anzeigen |
} |
|
|
// Zeigt einen Stern (*) an der x-Position <pos> an, y-Position von min bis max. |
// Mit der +/- Taste kann ein Menü-Punkt ausgewählt und mit (Enter) bestätigt werden. |
// Die Zeilennummer des aktuellen Menüpunkts wird zurückgegeben. |
|
uint8_t menu_choose (uint8_t min, uint8_t max, uint8_t pos) |
{ |
uint8_t line, before; |
|
line = min; |
before = min; |
menu_set_cursor(line,line,pos); |
|
do |
{ |
while (key != key_nokey); |
while(key == key_nokey); |
|
if ((key == key_plus) && (line < max)) |
line ++; |
if ((key == key_minus) && (line > min)) |
line --; |
|
menu_set_cursor(before,line,pos); |
before = line; |
} |
while ((key != key_enter) && (key != key_esc)); // Schleife wiederholen, bis (Enter) / Esc gedrückt wurde |
if (key == key_esc) |
line = 255; |
while (key != key_nokey); // Warten, bis Taste wieder losgelassen wurde |
return line; |
} |
|
void main_menu (void) |
{ |
lcd_cls(); |
lcd_printp(PSTR("Hauptmenü(BETA V0.1)\r\n"),0); |
lcd_printp(PSTR("\r\nDisplay\r\n"),0); |
lcd_printp(PSTR("Parameter\r\n"),0); |
lcd_printp(PSTR("Motortest\r\n"),0); |
lcd_printp(PSTR("Debug Daten\r\n"),0); |
lcd_printp(PSTR("Settings\r\n"),0); |
lcd_printp(PSTR("Mod by Mikeljo 05/08"),0); |
|
switch(menu_choose(2,6,12)) |
{ |
case 2: |
display_data(); // LCD-Modus |
break; |
case 3: |
edit_parameter(); // Parameter (Settings) laden/editieren |
break; |
case 4: |
motor_test(); // primitiver Motor-Test |
break; |
case 5: |
display_debug(); // Debug Daten |
break; |
case 6: |
LCD_settings(); // Einstellungen |
break; |
} |
|
} |