Anweisung wird in switch() nicht ausgeführt

Gast #3860191
Lesenswert?

Hallo zusammen. und zwar führt meine switch Funktion nicht alle 
Anweisungen aus.
Wie im code geschrieben, soll sich bei xänderung das lcd gelöscht und 
neu beschrieben werden.
mein Problem ist, der µC überschreibt einfach das Wort, ohne vorher zu 
löschen.

Woran kann das liegen.?
PS: das ClearScreen() funktioniert sonst auch immer. nur hier wird es 
übersprungen
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include <avr/interrupt.h>
4
#include <stdio.h>
5
#include <stdbool.h>
6
#include "TWI_Master.h"
7
#include "mydefs.h"
8
#include "taster.h"
9
#include "functions.h"
10
#include "ks108.h"
11
#include "mydefs.h"
12
#include "fontsoft.h"
13
#include "draw.h"
14
#include "bitmap.h"
15
#include "abfragen.h"
16

17
volatile uint8_t x      = 0;
18
volatile uint8_t y      = 1;
19
volatile uint8_t pfeilpos  = 0;
20
volatile uint8_t z      = 1;
21
volatile char    lcd_puffer[128][8];  
22
void taster(void){
23
  if (get_key_short(1<<left)){
24
    x--;
25
  }
26
  if (get_key_short(1<<right)){
27
    x++;
28
  }
29
}
30

31
void homescreen(void){
32
  LCDSoftText("Spannungen",7,z1,BLACK);
33
  LCDSoftText("Bettleuchte",7,z2,BLACK);
34
}  
35
int main(void){
36
  
37
  lcd_init();
38
  init_io();
39
  init_timer();
40
  sei();
41
  
42
  
43
  
44
  while(1){
45
    taster();
46
    switch(x){
47
      case 0: ClearScreen; homescreen(); break;
48
      case 1: ClearScreen; LCDSoftText("test",0,0,BLACK); break;
49
    
50
    }
51
  }  
52
}
Gast #3860197
Lesenswert?

moks schrieb:
> Woran kann das liegen.?
> PS: das ClearScreen() funktioniert sonst auch immer. nur hier wird es
> übersprungen

ist ja kein wunder. Und wenn man sich die mühe macht, nicht alles auf 
ein Zeile zu schreiben, dann würden einem der Fehler auch auffallen.
1
ClearScreen; 
2
homescreen();
#3860219
Lesenswert?

moks schrieb:
> be stucki schrieb:
>> Schalte mal -Wall und -Wextra ein.
>
> das hab ich. aber es kommt trotzdem keine warnung

Welchen Compiler benutzt du? GCC wirft eine Warnung:
1
void foo(void){
2
}
3

4
int main(void){
5
  foo;
6
  return 0;
7
}
1
[Warning] statement with no effect [-Wunused-value]

-Wall schaltet die Option -Wunused-value ein.
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren