Integrator, zeitdiskret

Gast #1256889
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte gerne ein Eingangssignal auf einem uC oder auch normalen 
Linux integrieren.

Geht dies wenn ich keine "Zeitinformation" habe, die mir die Zeit nach 
letztem Aufruf gibt?

Oder gibt es hier möglichkeiten dies herauszubekommen?

Beispiel wäre Eingangssignal = dezimal 5 ergibt nach einer Sekunde dann 
5, nach zwei 10 usw... Summieren kann ich, aber wie bekomme ich den Wert 
pro Zeiteinheit?


Vielen Dank, Peter
Gast #1256898
Lesenswert?
• ▲
▼
Hallo,

danke für die rasche Antwort,

aber time() unter Linux gibt ja die zeit in Sekunden an, soweit ich 
weiss= damit dürfte ich keine chance haben, die Zeit zwischen zwei 
Aufrufen des Integrators zu ermitteln, oder?

Gruss, Peter
#1256900
Lesenswert?
• ▲
▼
Es gibt noch sowas wie microtime().
Da musst du nachsehen. Da sollte aber ein Highprecitiontimer laufen oder 
richtiges Realzeitbetriebsystem bzw. eine entsprechende Erweiterung. 
Weil sonst kannst du dir nicht sicher sein, dass auch zu jeder Sekunde 
der IRQ kommt sondern z.B. jede 1.1Sekunden und dann wieder 0.9. Das nur 
als Beispiel.
Gast #1256917
Lesenswert?
• ▲
▼
Super, Danke!

bin dann auch auf dieses gestossen:

struct timespec time1, time2;
clock_gettime( CLOCK_REALTIME, &time1 );
//Com_Init();
usleep(1000);
clock_gettime( CLOCK_REALTIME, &time2 );
printf( " A: time1: %d time2: %d, diff_sec: %d\n", time1.tv_sec, 
time2.tv_sec, time2.tv_sec-time1.tv_sec  );
printf( " A: time1: %d time2: %d, diff_nsec: %d\n", time1.tv_nsec, 
time2.tv_nsec, time2.tv_nsec-time1.tv_nsec  );
Gast #1257296
Lesenswert?
• ▲
▼
Naja. Indem man irregulaer distant gesampelte Werte integriert macht 
man's besser als gar nicht. Falls man zur Ermittlung des Intervalls 
allerdings
 Zeiten subtrahiert, verplempert man viel Rechenzeit. Ein Murks. Jeder 
ATTiny macht das besser.

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