crazychriz schrieb:
> ne steh eigendlich zu den arrays besser als zu den pics haahahhahahaha
> aber ich kann grad irgendwie nicht mehr folgen
Du hast 3 Variablen:
Das Array und 2 integer.
Der eine integer sagt dir, wo im Array der nächste eingehende Wert
abzulegen ist und der andere sagt dir, von wo aus der nächste ausgehende
Wert zu lesen ist.
nextRead nextWrite
+--------+ +-------+ +------+
| | | 0 | | 0 |
+--------+ +-------+ +------+
| |
+--------+
| |
+--------+
| |
+--------+
Ein Wert kommt in die FIFO rein: 8
Ergebnis deiner Manipulation
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 0 | | 1 |
+--------+ +-------+ +------+
| |
+--------+
| |
+--------+
| |
+--------+
der nächste Wert kommt rein: 25
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 0 | | 2 |
+--------+ +-------+ +------+
| 25 |
+--------+
| |
+--------+
| |
+--------+
Und noch einer: 12
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 0 | | 3 |
+--------+ +-------+ +------+
| 25 |
+--------+
| 12 |
+--------+
| |
+--------+
Ein Wert gaht aus der Fifo raus. nextRead sagt uns welcher das ist: Der
an Indexposition 0. Der Wert ist daher 8
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 1 | | 3 |
+--------+ +-------+ +------+
| 25 |
+--------+
| 12 |
+--------+
| |
+--------+
Und wieder kommt ein Wert rein: 49
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 1 | | 0 |
+--------+ +-------+ +------+
| 25 |
+--------+
| 12 |
+--------+
| 49 |
+--------+
Beachte wie nextRead jetzt nicht auf 4 ggangen ist, sondern auf 0!
Ein Wert soll aus dem FIFO raus: nextRead sagt wieder welcher. Nämlich
der an der Arrayposition 1. Das sind die 25
(und das ist auch richtig so. Denn in dieser Reihenfolge wurden sie ja
eingestellt. 8, 25 ...
Die 8 wurde schon ausgelesen, also ist als nächstes die 25 drann)
nextRead nextWrite
+--------+ +-------+ +------+
| 8 | | 2 | | 0 |
+--------+ +-------+ +------+
| 25 |
+--------+
| 12 |
+--------+
| 49 |
+--------+
Wert kommt dazu: 14
nextRead nextWrite
+--------+ +-------+ +------+
| 14 | | 2 | | 1 |
+--------+ +-------+ +------+
| 25 |
+--------+
| 12 |
+--------+
| 49 |
+--------+
Die 14 überschreiben die 8. Aber das ist ok. denn die 8 wurde ja schon
aus dem FIFO ausgelesen.
> ich glaub ich brauch jetzt mal ne auszeit
> und vll steh ich dann nicht mehr so auf em schlauch
Zwischen dem nextRead und dem nextWrite gibt es Zusammenhänge, die dir
sagen ob das Array voll ist, bzw. ob noch etwas im FIFO auf Abholung
wartet. Aber da kommst du sicher selber auch drauf.
Wie gesagt: ISt ganz simpel. Hast du sicher im realen Leben (in
Abwandlungen) schon hundert mal gemacht.