Forum: Mikrocontroller und Digitale Elektronik Organisation Displaymenü


von GC (Gast)


Lesenswert?

Hallo zusammen,

ich programiere gerade ein Displaymenü für meine Terrariumsteuerung und 
finde es super unübesichtlich im Quellcode. Desweiteren wenn ich was 
neues hinzufügen möchte wird es so auch sehr kompliziert!

Könnte mir jemand vielleicht ein Tip oder Beispiel geben damit es 
übersichtlicher wird? Bin für alle Vorschläge offen.

In den unterpunkten wird dann später noch z.b. die Zeit eingestellt und 
der Basiseinheit übergeben.

Dankeschön schonmal im Voraus :-)
1
/********************************************************************************
2
Structuren definieren
3
********************************************************************************/
4
SYSTEMTIME systemtime;      
5
TERRARIUMEINSTELLUNG_A terrariumsteuerung_a;
6
TERRARIUMEINSTELLUNG_B terrariumsteuerung_b;
7
8
/********************************************************************************
9
Variablen
10
********************************************************************************/
11
int seczaehler;
12
int count;  // Timerzähler
13
int hintergrungbeleuchtungszaehler = 0;  // Zähler für Hintergrundbeleuchung
14
char systembuffer[100];
15
16
/********************************************************************************
17
Main Programm
18
********************************************************************************/
19
int main(void)
20
{
21
  int menuepunkt = 0;      // Menuepunkt in dem man sich befindet
22
  int unterpunkt = 0;      // Unterpunkt in dem man sich befindet
23
  char tmp[100];
24
  char time[22];        // Zeitausgabe fürs Display 
25
  int i;
26
  
27
  initPort();          // Portinitalisierung
28
  cli();            // Disable all interrupts
29
  spi_init_master();      // Inizialisierung SPI
30
  display_init();        // Inizialisierung Display
31
  InitTimer0();        // Inizialisierung Timer0
32
  sei();            // enable all interrupts
33
  
34
  SET_LED_TASTER_OFF;      // Tasterhintergrundbeleuchung ausschalten
35
  SET_DISPLAY_BRIGHTNESS_OFF; // Displayhintergrundbeleuchung ausschalten
36
  
37
  _delay_ms(500);    // Abwarten bis Einlesung zum erstern mal abgefragt wird
38
  readsystemtime();  // Systemzeit abfragen
39
  readsystem_sonnenauf_untergang(1, 1); // Sonnenauf- Untergang von Basiseinheit abfragen 
40
  readsystemtemp(1, 1); // Temperaturen  von Basiseinheit abfragen
41
  readsystem_manual(1, 1);  // Manuelle Einstellmöglichkeiten einlesen
42
  
43
    while(1)
44
    {
45
    SWITCH_LED1;  
46
        
47
    if ( (read_taster(PIN_TASTER_ENTER) == 1) && (hintergrungbeleuchtungszaehler<=1) )    //
48
    {
49
      display_clear();  // Diplay Löschen
50
      menuepunkt = 0;    // Start an Hauptmenue
51
      unterpunkt = 0;
52
    }
53
    
54
    if(hintergrungbeleuchtungszaehler>0)      // In Menues Unterwegs da ein Taster gedrückt wurde
55
    {
56
      readsystemtime();
57
      sprintf(time, "%02d:%02d:%02d %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year, systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
58
      
59
      switch(menuepunkt)
60
      {
61
        case 0:  // Hauptmenue
62
            display_write("Einstellung",0,0);
63
            if (read_taster(PIN_TASTER_DOWN) == 1)
64
            {
65
              unterpunkt++;
66
              if (unterpunkt == 4)
67
                unterpunkt = 1;
68
            }
69
            if (read_taster(PIN_TASTER_UP) == 1)
70
            {
71
              unterpunkt--;
72
              if (unterpunkt == 0)
73
                unterpunkt = 3;
74
            }
75
            display_write(time,0,7);
76
            switch(unterpunkt)
77
            {
78
              case 0:  display_write(" Terrarium 1",0,2);
79
                  display_write(" Terrarium 2",0,3);
80
                  display_write(" Time",0,4);
81
                  break;
82
              case 1:  display_write(">Terrarium 1",0,2);
83
                  display_write(" Terrarium 2",0,3);
84
                  display_write(" Time",0,4);
85
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
86
                  {
87
                    display_clear();  // Diplay Löschen
88
                    menuepunkt = 1;    // Menue Terrarium 1 Einstellung
89
                    unterpunkt = 0; 
90
                  }
91
                  break;
92
              case 2:  display_write(" Terrarium 1",0,2);
93
                  display_write(">Terrarium 2",0,3);
94
                  display_write(" Time",0,4);
95
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
96
                  {
97
                    display_clear();  // Diplay Löschen
98
                    menuepunkt = 2;    // Menue Terrarium 1 Einstellung
99
                    unterpunkt = 0; 
100
                  }
101
                  break;
102
              case 3:  display_write(" Terrarium 1",0,2);
103
                  display_write(" Terrarium 2",0,3);
104
                  display_write(">Time",0,4);
105
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
106
                  {
107
                    display_clear();  // Diplay Löschen
108
                    menuepunkt = 3;    // Menue Terrarium 1 Einstellung 
109
                    unterpunkt = 0;
110
                  }
111
                  break;
112
              default: break;
113
            }
114
            break;
115
            
116
        case 1:  // Terrarium 1 Einstellungsmenue
117
            display_write("Terrarium 1",0,0);
118
            readsystem_manual(1, 0);  // Manuelle Einstellmöglichkeiten einlesen
119
            if (read_taster(PIN_TASTER_DOWN) == 1)
120
            {
121
              unterpunkt++;
122
              if (unterpunkt == 5)
123
                unterpunkt = 1;
124
            }
125
            if (read_taster(PIN_TASTER_UP) == 1)
126
            {
127
              unterpunkt--;
128
              if (unterpunkt == 0)
129
                unterpunkt = 4;
130
            }
131
            
132
            switch(unterpunkt)
133
            {
134
              case 0:  if(terrariumsteuerung_a.AUTO == 1)
135
                  {
136
                    display_write(" Automatisch \02",0,2);
137
                    display_write(" Mauell",0,3);
138
                  }
139
                  if(terrariumsteuerung_a.AUTO == 0)
140
                  {
141
                    display_write(" Automatisch",0,2);
142
                    display_write(" Mauell \02",0,3);
143
                  }
144
                  
145
                  display_write(" Temperaturen",0,4);
146
                  display_write(" Back",0,5);
147
                  break;
148
              case 1:  if(terrariumsteuerung_a.AUTO == 1)
149
                  {
150
                    display_write(">Automatisch \02",0,2);
151
                    display_write(" Mauell",0,3);
152
                  }
153
                  if (terrariumsteuerung_a.AUTO == 0)
154
                  {
155
                    display_write(">Automatisch",0,2);
156
                    display_write(" Mauell \02",0,3);
157
                  }
158
                  display_write(" Temperaturen",0,4);
159
                  display_write(" Back",0,5);
160
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
161
                  {
162
                    unterpunkt = 0;
163
                    display_clear();  // Diplay Löschen 
164
                  }
165
                  break;
166
              case 2:  if(terrariumsteuerung_a.AUTO == 1)
167
                  {
168
                    display_write(" Automatisch \02",0,2);
169
                    display_write(">Mauell",0,3);
170
                  }
171
                  if (terrariumsteuerung_a.AUTO == 0)
172
                  {
173
                    display_write(" Automatisch",0,2);
174
                    display_write(">Mauell \02",0,3);
175
                  }
176
                  display_write(" Temperaturen",0,4);
177
                  display_write(" Back",0,5);
178
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
179
                  {
180
                    unterpunkt = 0; 
181
                    display_clear();  // Diplay Löschen
182
                  }
183
                  break;
184
              case 3:  if(terrariumsteuerung_a.AUTO == 1)
185
                  {
186
                    display_write(" Automatisch \02",0,2);
187
                    display_write(" Mauell",0,3);
188
                  }
189
                  if (terrariumsteuerung_a.AUTO == 0)
190
                  {
191
                    display_write(" Automatisch",0,2);
192
                    display_write(" Mauell \02",0,3);
193
                  }
194
                  display_write(">Temperaturen",0,4);
195
                  display_write(" Back",0,5);
196
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
197
                  {
198
                    display_clear();  // Diplay Löschen
199
                    unterpunkt = 5;
200
                  }
201
                  break;
202
              case 4:  if(terrariumsteuerung_a.AUTO == 1)
203
                  {
204
                    display_write(" Automatisch \02",0,2);
205
                    display_write(" Mauell",0,3);
206
                  }
207
                  if (terrariumsteuerung_a.AUTO == 0)
208
                  {
209
                    display_write(" Automatisch",0,2);
210
                    display_write(" Mauell \02",0,3);
211
                  }
212
                  display_write(" Temperaturen",0,4);;
213
                  display_write(">Back",0,5);
214
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
215
                  {
216
                    display_clear();  // Diplay Löschen
217
                    menuepunkt = 0;    // Menue Terrarium 1 Einstellung 
218
                    unterpunkt = 0;
219
                  }
220
                  break;
221
              case 5:  display_write("  IST      SOLL\n",0,2);
222
                  readsystemtemp(1,0); // Temperaturen an Terrarium A einlesen
223
                  sprintf(tmp, "  A:%03d\01C  A:%03d\01C\n", terrariumsteuerung_a.TEMP_A, (int)(terrariumsteuerung_a.SOLL_TEMP_A));
224
                  display_write(tmp,0,3);
225
                  sprintf(tmp, "  B:%03d\01C  B:%03d\01C\n", terrariumsteuerung_a.TEMP_B, (int)(terrariumsteuerung_a.SOLL_TEMP_B));
226
                  display_write(tmp,0,4);
227
                  sprintf(tmp, "  C:%03d\01C\n", terrariumsteuerung_a.TEMP_C);
228
                  display_write(tmp,0,5);
229
                  sprintf(tmp, "  D:%03d\01C\n", terrariumsteuerung_a.TEMP_D);
230
                  display_write(tmp,0,6);
231
                  display_write(">Back",0,7);
232
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
233
                  {
234
                    display_clear();  // Diplay Löschen
235
                    unterpunkt = 0;
236
                  }
237
                  break;
238
                      
239
              default: break;
240
            }
241
            break;
242
            
243
        case 2:  // Terrarium 2 Einstellungsmenue
244
            display_write("Terrarium 2",0,0);
245
            readsystem_manual(0, 1);  // Manuelle Einstellmöglichkeiten einlesen
246
            if (read_taster(PIN_TASTER_DOWN) == 1)
247
            {
248
              unterpunkt++;
249
              if (unterpunkt == 5)
250
                unterpunkt = 1;
251
            }
252
            if (read_taster(PIN_TASTER_UP) == 1)
253
            {
254
              unterpunkt--;
255
              if (unterpunkt == 0)
256
                unterpunkt = 4;
257
            }
258
            
259
            switch(unterpunkt)
260
            {
261
              case 0:  if(terrariumsteuerung_b.AUTO == 1)
262
                  {
263
                    display_write(" Automatisch \02",0,2);
264
                    display_write(" Mauell",0,3);
265
                  }
266
                  if(terrariumsteuerung_b.AUTO == 0)
267
                  {
268
                    display_write(" Automatisch",0,2);
269
                    display_write(" Mauell \02",0,3);
270
                  }
271
                  
272
                  display_write(" Temperaturen",0,4);
273
                  display_write(" Back",0,5);
274
                  break;
275
              case 1:  if(terrariumsteuerung_b.AUTO == 1)
276
                  {
277
                    display_write(">Automatisch \02",0,2);
278
                    display_write(" Mauell",0,3);
279
                  }
280
                  if (terrariumsteuerung_b.AUTO == 0)
281
                  {
282
                    display_write(">Automatisch",0,2);
283
                    display_write(" Mauell \02",0,3);
284
                  }
285
                  display_write(" Temperaturen",0,4);
286
                  display_write(" Back",0,5);
287
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
288
                  {
289
                    unterpunkt = 0;
290
                    display_clear();  // Diplay Löschen 
291
                  }
292
                  break;
293
              case 2:  if(terrariumsteuerung_b.AUTO == 1)
294
                  {
295
                    display_write(" Automatisch \02",0,2);
296
                    display_write(">Mauell",0,3);
297
                  }
298
                  if (terrariumsteuerung_b.AUTO == 0)
299
                  {
300
                    display_write(" Automatisch",0,2);
301
                    display_write(">Mauell \02",0,3);
302
                  }
303
                  display_write(" Temperaturen",0,4);
304
                  display_write(" Back",0,5);
305
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
306
                  {
307
                    unterpunkt = 0; 
308
                    display_clear();  // Diplay Löschen
309
                  }
310
                  break;
311
              case 3:  if(terrariumsteuerung_b.AUTO == 1)
312
                  {
313
                    display_write(" Automatisch \02",0,2);
314
                    display_write(" Mauell",0,3);
315
                  }
316
                  if (terrariumsteuerung_b.AUTO == 0)
317
                  {
318
                    display_write(" Automatisch",0,2);
319
                    display_write(" Mauell \02",0,3);
320
                  }
321
                  display_write(">Temperaturen",0,4);
322
                  display_write(" Back",0,5);
323
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
324
                  {
325
                    display_clear();  // Diplay Löschen
326
                    unterpunkt = 5;
327
                  }
328
                  break;
329
              case 4:  if(terrariumsteuerung_b.AUTO == 1)
330
                  {
331
                    display_write(" Automatisch \02",0,2);
332
                    display_write(" Mauell",0,3);
333
                  }
334
                  if (terrariumsteuerung_b.AUTO == 0)
335
                  {
336
                    display_write(" Automatisch",0,2);
337
                    display_write(" Mauell \02",0,3);
338
                  }
339
                  display_write(" Temperaturen",0,4);;
340
                  display_write(">Back",0,5);
341
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
342
                  {
343
                    display_clear();  // Diplay Löschen
344
                    menuepunkt = 0;    // Hauptmenue 
345
                    unterpunkt = 0;
346
                  }
347
                  break;
348
              case 5:  display_write("  IST      SOLL\n",0,2);
349
                  readsystemtemp(1,0); // Temperaturen an Terrarium A einlesen
350
                  sprintf(tmp, "  A:%03d\01C  A:%03d\01C\n", terrariumsteuerung_b.TEMP_A, (int)(terrariumsteuerung_b.SOLL_TEMP_A));
351
                  display_write(tmp,0,3);
352
                  sprintf(tmp, "  B:%03d\01C  B:%03d\01C\n", terrariumsteuerung_b.TEMP_B, (int)(terrariumsteuerung_b.SOLL_TEMP_B));
353
                  display_write(tmp,0,4);
354
                  sprintf(tmp, "  C:%03d\01C\n", terrariumsteuerung_b.TEMP_C);
355
                  display_write(tmp,0,5);
356
                  sprintf(tmp, "  D:%03d\01C\n", terrariumsteuerung_b.TEMP_D);
357
                  display_write(tmp,0,6);
358
                  display_write(">Back",0,7);
359
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt
360
                  {
361
                    display_clear();  // Diplay Löschen
362
                    unterpunkt = 0;
363
                  }
364
                  break;
365
                      
366
              default: break;
367
            }
368
            break;
369
            
370
        case 3:  // TIME Einstellungsmenue
371
            display_write("Time",0,0);
372
            readsystemtime();
373
            if (read_taster(PIN_TASTER_DOWN) == 1)
374
            {
375
              unterpunkt++;
376
              if (unterpunkt == 7)
377
                unterpunkt = 1;
378
            }
379
            if (read_taster(PIN_TASTER_UP) == 1)
380
            {
381
              unterpunkt--;
382
              if (unterpunkt == 0)
383
                unterpunkt = 6;
384
            }
385
            
386
            switch(unterpunkt)
387
            {
388
              case 0:  display_write("Time",0,0);
389
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
390
                  display_write(tmp,0,2);
391
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
392
                  display_write(tmp,0,3);
393
                  if(systemtime.zeitzone==0)
394
                  {
395
                    display_write(" Weltzeit",0,4);
396
                  }
397
                  if(systemtime.zeitzone==1)
398
                  {
399
                    display_write(" Winterzeit",0,4);
400
                  }
401
                  if(systemtime.zeitzone==2)
402
                  {
403
                    display_write(" Sommerzeit",0,4);
404
                  }
405
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
406
                  display_write(tmp,0,5);
407
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
408
                  display_write(tmp,0,6);    
409
                  display_write(" Back",0,7);
410
                  break;
411
      
412
              case 1:  // Unterpunkt 1 Auswahl von Date
413
                  display_write("Time",0,0);
414
                  sprintf(tmp, ">Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
415
                  display_write(tmp,0,2);
416
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
417
                  display_write(tmp,0,3);
418
                  if(systemtime.zeitzone==0)
419
                  {
420
                    display_write(" Weltzeit",0,4);
421
                  }
422
                  if(systemtime.zeitzone==1)
423
                  {
424
                    display_write(" Winterzeit",0,4);
425
                  }
426
                  if(systemtime.zeitzone==2)
427
                  {
428
                    display_write(" Sommerzeit",0,4);
429
                  }
430
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
431
                  display_write(tmp,0,5);
432
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
433
                  display_write(tmp,0,6);    
434
                  display_write(" Back",0,7);
435
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
436
                  {
437
                    display_clear();  // Diplay Löschen
438
                    // Unterpunkt auswänlen ..... unterpunkt = 0;
439
                  }
440
                  break;
441
      
442
              case 2:  // Unterpunkt2 Auswahl von Time
443
                  display_write("Time",0,0);
444
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
445
                  display_write(tmp,0,2);
446
                  sprintf(tmp, ">Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
447
                  display_write(tmp,0,3);
448
                  if(systemtime.zeitzone==0)
449
                  {
450
                    display_write(" Weltzeit",0,4);
451
                  }
452
                  if(systemtime.zeitzone==1)
453
                  {
454
                    display_write(" Winterzeit",0,4);
455
                  }
456
                  if(systemtime.zeitzone==2)
457
                  {
458
                    display_write(" Sommerzeit",0,4);
459
                  }
460
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
461
                  display_write(tmp,0,5);
462
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
463
                  display_write(tmp,0,6);    
464
                  display_write(" Back",0,7);
465
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
466
                  {
467
                    display_clear();  // Diplay Löschen
468
                    // Unterpunkt auswänlen ..... unterpunkt = 0;
469
                  }
470
                  break;
471
        
472
              case 3:  // Unterpunkt 3 Auswahl von Sommer-, Winter- und Weltzeit
473
                  display_write("Time",0,0);
474
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
475
                  display_write(tmp,0,2);
476
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
477
                  display_write(tmp,0,3);
478
                  if(systemtime.zeitzone==0)
479
                  {
480
                    display_write(">Weltzeit",0,4);
481
                  }
482
                  if(systemtime.zeitzone==1)
483
                  {
484
                    display_write(">Winterzeit",0,4);
485
                  }
486
                  if(systemtime.zeitzone==2)
487
                  {
488
                    display_write(">Sommerzeit",0,4);
489
                  }
490
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
491
                  display_write(tmp,0,5);
492
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
493
                  display_write(tmp,0,6);    
494
                  display_write(" Back",0,7);
495
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
496
                  {
497
                    display_clear();  // Diplay Löschen
498
                    // Unterpunkt auswänlen ..... unterpunkt = 0;
499
                  }
500
                  break;
501
  
502
              case 4:  // Unterpunkt 4 Auswahl von Breitengrad
503
                  display_write("Time",0,0);
504
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
505
                  display_write(tmp,0,2);
506
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
507
                  display_write(tmp,0,3);
508
                  if(systemtime.zeitzone==0)
509
                  {
510
                    display_write(" Weltzeit",0,4);
511
                  }
512
                  if(systemtime.zeitzone==1)
513
                  {
514
                    display_write(" Winterzeit",0,4);
515
                  }
516
                  if(systemtime.zeitzone==2)
517
                  {
518
                    display_write(" Sommerzeit",0,4);
519
                  }
520
                  sprintf(tmp, ">Breite: %0.7f", systemtime.geographischeBreite);
521
                  display_write(tmp,0,5);
522
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
523
                  display_write(tmp,0,6);    
524
                  display_write(" Back",0,7);
525
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
526
                  {
527
                    display_clear();  // Diplay Löschen
528
                    // Unterpunkt auswänlen ..... unterpunkt = 0;
529
                  }
530
                  break;
531
    
532
              case 5:  // Unterpunkt 5 Auswahl von Längengrad
533
                  display_write("Time",0,0);
534
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
535
                  display_write(tmp,0,2);
536
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
537
                  display_write(tmp,0,3);
538
                  if(systemtime.zeitzone==0)
539
                  {
540
                    display_write(" Weltzeit",0,4);
541
                  }
542
                  if(systemtime.zeitzone==1)
543
                  {
544
                    display_write(" Winterzeit",0,4);
545
                  }
546
                  if(systemtime.zeitzone==2)
547
                  {
548
                    display_write(" Sommerzeit",0,4);
549
                  }
550
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
551
                  display_write(tmp,0,5);
552
                  sprintf(tmp, ">L\03nge:  %0.7f", systemtime.geographischeLaenge);
553
                  display_write(tmp,0,6);    
554
                  display_write(" Back",0,7);
555
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
556
                  {
557
                    display_clear();  // Diplay Löschen
558
                    // Unterpunkt auswänlen ..... unterpunkt = 0;
559
                  }
560
                  break;
561
  
562
                case 6:  // Unterpunkt 6 Auswahl von Back
563
                  display_write("Time",0,0);
564
                  sprintf(tmp, " Date: %02d:%02d:%02d\n", systemtime.datum.day, systemtime.datum.month, systemtime.datum.year);
565
                  display_write(tmp,0,2);
566
                  sprintf(tmp, " Time: %02d:%02d:%02d\n", systemtime.time.hour, systemtime.time.minute, systemtime.time.second);
567
                  display_write(tmp,0,3);
568
                  if(systemtime.zeitzone==0)
569
                  {
570
                    display_write(" Weltzeit",0,4);
571
                  }
572
                  if(systemtime.zeitzone==1)
573
                  {
574
                    display_write(" Winterzeit",0,4);
575
                  }
576
                  if(systemtime.zeitzone==2)
577
                  {
578
                    display_write(" Sommerzeit",0,4);
579
                  }
580
                  sprintf(tmp, " Breite: %0.7f", systemtime.geographischeBreite);
581
                  display_write(tmp,0,5);
582
                  sprintf(tmp, " L\03nge:  %0.7f", systemtime.geographischeLaenge);
583
                  display_write(tmp,0,6);    
584
                  display_write(">Back",0,7);
585
                  if (read_taster(PIN_TASTER_ENTER) == 1)    // Enter wurde gedrückt springe in Unterpunkt Date
586
                  {
587
                    display_clear();  // Diplay Löschen
588
                    unterpunkt = 0;
589
                    menuepunkt = 0;    // Menue Terrarium 1 Einstellung
590
                  }
591
                  break;
592
              default: break;
593
            }
594
            break;
595
            
596
        default:menuepunkt = 0;
597
            break;
598
      }
599
    }
600
  
601
  }  // Ende While-Schleife
602
603
}  // Ende main

von sushi (Gast)


Lesenswert?

Hallo,

nutze doch ein paar Funktionen. Damit wird deine Main schlanker.
Auf dem ersten Blick sehen die Anweisung in den cases sehr ähnlich aus. 
Überall wo du copy/paste nutzt/genutzt hast, kannst du stattdessen eine 
Funktion nutzen.

Damit wird die switch Anweisung aufgeräumter und der Überblick kommt 
zurück.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.