Hallihallo!
Ich bin mal wieder am Verzweifeln... nachdem ich meinen gesamten Code
nun "gereinigt" habe und das Programm bis zu einem gewissen Punkt
funktioniert hat, stehe ich wieder mal vor einem Rätsel:
Schaut euch mal diesen Codeausschnitt an:
1 | while(1){
|
2 |
|
3 | var0 = OWFindAll();
|
4 |
|
5 | while(PINSB==0xC0)OUTC=PINSB;
|
6 | }
|
Erläuterung:
OWFindAll() sucht nach angeschlossenen Bauteilen und liefert die
gefundene Anzahl zurück.
PINSB ist bei meinem µC (AN2131) auf meiner Platine standardmäßig auf
0xC0, wenn man einen Taster auf der Platine drückt, ändert sich dieser
Wert.
FoundROM ist ein ganz normales zweidimensionales Array vom Typ char
Das das Programm müsste ja bei der while-Schleife anhalten (also auf
einen Tastendruck "warten"). Das tut es hier auch.
Nun mein Problem (dazu folgender Code-Ausschnitt):
1 | while(1){
|
2 |
|
3 | var0 = OWFindAll();
|
4 |
|
5 | while(PINSB==0xC0)OUTC=PINSB;
|
6 |
|
7 | var1=FoundROM[0][0];
|
8 | var2=FoundROM[0][1];
|
9 | var3=FoundROM[0][2];
|
10 | var4=FoundROM[0][3];
|
11 | var5=FoundROM[0][4];
|
12 | var6=FoundROM[0][5];
|
13 | }
|
Hier müsste das Programm ebenfalls anhalten, um nach Tastendruck die
Wertet des Array in var... zu kopieren. Doch ich musste feststellen,
dass das Programm nicht wartet, sondern immer wieder von vorne startet
(und somit die Schleife anscheinend nie erreicht...
Wie kann ein Array solche Auswirkungen haben?!?!
Für alle, denen der Ausschnitt nicht reicht, im Anhang ist der komplette
Code... (sorry, 2 mal der gleiche...)
Viele Grüße,
Stefan