hi...
ich würde gern anständige zufallszahlen auf asuro erzeugen.
jetzt hab ich zunächst mal gegooglet, wie man das am besten in c anstellt und bin zu folgendem code gekommen:
dabei erzeugt die rand()-funktion die zufallszahlen und der term hinter dem return grenzt mittels modulo die folge zwischen minimalwert und maximalwert ein. leider arbeitet diese rand() nach einem gewissen schema, sodass nur pseudozufallszaheln entstehen (also immer wieder die gleichen). dazu initialisiert man die rand()-funktion mittels srand() (man weist der rand() sozusagen einen startwert zu). um das möglichst zweckmäßig zu machen und hier nicht immer dei gleichen werte zu liefern, benutzt man dazu die aktuelle zeit. (daher auch das #include time.h)Code:: #include <time.h> : int zufall(int min, int max) { srand((unsigned)time(NULL)); return min+(rand()%(max-min+1)); } :
nun hab ich 2 probleme:
1. winavr hat die time.h-lib nicht und ich weiß auch nicht wie ich sie einbinden kann.
2. da der asuro ja nach dem flashen autonom arbeitet, bin ich mir nicht sicher, ob das überhaupt funktioniert, weil ich nicht weiß, ob es auf dem asuro sowas wie eine "uhrzeit" gibt, die ich auslesen kann.
kann mir da jemand helfen?
oder gibt es sogar eine elegantere lösung um zufallszahlen zu erzeugen?
danke schon mal.
malediction.
Lesezeichen