TTL-Gatter, Atmega 8, MIPS Assembler

Benutzeravatar
yun7x
Site Admin
Beiträge: 1560
Registriert: Di Jul 18, 2023 8:36 pm
Wohnort: D-72072, Tübingen
Kontaktdaten:

Re: TTL-Gatter, Atmega 8, MIPS Assembler

Beitrag von yun7x »

Als, erstes machen wir eine Zählschleife, die möglichst lange aber nicht tage dauert - wenn nämlich die LED's in den nächsten Zustand geschaltet werden. Mein Atmega 8 hat 8MHz. Das heisst, nicht 8 Millionen Befehle pro Sekunde, aber wissen ja - mehrzyklusmikroarchitektur

Das heisst

1.) Einzyklus
2.) Mehrzyklus
3.) Pipelining

Das bedeutet - ein Befehl ist - vielleicht dank Mikroprogrammiergerät - in 8 Phasen zum Beispiel eingeteilt. Es können auch 16 oder 5 sein. Oder so. Das muss nicht sein

Eine Einzyklusmikroarchitektur hat

1.) Eine Befehlsholephase
2.) Eine Befehlsausführungsphase

Dabei nimmt die letztere das gesamte Schaltnetz des Operationsnetzes der CPU in Anspruch, kurz Rechenwert

Mehrzyklus, heisst beim einfachen Mehrzyklus MIPS 5 Phasen

1.) Befehl holen IF
2.) Befehl dekodieren, Operanden bereitstellen ID
3.) Befehl ausführen EX
4.) MEM - Memory Acces
5.) WB Write Back

bei 5 MHz erreicht der Prozessor 1.000.000 Befehle pro Sekunde. Gut das ist einfach

Wenn ich bei meinem Atmega8 8 MHz habe, und angenommen, dazu müssen wir die Datenblätter des Atmega8 bemühen, ein Befehl 8 Phasen hat, dann würde ein Befehl, also dann würden 1.000.000 Befehle pro Sekunde aussgeführt. Der OUT Befehl dauert etwas länger. Aber angenommen, ich erhöhe das Register, damit es nachher schön aussieht, gebe es aus. Und so weiter. Dann würde ich immer noch mindestens auf 250.000 Befehle pro Sekunde kommen. Dafür dass die LED's langsam laufen sollen, weil dem keiner folgen kann - und man mindestens 0.5 s Braucht würde ich sagen - man braucht eine Schleife

von minindestens

255 x 255

Das heisst, man braucht eine Schleife . Wieder mit unserem BRNE dabei inkrementieren wir r2 meinetwegen und aussen R3 und weisen vorher 0xff zu. Gut. Jetzt kann man über gewisse Programmierbegebenheiten, die etwas speziell. Das lernen wir später - erst Mal das normale lernen, man kann, auch über das Programmierinterface - beim STK500, dem Programmiergerät speziell, den Takt etwas nach oben oder unten manipulieren. Nicht extrem. Aber 1MHz würde schon gehen.
Antworten