Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: analyseer_pulstrein.h
- Revision:
- 0:d6c40db60579
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/analyseer_pulstrein.h Thu Feb 09 08:28:08 2017 +0000
@@ -0,0 +1,108 @@
+//---------------------------------------------------------------------------------------------------------------
+void analyseer_pulstrein() //
+{
+ int min_dt=0,min_dt_L=0,min_dt_H=0;
+ int max_dt=0,max_dt_L=0,max_dt_H=0;
+ int DT_Lowlevel=0,DT_Highlevel=0;
+ const int TH_pulsduur_Low=2000,TH_pulsduur_High=2000; // Voor pulsduur registratie
+
+ int j=0;
+ char sL[30]=":DT_Low:";
+ char sH[30]=":DT_High:",ms[30]=":microsec";
+ char IRCFile[]=""; // eventueel de naam van een File op disk
+ int termlog = 0; // terminal log default off
+ int Pulsduur=1; // Pulstrein met pulsduur analyse
+ if (termlog) { //terminal logging is on
+ printf("\n---Start analyse pulstrein: %s \n\r",IRCFile);
+ printf("--------------------------------\n\r");
+ }
+ if (eHL_cnt>eLH_cnt) {
+ max_cnt =eHL_cnt;
+ } else {
+ max_cnt =eLH_cnt;
+ }
+ if (debug) {
+ printf("---Aantal pulsen Hoog: %5d :Laag:%5d : max_cnt: %5d\r\n",eHL_cnt,eLH_cnt,max_cnt);
+ }
+ for (int i=0; i < max_cnt+1; i++) { // 1: forloop start na de startpuls
+ if (Pulsduur) { // 2: de individuele tijden lezen als pulsduur
+ if (debug) {
+ printf( "%d %s %d %s %d %s \r\n", j,sL ,dt_Low[i],sH,dt_High[i],ms );
+ }
+ if (i==0) { // 3: hoofdloop uitzonderingen
+ DT_Lowlevel=0; // DT_Lowlevel : Tel de Totale tijd hoog van de pulstrein
+ DT_Highlevel=0; // DT_Highlevel : Tel de Totale tijd laag van de pulstrein
+ } else { // 4: subloop 1=< i =<
+
+ if (i==1) { // Init pulsduuren na lezen eerste puls
+ min_dt_H = dt_High[1]; // Bepaal de min en maximale pulsduur van de bits na de startpuls :
+ min_dt_L = dt_Low[1]; // Bepaal de kleinste pulsduur: PulsduurHoog of PulsduurLaag
+ max_dt_H = dt_High[1]; // Bepaal de min en maximale pulsduur van de bits na de startpuls :
+ max_dt_L = dt_Low[1]; // Bepaal de kleinste pulsduur: PulsduurHoog of PulsduurLaag
+ min_dt =min_dt_H;
+ if ( min_dt > min_dt_L) {
+ min_dt = min_dt_L;
+ }
+ } // close if init pulsduuren
+ } // 3: einde uitzonderingen i > 1 normaal behandelen
+
+ if ((dt_Low[i] > 0)and (dt_Low[i] < TH_pulsduur_High)) {
+ DT_Highlevel=DT_Highlevel+dt_Low[i]; // DT_Highlevel : Tel de Totale tijd laag van de pulstrein
+ if ( min_dt_L > dt_Low[i]) {
+ min_dt_L = dt_Low[i];
+ }
+ if ( max_dt_L < dt_Low[i]) {
+ max_dt_L = dt_Low[i];
+ }
+ if ( min_dt > dt_Low[i]) {
+ min_dt = dt_Low[i]; // Bepaal de kleinste pulsduur: PulsduurHoog of PulsduurLaag
+ }
+ }
+
+ if ((dt_High[i] > 0)and (dt_High[i] < TH_pulsduur_Low)) {
+ DT_Lowlevel=DT_Lowlevel+dt_High[i]; // DT_Lowlevel : Tel de Totale tijd hoog van de pulstrein
+ if( min_dt_H > dt_High[i]) {
+ min_dt_H = dt_High[i];
+ }
+ if( max_dt_H < dt_High[i]) {
+ max_dt_H = dt_High[i];
+ }
+ if( min_dt > dt_High[i]) {
+ min_dt = dt_High[i];
+ }
+ }
+ } else { // 2: else pulsduur
+ if (debug) {
+ printf("%d: Flank L-H :%d: Flank H-L:%d:us = pulsduur_H:%d\r\n", i,dt_High[i] ,dt_Low[i], dt_Low[i]-dt_High[i] );
+ }
+ } //2: close pulsduur
+
+ max_dt=max_dt_H;
+ if (max_dt<max_dt_L) {
+ max_dt =max_dt_L;
+ }
+ } // 1: close for loop
+
+ if ((termlog )and (max_cnt>1)) { //terminal logging is on, print analyseresultaat
+ printf("---Aantal pulsen Low : %5d\r\n",eHL_cnt);
+ printf("---Aantal pulsen High : %5d\r\n",eLH_cnt);
+ printf("---Aantal max_cnt : %5d\r\n",max_cnt);
+ printf("---Startpuls duurtijd Low : %5d\r\n",dt_Low[0]);
+ printf("---Startpuls duurtijd High : %5d\r\n",dt_High[0]);
+ printf("------------------------------------\r\n" );
+ printf("---Minumum pulsduur Low : %5d\r\n",min_dt_L);
+ printf("---Minimum pulsduur High : %5d\r\n",min_dt_H);
+ printf("---minimum pulsduur : %5d\r\n",min_dt);
+ printf("------------------------------------\r\n" );
+ printf("---Maximum pulsduur Low : %5d\r\n",max_dt_L);
+ printf("---Maximum pulsduur High : %5d\r\n",max_dt_H);
+ printf("---Maximum pulsduur : %5d\r\n",max_dt);
+ printf("------------------------------------\r\n" );
+ printf("---minimum Bittijd binair 0 : %5d\r\n",min_dt_L + min_dt_H);
+ printf("---maximum Bittijd binair 1 : %5d\r\n",max_dt_H+max_dt_L);
+ printf("------------------------------------\r\n" );
+ printf("---Totale pulstreinduurtijd High :%7d\r\n",DT_Highlevel);
+ printf("---Totale pulstreinduurtijd Low :%7d\r\n",DT_Lowlevel);
+ printf("---Totale pulstreinduurtijd :%7d\r\n",DT_Highlevel+DT_Lowlevel);
+ }
+} //0:
\ No newline at end of file