2017-07-02 2 views
0

Ich verwende eine for-Schleife, die von 0 bis 30000 erhöht wird, um eine gewisse Verzögerung zwischen LED ON/OFF-Zuständen zu machen. So finden Sie die genaue Verzögerung, die von der for-Schleife genommen wird. Der Code wird für den Micro Controller AT89C51ED2 mit 11.0592 MHz Oszillatorfrequenz verwendet. Ich habe mit Verzögerungsfunktionen versucht, die von einigen Programmierern auch bevorzugt werden. Aber ich konnte nicht sehen, dass die LED blinkt.Wie berechne ich die Zeit für die Ausführung einer Anweisung in keil c

+0

Wird Ihr Code überhaupt ausgeführt? Ist die LED an, aus oder halb hell? Was passiert, wenn Sie die LED umstellen? Zeigt Ihr Debugger, dass die Schleife ausgeführt wird? Sie müssen dies debuggen - wir können nicht mit allem, was Sie uns gesagt haben, oder mit möglicherweise Hardware-Problemen überhaupt helfen :( – ThingyWotsit

+0

Ja, es ist erfolgreich kompiliert und .hex Datei auch erstellt. Ich habe P1.0 für LED gewählt Im Debug-Modus kann ich sehen, dass der P1.0 blinkt, indem ich Peripherals-> I/O Ports -> Port 1 benutze. Aber in der Hardware ist es nicht. – userrp1519825

Antwort

1

Entweder Sie gehen und Sie verwenden Dissassembly Fenster Anweisungen für Ihre Schleife, um zu sehen und für jeden Befehl für die Schleife von 3000 Zeiten oder ...

..go zu debuggen, öffnen Registers Fenster Anzahl von Zyklen berechnen und Es gibt States Parameter, die Ihnen sagen, wie viele Zyklen für bestimmte Schritt in Ihrem Code erforderlich waren.

Beim Debuggen, gehen Sie zum Anfang der Schleife, speichern Sie die Zustände und gehen Sie danach Schleife und überprüfen Sie erneut. Subtrahieren Sie Werte und Sie haben eine Anzahl von Zuständen.

Verwandte Themen