So M1.R, nun habe ich den Fehler nachstellen können.
Es fehlt tatsächlich die Mathe-Funktion fmod().
Obwohl wir ja schon den Hinweis mit #include <math.h> gegeben hatten, reicht es aber noch nicht aus.
Der Compiler mag das #include.
Der Linker mag ein -lm und -L.... <--- Das fehlt in deinem Makefile
So kannst du das im AVR-Studio einstellen:
- Menü 'Project', Punkt 'Configuration Options'
- Im folgenden Fenster links das Bildchen 'Libraries' anklicken
- Oben rechts im Kasten 'Library Search Path' den Pfad zu deiner Win-AVR-Installation und weiter zu den Lib's einstellen.
-- Bei dir ist das "C:\winavr-20070525\avr\lib"
- Unten links im Kasten 'Available Link Objects' die Datei libm.a markieren
- Und zum Schluß den Button 'Add Library-->' drücken.
Das Fenster mit OK schließen.
Aus dem Menü 'Build' den Punkt 'Rebuild All' aufrufen. Es kommen wieder deine Warnings, die du im 2.ten compile-Lauf ja vermisst hattest. (Die kommen immer, wenn du die Datei lottozahlen_v051.c speicherst. Die Taste F7 (Build|Build) übersetzt nur die Dateien, die neuer sind als im Verzeichnis default liegenden *.o-Dateien. Deshalb keine Warnings im 2.ten Lauf.)
So funktioniert nun das erzeugte HEX-File auch bei mir. Und bestimmt auch bei dir und überhaupt bei allen weltweit verstreuten Asurianern.
Und wenn nicht, dann nochmal fragen.
Gruß Sternthaler
Schon wieder ein P.S.: Die Warnings kannst du in diesem Fall vergessen.
Liegt an deiner AVR-Compilerversion 4.1.2.
Ich habe noch die 3.8.1-Version. Da scheint die Unterscheidung zwischen 'unsigned char' und 'signed char' noch kein Warning zu sein.
Gute Nacht
Lesezeichen