0,0 → 1,215 |
/***************************************************************************** |
* Copyright (C) 2009 Peter "woggle" Mack, mac@denich.net * |
* Copyright (C) 2011 Christian Brandtner brandtner@brandtner.net * |
* * |
* 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 of the License. * |
* * |
* 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. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
* * |
* Einstellen der Variablen Parameter des P-MKTool * |
* * |
*****************************************************************************/ |
|
#include <avr/io.h> |
#include <avr/interrupt.h> |
#include <avr/pgmspace.h> |
#include <string.h> |
|
#include "main.h" |
#include "setup.h" |
#include "lcd.h" |
#include "eeprom.h" |
#include "timer.h" |
|
|
uint8_t spalte; |
uint8_t mmode; |
uint8_t zeile; |
uint8_t edit; |
uint8_t MenuItems; |
// |
|
|
void PMK_Setup (void) |
{ |
|
lcd_cls (); |
mmode = 0; |
edit=0; |
zeile = 1; |
MenuItems =2; |
|
|
lcd_printp (PSTR("P-MKTool Setup"), 0); |
|
lcd_printpns_at (2, zeile, PSTR("LowBat Warn : "), 0); |
// write_ndigit_number_u (16, 2, MK_LipoCell, 3, 0); |
write_ndigit_number_u_10th (16, zeile,MK_LowBat, 3, 0); |
lcd_putc (20, zeile, 'V', 0); |
|
|
if (DisplayTimeout == 0) |
lcd_printpns_at (2, zeile+1, PSTR("Displ.Timeout: no"), 0); |
else |
{ |
lcd_printpns_at (2, zeile+1, PSTR("Displ.Timeout: "), 0); |
write_ndigit_number_u (17, zeile+1, DisplayTimeout, 3, 0); |
} |
|
lcd_printpns_at (2, zeile+2, PSTR("Language :"), 0); |
|
|
switch (DisplayLanguage) |
{ |
case 0x0 :lcd_printpns_at (18, zeile+2, PSTR("DE "), 0);break; |
case 0x1 :lcd_printpns_at (18, zeile+2, PSTR("FR "), 0);break; |
case 0x2 :lcd_printpns_at (18, zeile+2, PSTR("EN "), 0);break; |
break; |
} |
lcd_printpns_at (2, zeile+3, PSTR("Wi TX/RX Chan:"), 0); |
write_ndigit_number_u (17, zeile+3, WiTXRXChannel, 3, 0); |
lcd_printpns_at (2, zeile+4, PSTR("Wi NetW. Grp.:"), 0); |
write_ndigit_number_u (17, zeile+4, WiNetworkGroup, 3, 0); |
lcd_printpns_at (0, 7, PSTR(" \x18 \x19 Back \x0c"), 0); |
// lcd_printpns_at (0, 7, PSTR("\x15 \x16 \x17 Back"), 0); //x0C |
lcd_printp_at (0, zeile, PSTR("\x1D"), 0); |
|
|
do |
{ |
// Min Bat Voltage einstellen min. 3,3V(1S) max 16,5V(5S) |
if ((zeile == 1) && (get_key_press (1 << KEY_PLUS) || get_key_rpt (1 << KEY_PLUS)) && (MK_LowBat < 170)) |
{ |
edit=1; |
MK_LowBat++; |
// write_ndigit_number_u (16, zeile, MK_LipoCell, 3, 0); |
write_ndigit_number_u_10th (16, zeile,MK_LowBat, 3, 0); |
lcd_putc (20, 1, 'V', 0); |
} |
if ((zeile == 1) && (get_key_press (1 << KEY_MINUS) || get_key_rpt (1 << KEY_MINUS)) && (MK_LowBat > 33)) |
{ |
edit=1; |
MK_LowBat--; |
// write_ndigit_number_u (16, zeile, MK_LipoCell, 3, 0); |
write_ndigit_number_u_10th (16, zeile,MK_LowBat, 3, 0); |
lcd_putc (20, 1, 'V', 0); |
} |
// Displaytimeout einstellen |
if ((zeile == 2) && (get_key_press (1 << KEY_PLUS) || get_key_rpt (1 << KEY_PLUS)) && (DisplayTimeout < 100)) |
{ |
edit=1; |
DisplayTimeout++; |
write_ndigit_number_u (17, zeile, DisplayTimeout, 3, 0); |
|
} |
if ((zeile == 2) && (get_key_press (1 << KEY_MINUS) || get_key_rpt (1 << KEY_MINUS)) && (DisplayTimeout > 0)) |
{ |
edit=1; |
DisplayTimeout--; |
if (DisplayTimeout == 0) |
lcd_printpns_at (2, zeile, PSTR("Displ.Timeout: no"), 0); |
else |
write_ndigit_number_u (17, zeile, DisplayTimeout, 3, 0); |
|
} |
|
// DisplayLanguage einstellen |
if ((zeile == 3) && (get_key_press (1 << KEY_PLUS) || get_key_rpt (1 << KEY_PLUS)) && (DisplayLanguage < 2)) |
{ |
edit=1; |
DisplayLanguage++; |
switch (DisplayLanguage) |
{ |
case 0x0 :lcd_printpns_at (18, zeile, PSTR("DE "), 0); break; |
case 0x1 :lcd_printpns_at (18, zeile, PSTR("FR "), 0); break; |
case 0x2 :lcd_printpns_at (18, zeile, PSTR("EN "), 0); break; |
} |
|
} |
if ((zeile == 3) && (get_key_press (1 << KEY_MINUS) || get_key_rpt (1 << KEY_MINUS)) && (DisplayLanguage >0)) |
{ |
edit=1; |
DisplayLanguage--; |
switch (DisplayLanguage) |
{ |
case 0x0 :lcd_printpns_at (18, zeile, PSTR("DE "), 0);break; |
case 0x1 :lcd_printpns_at (18, zeile, PSTR("FR "), 0);break; |
case 0x2 :lcd_printpns_at (18, zeile, PSTR("EN "), 0);break; |
|
} |
|
} |
// RX/TX Channel Wi.232 einstellen |
if ((zeile == 4) && (get_key_press (1 << KEY_PLUS) || get_key_rpt (1 << KEY_PLUS)) && (WiTXRXChannel < 0x79)) |
{ |
edit=1; |
WiTXRXChannel++; |
write_ndigit_number_u (17, zeile, WiTXRXChannel, 3, 0); |
|
} |
if ((zeile == 4) && (get_key_press (1 << KEY_MINUS) || get_key_rpt (1 << KEY_MINUS)) && (WiTXRXChannel >0)) |
{ |
edit=1; |
WiTXRXChannel--; |
write_ndigit_number_u (17, zeile, WiTXRXChannel, 3, 0); |
|
} |
// Networkgroup Wi.232 einstellen |
if ((zeile == 5) && (get_key_press (1 << KEY_PLUS) || get_key_rpt (1 << KEY_PLUS)) && (WiNetworkGroup < 0x79)) |
{ |
edit=1; |
WiNetworkGroup++; |
write_ndigit_number_u (17, zeile, WiNetworkGroup, 3, 0); |
|
} |
if ((zeile == 5) && (get_key_press (1 << KEY_MINUS) || get_key_rpt (1 << KEY_MINUS)) && (WiNetworkGroup >0)) |
{ |
edit=1; |
WiNetworkGroup--; |
write_ndigit_number_u (17, zeile, WiNetworkGroup, 3, 0); |
|
} |
|
|
|
|
if (get_key_press (1 << KEY_ENTER)) |
{ |
lcd_printp_at (0, zeile, PSTR(" "), 0); |
if (zeile ==5) |
{ |
zeile = 1; |
lcd_printp_at (0, zeile, PSTR("\x1D"), 0); |
} |
else |
{ |
zeile++; |
lcd_printp_at (0, zeile, PSTR("\x1D"), 0); |
} |
|
|
|
} |
|
} |
while (!get_key_press (1 << KEY_ESC)); |
if (edit==1) |
{ |
|
WriteParameter(); |
|
} |
|
|
|
} |