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 | }
|