PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Array



The Man
29.01.2009, 19:27
Moin,

ich hab hier ein kleines Problem mit einem Array. Gepostet ist hier nur der Ausschnitt, um den es geht.


zeit[0]=18;//Stunde
zeit[1]=44;//Minute
zeit[2]=0;
main2:
do{
if(TCNT1 < 40000) goto main2;
TCNT1 = 0;
viermal++;
}while(viermal <4);
viermal = 0;
zeit_und_logon();

if (hell < 100)
{
if((stunde == zeit[0]) && (minute == zeit[1]))
{
hell=100;
eier_uhr(0,0,9);
USART_Transmit(hell);

Eingebettet ist das Ganze in ein DCF77 Dekoderprogramm. In der Zeile mit if((stunde == zeit[0]) && (minute == zeit[1]))
wird die Zeit abgefragt, um dann eine Aktion zu starten. Das Problem ist, wenn ich wie geschrieben die Arrayinhalte nutzte, reagiert das Programm nicht. Wenn ich stattdessen aber die Zeitwerte als Konstanten eintrage, habe ich kein Problem. Weiß jemand, woran das liegt?

mfg,
The Man

markusj
29.01.2009, 21:17
Ganz sicher bin ich mir bei der folgenden Aussage nicht, aber:
Hast du zeit schon als Array der Länge drei deklariert?

mfG
Markus

The Man
29.01.2009, 21:28
Ich habe das Array als globale Variable mit länge 3 deklariert.

SprinterSB
30.01.2009, 14:07
MIt dem Schnippsel kann man nix anfangen.

Er lässt sich nicht compileren. So kann dir keiner helfen. Was zeit ist kann man nur raten. Was minute ist kann man nur raten, ...

The Man
30.01.2009, 14:24
Welche Rolle spielt es denn, ob man das Stück compilieren kann?
Wie ich schrieb, funktioniert das Gesamtprogramm, wenn ich Zahlenkonstanten eintrage. Also ist das Programm schon mal lauffähig. Außerdem habe ich auch geschrieben, dass der schnippsel in einem DCF77 Dekoderprogramm arbeitet. Dann kann stunde und minute ja nur die Systemzeit sein. Und ich habe auch geschrieben, was in dem geposteten Code passiert.
Im zweiten Beitrag darauf steht auch, das Zeit als Array mit der länge drei deklariert ist.

Ich habe nicht den ganzen Code gepostet, weil ich bereits weiß, dass der Rest arbeitet. Daher habe ich nur die Problemstelle genommen um den Blick darauf zu fokussieren.

mfg

McJenso
30.01.2009, 14:40
Hallo,

was er damit sagen wollte ist, es lässt sich kein Fehler in dem Code finden. Alles weitere ist somit Spekulation.

Gruß

Jens

sternst
31.01.2009, 16:29
Ich habe nicht den ganzen Code gepostet, weil ich bereits weiß, dass der Rest arbeitet. Zwischen "arbeitet" und "ist fehlerfrei" liegen Welten.

Daher habe ich nur die Problemstelle genommen um den Blick darauf zu fokussieren.Nur ist das nicht die eigentliche Problemstelle, sondern nur die Stelle, wo sich das Problem für dich bemerkbar macht.

Die beste Chance auf Hilfe hast du, wenn du wirklich den ganzen Code postest, und nicht nur irgendwelche "Schnipsel".

PicNick
31.01.2009, 18:39
welche Routine schreibt denn die Werte in das array rein ?

Hast du zur array definition "volatile" dazugeschrieben ? Wegen sowas hatte ich schon mal viel Spass beim Fehler-Suchen