Frischling schrieb:
> Die Problme lagen daran das Mein AVR-Studio die Datei time.h nicht hat.
Ist egal. Dann machst du eben keinen srand am Anfang, in dem der
Generator mit der aktuellen Zeit initialisiert wird.
Das hat, zumindest erst mal für dich, den Vorteil, dass du immer die
gleiche Sequenz bekommst. Wenn du dann in deinen C Studien weiter bist,
findest du noch viele andere Möglichkeiten, wie man diesen Teil auf
einem AVR mit den dort vorhandenen Mitteln realisieren kann. Also stör
dich erst mal nicht an diesem relativ unwichtigen Detail, dass du den
Generator nicht 'zufällig' initialisiert bekommst.
> das andere war hat, das die Zahlen um die es ging jenseits von Gut und
> Böse waren.
Nö. Das ist genau definiert.
rand() liefert Zahlen zwischen 0 und RAND_MAX.
Und mit Zahlen kann man rechnen. Überhaupt dann, wenn man ein Computer
ist.
Du solltest tatsächlich ein C-Buch lesen. Denn auf Dauer wird das
nichts, wenn du immer nur mit Viertelwissen an die Dinge ran gehst, das
du dir im Web zusammengesucht hast. Programmiersprachen sind komplex und
voll mit kleinen Details, die man zum Grossteil alle wissen muss, wenn
man programmieren will.
> dir auch danke aber es führte nicht so zum erfolg
Doch das tut es.
Aber dein Problem liegt viel tiefer.
Dein Problem liegt darin, dass dein ganzer Lauflichtansatz nicht
brauchbar ist.
Das wieder ist auf mangelnde C Kentnisse zurückzuführen und darauf, dass
du nicht mit Bitoperationen umgehen kannst.
Auch hier wieder: fehlende Kenntnisse kann man nicht durch Copy&Paste
Programmierung und dem ändern von ein paar Zahlenwerten ersetzen!
Ein Lauflicht könnte zb so aussehen, auch wenn das im Prinzip keine gute
Lösung ist. Aber darum geht es nicht. Es geht darum, dass dieser Ansatz
vollkommen anders aussieht als deiner. Er ist kürzer, er ist
übersichtlicher und er birgt den Grundstock, wie du die Sache auch mit
Zufallszahlen pimpen kannst.
1 | #define F_CPU 8000000UL
|
2 | #include <avr/io.h>
|
3 | #include <util/delay.h>
|
4 |
|
5 | int main()
|
6 | {
|
7 | uint8_t i;
|
8 |
|
9 | DDRD = 0xFF;
|
10 |
|
11 | PORTD = 0xFF;
|
12 | i = 7;
|
13 |
|
14 | while( 1 )
|
15 | {
|
16 | PORTD &= ~( 1 << i );
|
17 | _delay_ms( 300 );
|
18 | PORTD |= ( 1 << i );
|
19 |
|
20 | if( i == 0 )
|
21 | i = 7;
|
22 | else
|
23 | i--;
|
24 | }
|
25 | }
|