super.
das klingt wunderbar und dein programm ist auch logisch und einfach zu verstehen. allerdigns weiß ich nicht, wie ich das a) in c umsetzt und b) den wert des ADC vom asuro bekomme...
Code:
/*Funktion, die eine Zufallszahl zwischen min und max liefert*/
int zufall(int min, int max)
{
static uint8_t RandomNr=0;
uint8_t ADC_Val;
int n;
for(n=0;n<8;n++)
{
/*hier müsste jetzt der Wert aus dem ADC geholt werden, aber wie?!*/
ADC_Val=GetWert();
ADC_Val&=0x01;
ADC_Val=ADC_Val<<n;
RandomNr=RandomNr+ADC_Val;
}
return min+(RandomNr%(max-min+1));
}
kann man das so machen?! und wenn ja, mit welcher funktion oder wie auch immer, kann ich an den wert aus dem ADC rankommen?!
und dann gleich noch ne frage: geht das auch mit 16bit?! müsste doch ansich, oder?
z.b. so:
Code:
/*Funktion, die eine Zufallszahl zwischen min und max liefert*/
int zufall(int min, int max)
{
static uint16_t RandomNr=0;
uint8_t ADC_Val;
int n;
for(n=0;n<16;n++)
{
/*hier müsste jetzt der Wert aus dem ADC geholt werden, aber wie?!*/
ADC_Val=GetWert();
ADC_Val&=0x01;
ADC_Val=ADC_Val<<n;
RandomNr=RandomNr+ADC_Val;
}
return min+(RandomNr%(max-min+1));
}
?!
(edit: ich hab natürlich in meinem eifer das eigentliche erzeugen der zufallszahl vergessen.
soll heißen: das prgramm liefert uns jetzt den seed, mit dem wir dann die rand() initialisieren müssen... nicht wundern!
)
Lesezeichen