How2 de berekening van de vertraging cyclus time4 MCU in C programmeren?

B

brennbar67

Guest
Ik ben niet zeker How2 berekenen vertraging tijd met behulp van for-lus.
Bij gebruik 8MHz klok, wat is de vertraging voor dit voorbeeld hieronder:

for (i = 1; i <20; i );

Is het berekenen als deze?19 x (1/8Mhz) = 2.375us

Ik weet How2 berekenen met behulp van de assembler-taal, maar i dunno is het C programma vergelijkbaar met de montage.

Anyone know?

 
als u een emulator, reken maar eens uit de bijbehorende montage-code, als u niet een emulator hebt, dan kunt u uw C-compiler kan leveren aan de uitgang van de vergadering lijst, kan het ook helpen.

 
Nee, ik heb dun emulator.
Maar ik wil leren berekenen met behulp van C programma.

 
Het is onmogelijk om de berekening van de CPU-cyclus uitvoeren door het tellen van C-code.de cycli afhankelijk van de montage-code, anders zal C-compiler maken ander resultaat.
Maar als je wil gewoon de vertragingstijd ruwweg, kunt u de timers gebruiken in de MCU om u te helpen weet, kunt u de timer voor de lus, dan krijg de timer tellen na de lus.u weet de tijd, de precisie afhankelijk van de klok van de timer van de bron.

 
Het is waar je niet kunt tellen gewoon door te kijken naar de C-broncode.C-compilers voor de zuivere intercommunales zijn gewoon C-to-ASM vertalers.Aangezien alleen ASM instructie timings worden verstrekt, moet je weten hoe de vertaling wordt verricht voordat u kunt rekenen de timings.Als u begrijpt ASM en wil alleen maar een segment van de code tellen, zou je compiler de code de eerste plaats kijken naar de LST-bestand en tellen de tijden.

 

Welcome to EDABoard.com

Sponsor

Back
Top