Pages: 1 ... 8 9 [10]   Go Down
Author Topic: Arduino Uno und Menü für LCD Keypad Shield  (Read 12524 times)
0 Members and 1 Guest are viewing this topic.
Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1251
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Funktioniert 1A!

Schau mal warum ich Datum nicht einstellen kann?!
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ging das vorher ?
Ich kümmer mich mal eben um mein Abendessen  smiley-lol
Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1251
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

[edit]
Ist das Beispiel so übersichtlicher ?
[/edit]

Man gewöhnt sich an alles. Zu vergleichen mit Win7 und Win 8.


Wäre übersichtlicher wenns ohne:
Code:
DigitFuncPtr LCDMenu_functions[] =
 
Code:
PROGMEM const char *g_lang_menu_table[] =
 
Code:
void CTR_menu_init()
wäre.

zB
Code:
  _LCDMENU(g_lang_0  , Item1     , "Information"              , FUNC_info);
 
  _LCDMENU(g_lang_1  , Item2     , "Temperatur"               , FUNC);
  _LCDMENU(g_lang_2  , Item21    , "Temperatur soll"          , FUNC_soll);
  _LCDMENU(g_lang_3  , Item22    , "Senken in Tagen"          , FUNC);

könnte ich mir vorstellen, dass man da diese 3 Codes einbinden könnte. Entweder in  "no changes here" oder in die Lib verlegen.
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja da bin ich noch am überlegen wie ich das machen kann.
Leider habe ich das noch nicht hinbekommen, würden die Variablen nicht im Flash gespeichert wäre es einfacher. Aber da dadurch die Variablen als 'const' deklariert werden, kann ich sie Dynamisch nicht mehr erweitern.
Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1251
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ging das vorher ?

Bei dem gestrigen Update ging das.

in void FUNC_dat(void)
soll der inhalt von
void  FUNC_info(void)

Bei dem gestrigen Sketch hatte ich es so gemacht
Code:
     else if(tmp == _LANG_MENU_dat)
      {
        set_Date(tmp);
        Date(tmp);
      }


Hier der Aktuelle Code:
Code:
void  FUNC_info(void)
  {
    (CTR_start_func());
    if(CTR_func_timer(1000, 1))
 {
    lcd.clear();
    char lcdline[17];
    lcd.setCursor(3,0);
    sprintf(lcdline,"%02d:%02d:%02d",hour(),minute(),second());
    lcd.print(lcdline);
    lcd.setCursor(3,1);
    sprintf(lcdline,"%02d.%02d.%04d",day(),month(),year());
    lcd.print(lcdline);
 }
}
void FUNC_dat(void)
  {
    if(!CTR_start_func())

    if (menu_button_down == 1 && pos == 0) //set day-
      {
            setTime(hour(),minute(),second(),day()-menu_button_down,month(),year());
            menu_button_down=0;
           // lcd.setCursor(3,1);lcd.blink();
      }
....rest des codes
« Last Edit: April 02, 2013, 02:38:13 pm by skorpi08 » Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Funktionen
Quote
Code:
else if(tmp == _LANG_MENU_dat)
      {
        set_Date(tmp);
        Date(tmp);
      }
Werden nun automatisch aufgerufen, also alles was man oben definiert in der Liste definiert wird aufgerufen. Wozu dient denn die Funktion set_Date(tmp)  und wieso wird an die Funktionen tmp übergeben, tmp ist ja nur ein Zahlenwert.

Ich sehe gerade wieder das deine Buttons in der Start Funktion sind die nur einmal ausgeführt wird. Du kannst dir das wie ein Setup vorstellen das nur bei der Initialisierung geladen wird.
Code:
void FUNC_dat(void)
  {
    CTR_start_func();

    if (menu_button_down == 1 && pos == 0) //set day-
      {
            setTime(hour(),minute(),second(),day()-menu_button_down,month(),year());
            menu_button_down=0;
           // lcd.setCursor(3,1);lcd.blink();
      }
....rest des codes

CTR_start_func muss einmal aufgerufen werden, da hier dann festgelegt wird, welche Funktion nach dem Tastendruck und dem ersten Durchlauf wieder aufgerufen wird. Daher kann ich diese Funktion auch nicht weg optimieren. Zum anderen kannst du die Funktion mit   if(!CTR_start_func()) {  verwenden, wenn du selber noch Werte einmalig definieren willst. Ansonsten kann man immer  CTR_start_func(); verwenden.

So, ich kann erst morgen Abend weiter Verbesserungen liefern.
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Na Hallo,

komme bei eurem diskutieren grad nicht mehr mit, darum habe ich mich auch still verhalten. Habt ihr den den Sketch fertig programiert bekommen und wäre er etwas für mich oder sollte ich lieber bei dem bleiben, welchen wir am Wochenende erstellt haben?
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bleib erstmal bei deinem Programm. Die neue Lib befindet sich noch in der Beta Phase.
 
Geändert wurde folgendes:
- Menü wird nun im Flash abgelegt und auch von dort ausgelesen
- Menü kann teilweise einfacher generiert werden (hier wird noch gearbeitet)
- Das Beispielprogramm wurde vereinfacht (wird noch dran gearbeitet)
- Das Menü ist nicht mehr auf 6 Ebenen in die Tiefe begrenzt
- Pro Menü Ebene können 120 Buttons angelegt werden
- Weniger Ram Auslastung
- Kompatibilität zu Version 1.04 wurde hergestellt
- Scroll Probleme wurden behoben
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, werde ich machen. Wir sollten hier nur immer mal wieder etwas psoten, damit wir nicht zu weit nach hinten rutschen und wir unseren Post nicht mehr wieder finden.
Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1251
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wer suchet der findet.
Wozu brauchst du den Post ganz oben? Was und wem solls bringen?
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nun muss ich mich ja auch melden wenn es so weiter geht.

Für diese Möglichkeit sieht das Forum die "Notify" Funktion vor. Diese befindet sich ganz unten unter dem Einträgen auf der rechten Seite. Wenn du darauf klickst, bekommst du jedesmal eine Email, wenn jemand in diesem Thread eine neue Nachricht hinterlässt.

Es ist sehr bequem und du muss den Thread nicht jedesmal neu suchen.
Logged

Cloppenburg
Offline Offline
Edison Member
*
Karma: 30
Posts: 1251
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für die Erklärung smiley
Dachte eigentlich dass er es schon kennt
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Offline Offline
Jr. Member
**
Karma: 1
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für die Erklärung und die Hilfe für jemanden, der erst neu hier im Forum ist.
Logged

Germany, Osnabrück
Offline Offline
God Member
*****
Karma: 30
Posts: 654
E-Technik Student - Master
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Diskussion zum Menu kann hier weitergeführt werden.

Die neuste Version befindet sich am Ende des ersten Eintrages:

http://arduino.cc/forum/index.php/topic,73816.msg555253.html#msg555253
Logged

Pages: 1 ... 8 9 [10]   Go Up
Jump to: