Hey... Ich benötige die time.h (GCC)... Die Datei ist bei mir aber nicht als Standardlib vorhanden. Ich dreh noch durch weil ich sie auch nicht in google finde... Könnte mir die bitte jemand kurz posten oder hochladen? Vielen Dank Matze
> Könnte mir die bitte jemand kurz posten oder hochladen?
Kein Problem. Hier ist sie (der Bereich zwischen BEGIN und END):
--- BEGIN ---
--- END --
Hoffe geholfen zu haben!
Ich habe das neueste WinAVR installiert (20090313). Dann habe ich AVR Studio 4.18 installiert. Alles unter Windows 7...
Und wofür benötigst du time.h? Das Fehlen diese Headers mag wohl daran liegen, dass eine Standard-Uhr auf einem AVR nicht vorausgesetzt werden kann und sich jeder Programmierer sowieso seine eigenen Uhrenroutinen selber schreibt um zb 32 Bit Arithmetik zu umgehen. Und die Konvertier- und Formatierfunktionen: na ja. Die schreibt sich soweiso jeder selber bzw sie sind unnötig, weil man eben einen Zeitwert auf einem AVR geschickter Weise nicht als 32-Bit long speichert. Schau dir einfach nur mal die struct tm an:
1 | struct tm { |
2 | int tm_sec; // Sekunden nach der vollen Minute (0, 61)* |
3 | int tm_min; // Minuten nach der vollen Stunde (0, 59) |
4 | int tm_hour; // Stunden seit Mitternacht (0, 23) |
5 | int tm_mday; // Tage im Monat (1, 31) |
6 | int tm_mon; // Monate seit Januar (0, 11) |
7 | int tm_year; // Jahre seit 1900 |
8 | int tm_wday; // Tage seit Sonntag (0, 6) |
9 | int tm_yday; // Tage seit dem 1. Januar (0, 365) |
10 | int tm_isdst; // Kennzeichen für Sommerzeit |
11 | };
|
alles int. Wer sowas auf einem AVR macht, sollte sofort eine mit einem nassen Fetzen verpasst bekommen.
Karl heinz Buchegger schrieb:
> Und wofür benötigst du time.h?
Um Zufallszahlen zu erzeugen
time.h muss laut C-Standard bei "freestanding" Umgebungen (Umgebungen ohne Betriebssystem) nicht vorhanden sein. Der AVR ist so eine Umgebung und es gibt keine time.h. Wer weiß was in time.h drin sein muss sieht auch sofort warum. Der Rest stimmt an dieser Stelle immer das große Gejammer "könnte man nicht ...?" an.
Der Matze schrieb: > Karl heinz Buchegger schrieb: >> Und wofür benötigst du time.h? > > Um Zufallszahlen zu erzeugen Aha. Und wie soll sich eine Library aus einer nicht existenten Realtime-Clock die Uhrzeit aus den Fingern saugen?
Wie kann ich denn dann am einfachsten Zufallszahlen mit GCC erzeugen? Ist bestimmt einfach aber ich brauch einfach nen kurzen Anstoß. Danke!
Der Matze schrieb:
> Wie kann ich denn dann am einfachsten Zufallszahlen mit GCC erzeugen?
rand()
ist schon ok.
Die Frage ist: womit seedest du den Generator ganz am Anfang. Wenn du
nichts anderes hast, dann nimm eine Konstante.
Du kannst auch am Anfang eine Variable ständig hochzählen, bis der
Benutzer eine Taste drückt und diese Zahl dann als Seed benutzen.
ok, khb war mal wieder schneller. Man könnte auch im EEPROM einen Wert bei jedem Neustart auslesen und weitersetzen, und den für srand() nehmen.
Klaus Wachtler schrieb:
> Lt. ANSI-C gibt es eine Funktion rand() und eine srand() in stdlib.h.
:-)
Ich versteh schon was sein Problem ist.
Er hat des Öfteren gesehen (und das ist durchaus üblich so)
1 | int main() |
2 | {
|
3 | |
4 | srand( time( NULL ) ); |
5 | |
6 | ...
|
Tja. Nur so wird das auf seinem AVR nichts. Es gibt nun mal keine aktuelle Uhrzeit :-)
Klaus Wachtler schrieb: > Man könnte auch im EEPROM einen Wert bei jedem Neustart > auslesen und weitersetzen, und den für srand() nehmen. Gute Idee. Daran hab ich wieder nicht gedacht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.