oh da hab ich zu schnell gedrückt,
ich möchte gerne das Array mona an 2 Funktionen übergeben, leider klappt
das nicht so.
in der Funktion void get( uint8_t ss) (wird von der Mainloop alle
5sekunden aufgerufen) soll das array an die Funktion
write_temp_timeDate(mona); weitergegeben werden ,in der ein Ordner
geöffnet werden soll leider funktioniert das nicht so.
Wenn ich den Ordner so Chdir("jan" ); öffne geht es.
vielleicht kann mir einer von ihnen weiterhelfen was ich falsch mache
mit dem array
1
charmona[11];// Array Monatsname
2
3
voidget(uint8_tmonth)
4
{
5
uint8_tmonth;
6
7
if(month==1)// Januar
8
{
9
strcpy(mona,"jan");// Kopiere Monatsname in mona-Array
10
11
write_temp_timeDate(mona);
12
}
13
}
14
15
16
voidwriting_sd_temp(char*monath)
17
{
18
uint8_ti=0;
19
20
if(hour==0&&minute==30&&second==45)
21
{
22
write_temp_timeDate(monath);// Uhrzeit und Datum in Datei
Sorry, aber erstens verstehe ich nicht, was das Ganze soll, und zweitens
sind da ein paar -ähm- Merkwürdigkeiten, die mich glauben lassen, daß es
irgendwie auch nicht sinnvoll gehen kann, und drittens ist die
Formatierung so grottig, daß ich mich als Compiler weigern würde, etwas
davon zu übersetzen.
1
charmona[11];// Array Monatsname
mona wird nicht initialisiert?
1
voidget(uint8_tmonth)
"get" ist schnell geaschrieben, aber als Name nicht besonders
aussagekräftig.
ok, es gibt einen Parameter month...
1
{
2
uint8_tmonth;
... und jetzt gleich noch eine lokale Variable mit demselben Namen? Wozu
dann der Parameter? Welchen Wert bekommt die lokale Variable month?
1
if(month==1)// Januar
2
{
3
strcpy(mona,"jan");// Kopiere Monatsname in mona-Array
4
5
write_temp_timeDate(mona);
6
}
1. ist der Januar wirklich 1 und nicht 0?
2. Was ist, wenn month nicht 1 ist? Dann darf das Programm mit dem
zufälligen Inhalt von mona weiterlaufen?
1
}
2
3
4
voidwriting_sd_temp(char*monath)
Nach mona und month wieder eine Variable, die so ähnlich heißt, aber
irgendwie anders ist. Man könnte mal sinnvolle Namen nehmen, damit man
den Dingern ansieht, was wozu ist.
naja egal, die Funktion wird eh nicht verwendet.
Aber wozu steht sie dann hier? Um mich zu verwirren?
Wenn sie Teil des Problems sein kann, fehlt ein Aufruf.
Wenn sie nicht nötig ist, kann sie weg.
1
{
2
uint8_ti=0;
3
4
if(hour==0&&minute==30&&second==45)
wo kommen diese drei jetzt her? Haben die sinnvolle Werte?
1
{
2
write_temp_timeDate(monath);// Uhrzeit und Datum in Datei
Wenn du konsequent alle Rückgabewerte ignorierst, wundert es niemanden,
wenn du nicht weisst, was in deinem Programm passiert.
1
}
2
}
3
4
5
unsignedcharwrite_temp_timeDate(char*name)
6
7
{
8
//
9
unsignedcharby;
10
unsignedintwritten;
11
unsignedcharresult;
Was machen die drei? Außer der letzten sieht man dem Namen nicht viel
an, initalisiert sind sie natürlich auch wieder nicht, und verwendet
werden sie auch nicht alle.
Was, wenn das Schreiben nicht klappt? Keine Reaktion darauf?
1
by='\r';//Enter
2
result=Fwrite(&by,1);//Schreiben
3
4
by='\n';//Neue Zeile
5
result=Fwrite(&by,1);//Schreiben
Wieso nicht gleich beide auf einmal (Fwrite("\r\n",2))?
Was, wenn das Schreiben nicht klappt? Keine Reaktion darauf?
1
}
2
Fclose();
3
4
Chdir("..");//Ordner Monats-Name Schliessen
5
Chdir("..");//Ordner temper Schliessen
6
return1;//result;
Falscher Kommentar! Eben nicht result.
1
}
basti schrieb:> vielleicht kann mir einer von ihnen weiterhelfen was ich falsch mache> mit dem array
Ich frage mich eher, was an dem Programm überhaupt funktionieren soll;
abgesehen davon, daß es nicht vollständig ist.
Sehr planvoll sieht es nicht aus, ehrlich gesagt.
basti schrieb:> ich möchte gerne das Array mona an 2 Funktionen übergeben, leider klappt> das nicht so.
"klappt nicht" ist keine wirklich sinnvolle Fehlerbeschreibung.
Vielleicht wird der Programmteil in get gar nicht durchlaufen, weil
month nicht 1 ist?
hallo,
hhour,minute,second,day,month,year sind Globale Variablen.
char Buffer[50];// Array Ausgabe Buffer für alle möglichen lcd ausgaben
ist ein globales ARRAY
void get(uint8_t month) wird vom Hauptprogramm aufgerufen und enthält
den Monat 1 bis 12,
wenn zB. month==1 dann ist das Januar.
Meine Ordner sind auf der SD-Card vorhanden in TEMPER sind die
Moants-Ordner von Januar bis Dezember.
Aber leider kann ich die Monats-Ordner so nicht öffnen wie ichs jetzt
habe.
Wenn ich das jetzt so mache in write_temp_timeDate(char *name ),
Chdir("temper"); // ORDNER temper ÖFFNEN
Chdir("jan"); // ORDNER Monats-Name ÖFFNEN
dann gehts,aber ich wollte das gerne anders machen so wie unten.
1
charmona[11];// Array Monatsname für die Manats-Ordner
2
chardatname[11];// Array Text-Datei-Name in den Manats-Ordner 8.3 DOSNAME
3
4
5
voidget(uint8_tmonth)
6
{
7
8
if(month==1)// Januar
9
{
10
strcpy(mona,"jan");// Kopiere Monatsname in mona-Array
11
write_temp_timeDate(mona);("jan");// Vergleich Stunde zum Temperratur-Daten schreiben
12
}
13
14
if(month==2)//Februar
15
{
16
strcpy(mona,"feb");// Kopiere Monatsname in mona-Array
17
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
18
}
19
20
if(month==3)//März
21
{
22
strcpy(mona,"mae");// Kopiere Monatsname in mona-Array
23
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
24
}
25
26
if(month==4)//April
27
{
28
strcpy(mona,"apr");// Kopiere Monatsname in mona-Array
29
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
30
}
31
32
if(month==5)//Mai
33
{
34
strcpy(mona,"mai");// Kopiere Monatsname in mona-Array
35
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
36
}
37
38
if(month==6)//Juni
39
{
40
strcpy(mona,"jun");// Kopiere Monatsname in mona-Array
41
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
42
}
43
44
if(month==7)//Juli
45
{
46
strcpy(mona,"jul");// Kopiere Monatsname in mona-Array
47
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
48
}
49
50
if(month==8)//August
51
{
52
strcpy(mona,"aug");// Kopiere Monatsname in mona-Array
53
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
54
}
55
56
if(month==9)//September
57
{
58
strcpy(mona,"sep");// Kopiere Monatsname in mona-Array
59
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
60
}
61
62
if(month==10)//October
63
{
64
strcpy(mona,"okt");// Kopiere Monatsname in mona-Array
65
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
66
}
67
68
if(month==11)//November
69
{
70
strcpy(mona,"nov");// Kopiere Monatsname in mona-Array
71
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
72
}
73
74
if(month==12)//Dezember
75
{
76
strcpy(mona,"dez");// Kopiere Monatsname in mona-Array
77
write_temp_timeDate(mona);(mona);// Vergleich Stunde zum Temperratur-Daten schreiben
78
}
79
}
80
81
82
voidwriting_sd_temp(char*monath)
83
{
84
uint8_ti=0;
85
86
if(hour==0&&minute==30&&second==45)
87
{
88
write_temp_timeDate(monath);// Uhrzeit und Datum in Datei