[C++] Timestamp probleem

Pagina: 1
Acties:

  • boobobob
  • Registratie: Oktober 2004
  • Laatst online: 31-08-2021

boobobob

Dancing Goaly

Topicstarter
Ik ben een timer aan het maken door middel van Timestamps.
Het is de bedoeling dat er een pulsesignaal binnenkomt via de usb-poort.

Op het moment dat de puls hoog is moet de timer starten, zodra de pulse weer laag is en daarna weer hoog wordt moet de lengte van de puls weergegeven worden (dus timer stop), maar ik wil ook meteen weer de tijd van de volgende pulse meten. Dus op het moment dat het sigaal hoog wordt moet de timer gestopt en gestart worden. Dit lukt dus niet met een timer dus heb ik timestamps gebruikt.
Het binnenkomend signaal heb ik vervangen door een druk op een button, dus elke keer dat de button bediend wordt is het signaal hoog.

Opzich heb ik werkende code maar na een aantal keer klikken op de button krijg ik volgende foutmelding:

Project Project2.exe raised exception class EInvalidOp with message 'Invallid floating point operation'. Process stopped. Use Step or Run to Continue.

De volgende code heb ik geproged:

code:
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 tijdstempelmsec1 = (long int)TimeStampToMSecs(DateTimeToTimeStamp(Now()));
 temp = tijdstempelmsec1 - tijdstempelmsec2;
 teller++;
 if (teller==2)
 {
  teller=0;
  Edit1->Text = IntToStr(temp);
   tijdstempelmsec2 = (long int)TimeStampToMSecs(DateTimeToTimeStamp(Now()));
 }
}


De variabelen heb ik als volgende gedefinieerd:
code:
1
2
int teller;
long int tijdstempelmsec1, tijdstempelmsec2, temp;

verder heb ik dus een form met 1 button en 1 editveld

De timer gebruik ik om de pulse weer te geven. Eerst hoog, dan laag dan weer hoog.

Iemand een oplossing voor mijn probleem?

Alsvast bedankt.

M.v.g. Boobobob