Forum: Compiler & IDEs Wie von PIC-Simulator-Registertrace Cyclewerte auf Zeitwerte kommen?


von Rudi R. (microwitsch)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

habe mal ein Foto angehangen...wie komme ich von den Cyclewerten auf 
Zeitwerte?Ich habe in der Simulator-einstellung auf 1MHz 
Instruktionfrequenz gestellt, bzw war es voreingestellt und entspricht 
auch der realen Rate des PIC.
Doch der Rechner arbeitet viel schneller und im Simulator springen die 
Werte von Porta hier auch ungefähr doppelt so schnell wie im realem PIC.

Also die voreingestellten 1Mhz können hier nicht stimmen,sonst hätte ich 
diese Unterschiede nicht.
Welche Frequenz nehme ich denn nun für die Zeitberechnung??

von Volker S. (vloki)


Lesenswert?

Bei 1MHz Cycle Frq. dauert ein Cyle 1us.
Also die Anzahl Cycles genau der Zeit in us.

Vergiss die Arbeitsgeschwindigkeit deines PCs und
die daraus resultierende Aktualisierungsrate im Simulator.
Das steht damit in keinerlei Verbindung.

von Rudi R. (microwitsch)


Lesenswert?

Volker S. schrieb:
> Bei 1MHz Cycle Frq. dauert ein Cyle 1us.
> Also die Anzahl Cycles genau der Zeit in us.
>
> Vergiss die Arbeitsgeschwindigkeit deines PCs und
> die daraus resultierende Aktualisierungsrate im Simulator.
> Das steht damit in keinerlei Verbindung.

Ich hatte den PIC aber schon dran und danach habe ich mal die Simulation 
ausprobiert!Da ist aber der Programmablauf ca.doppelt so schnell.Wenn 
ich jetz PWMs simulieren will oder irgendwelche anderen Sachen, muss das 
doch mit der Realität abstimmbar sein!?

von Volker S. (vloki)


Lesenswert?

Mit der Realität abstimmbar im Sinne von "die Simulator läuft genauso 
schnell wie der reale PIC" ist nicht ;-)

Bei relativ niedrigen Instruction Clocks könnte das Simulationsprogramm 
auf dem PC das evtl noch schaffen genau so schnell zu arbeiten, wie der 
reale Controller. Bei höheren Takfrequenzen hätte die Simulation aber 
wohl keine Chance.

von Rudi R. (microwitsch)


Lesenswert?

Volker S. schrieb:
> Mit der Realität abstimmbar im Sinne von "die Simulator läuft genauso
> schnell wie der reale PIC" ist nicht ;-)
>
> Bei relativ niedrigen Instruction Clocks könnte das Simulationsprogramm
> auf dem PC das evtl noch schaffen genau so schnell zu arbeiten, wie der
> reale Controller. Bei höheren Takfrequenzen hätte die Simulation aber
> wohl keine Chance.

Aktuell ist aber der PC wie gesagt schneller.

Habe in der Hilfe zum Simulator in Mplab gerade diese Bemerkung 
gefunden, damit hat der Rechner selbst doch einen Einfluss!?
Doch dann bräuchte ich ja diesen Frequenzreiter in der Option nicht, der 
die Instruktionfrequenz einstellen lässt?

Execution Speed

When MPLAB X Simulator is simulating running in real time, instructions 
are executing as quickly as the PC's CPU will allow. This is usually 
slower than the actual device would run at its rated clock speed.
The speed at which the simulator runs depends on the speed of your 
computer and how many other tasks you have running in the background. 
The software simulator must update all of the simulated registers and 
RAM, as well as monitor I/O, set and clear flags, check for break and 
trace points in software and simulate the instruction with instructions 
being executed on your computer's CPU.
The execution speed of a discrete-event software simulator is orders of 
magnitude less than a hardware oriented solution. Slower execution speed 
may be viewed as a handicap or as a tool. The simulator attempts to 
provide the fastest possible simulation cycle, and depending upon the 
mode of operation, can operate on the order of milliseconds per 
instruction.
Note:
Often loops will be used in your code to generate timing delays. When 
using the simulator, you might wish to decrease these time delays or 
conditionally remove those sections of your code with “IFDEF” statements 
to increase simulation speed.
Turning off simulator trace will increase simulation speed by up to 50%. 
Therefore, use the tracing function only as needed. See
“Using Simulator Trace”.
In general, when this discussion says “real time” and you are in the 
simulator mode, the software simulation is executing simulated code as 
fast as your PC can simulate the instructions.

: Bearbeitet durch User
von Volker S. (vloki)


Lesenswert?

Wie schon versucht zu sagen, die Simualtion läuft auf unterschiedlichen 
Rechenern unterschiedlich schnell und hat rein gar nichts mit der realen 
Geschwindigkeit auf dem realen Controller zu tun.

Lies einfach die Zeiten ab!

: Bearbeitet durch User
von Rudi R. (microwitsch)


Lesenswert?

Volker S. schrieb:
> Wie schon versucht zu sagen, die Simualtion läuft auf unterschiedlichen
> Rechenern unterschiedlich schnell und hat rein gar nichts mit der realen
> Geschwindigkeit auf dem realen Controller zu tun.
>
> Lies einfach die Zeiten ab!

Die Zeit wäre nur über die PIN RA0-Abfrage möglich, da blinkt dann eine 
virtuelle LED auf, das ist alles was ich Zeitlich sehen kann, 
leider!?Gibts da keine bessere Möglichkeit einen Umrechnungsfaktor zu 
finden, der vielleicht auch genauer wäre als eine blinkende Virtual-LED 
zu messen?

von W.S. (Gast)


Lesenswert?

Rudi R. schrieb:
> Ich habe in der Simulator-einstellung auf 1MHz
> Instruktionfrequenz gestellt, bzw war es voreingestellt und entspricht
> auch der realen Rate des PIC.

Was bittesehr verstehst du den darunter? Wenn ich mich recht erinnere, 
dann benötigt zumindest die PIC16 Familie 4 Clocks pro Befehl. Also ein 
mit 20 MHz betriebener PIC16Fxxx verarbeitet 5 Millionen Befehle pro 
Sekunde. Vielleicht liegt da ein Mißverständnis vor.

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.