opb timer mit Microblaze (Laufzeitmessung)

OP #1717529
Lesenswert?
• ▲
▼
Hallo Zusammen,

ich bin Neuling in der FPGA Landschaft. Ich habe ein VirtexIIPro auf 
einem XUPV2P von DIgilent.
Ich habe einen Microblaze und einen Opb Timer eingefügt.
Kann mir jemand sagen wie man mit diesen Timer ansteuern kann.
Ich habe einen C-Code, der Daten von der CF-Karte liest, verarbeitet und 
dann wieder zurück schreibt. Mit dem Timer würde ich gerne die Zeit 
messen, die dafür benötigt wird.
Welche Funktionen in C kann ich verwenden um den Timer zu starten, den 
Timerwert aus zu lesen und den Timer zu Resetten?


Vielen Dank im Voraus.

Viele Grüße
Jonanova
OP #1718069
Lesenswert?
• ▲
▼
Hallo Zusammen,

ich habe beim Googeln nocht etwas gefunden und poste es für die, die es 
brauchen können. Dazu einfach den OPB Timer in der EDK einfügen und 
Softwarecode einbinden. Der Wert für total gibt die Anzahl der 
Taktzyklen an. Wenn ihr den Wert in Sekunden haben wollt, dann müsst ihr 
ihn durch euren Systemtakt teilen.

#include "xtmrctr.h"

XTmrCtr  timer1;
Xint32 total, t1, t2;

XTmrCtr_Initialize(&timer1,XPAR_OPB_TIMER_1_DEVICE_ID);

XTmrCtr_SetResetValue(&timer1,0,0);

    XTmrCtr_Start(&timer1,0);
    t1 = XTmrCtr_GetValue(&timer1,0);

// code to measure

    t2 = XTmrCtr_GetValue(&timer1,0);
    total = t2 - t1;
    xil_printf("clock cycles = %d - %d = %d\r\n", t1, t2, total);


Viele Grüße
Jonanonva

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren