Gast
#1968806
Moin, ich habe ein Problem mit meiner Wait-Busy Routine. Wenn ich das Busy-Flag abfragen möchte klappt dies nicht. Ich habe eine While-Schleife in der ich den enable Pin des LCDs toggeln lasse um somit das Ding zu aktualisieren. Aus irgend einem Grund ist das Busy-Flag immer genau dann 0 wenn ich das Enable Bit auf 1 setze, danach ist es wieder 1, also immer invertiert. Wenn ich anstelle der While-Schleife eine Warteschleife mache klappt alles. Dahe denke ich mal es liegt nur an der Wait-Busy Routine. Auszug:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
Das LCD hängt an PORTA, RS = PC7, R/W = PC6 und E = PC5. Das Busy-Bit geht nie von allein auf 0, habs schonmal ohne das Toggeln in der Warterschleife probiert, klappt auch nicht. Ich verwende einen Atmega16 und die aktuelle Version des AVR-Studios und WinAVR. Optimierung ist OS, Änderungen ändern nichts. Wo is der Fehler, ich hoffe ich habe Nichts vergessen zu posten. Gruß Knut