Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Trouver l'écart entre deux dates !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#31 Message par Jérémy » jeu. 15 sept. 2016 21:13

unsigned Long diff = 0L ;


Le compilateur ne veut pas de cette ligne !

Je viens de trouver c'est Le "L" majuscule de long qu'il ne veut pas

EDIT : Test effectué . LA variable "diff" ne s'affiche pas !
Pourquoi je tombe toujours sur des problèmes de fou !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Trouver l'écart entre deux dates !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#32 Message par Jérémy » ven. 16 sept. 2016 07:26

Bonjour,

JE séche grave la.

Un probléme avec la librairie de conversion ?
Un probléme de cast ?

J'ai essayé un décalant les calculs dans ce genre :

Code : Tout sélectionner

      diff 1234567890  ;
      
LongToStr(diffVal_diff);
      
epoch1 1112223334 ;
      
LongToStr(epoch1Val_epoch1); 


En changeant la fonction LongWordToStr par LongToStr.
Rien n'y fait .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Trouver l'écart entre deux dates !
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#33 Message par Guest » ven. 16 sept. 2016 07:48

Bonjour

Je vois que tu es sur la même logique, dommage car il a plus simple.

Donc sur la même logique. Ici, avec la bibli0 STANDARD du C, OUI standard.

voici

Code : Tout sélectionner

struct  tm t3;
t3.tm_sec=0;
t3.tm_min=15;
t3.tm_hour=23;
t3.tm_mon=9;
t3.tm_mday=15;
t3.tm_year=2016-1900;

struct  tm t4;

t4.tm_sec=0;
t4.tm_min=15;
t4.tm_hour=13;
t4.tm_mon=9;
t4.tm_mday=15;
t4.tm_year=2016-1900;

        Resu=mktime(&t3);
        Resu1=mktime(&t4);
       
        re=difftime(Resu,Resu1);
        re=(Resu-Resu1);

La belle fonction difftine, n'est ni plus, ni moins, qu'une SIMPLE soustraction, le 2eme re donne le même résultat :wink:
La fonction mktime; convertie la structure tm, en décimale (seconde depuis 1900) et c'est la, peut-être, ton problème.Car cela à beau-être, du standard, pas toujours aussi simple.Par exemple sous linux, c'est depuis 1970 le calcul des secondes .A voir avec ta biblio.

Donc pour ton projet ,il va falloir à partir des chaînes, faire une conversion au format de la structure.
Lors d'une interrogation, faire une conversion seconde format chaine .Avec la fonction ctime(&re) ou avec asctime(&struture); dans mon exemple

De plus ton chrono va devoir deincrementer dans mon exemple la variable re toute les secondes.

Et la ,ce n'est pas, AMHA.il y a bien plus simple à faire.

A+

PS ici resultat
Capture .png


soit 10H
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Trouver l'écart entre deux dates !
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#34 Message par paulfjujo » ven. 16 sept. 2016 11:35

bonjour,


..
j'ai testé tes lignes dans mon programme existant GSM2 ..en cours de modifs..
impossible d'affecter une valeur à diff ??? comme dans ton exemple .

ce probleme de diff me rappelle un autre probleme vécu dans une autre appli ,
avec la variable *P
il a fallu que je la renome *P1 pour eviter des problemes incongrus
Je me demande si le compilateur ne s'est pas accaparé des noms de variables .. sans qu'on en soit informé.
De plus ce probleme apparait avec un certain environnement ( activation de librairies, taille de programme ...)
bref .. On ne nous dit pas tout .[rengaine ]

par contre essayé tout seul dans un programme court et sans trop de librairies
Ca me semble OK , au vu de ces resultats.. meme sans se referencer directement à 1900
du moment qu'on est dans le meme siecle de dates.

Resultat affiché:]

nota : byte ToStr donne un resultat sur 3 cars , une petite cuisine pour ramener à 2 cars avec remplcement blanc par zero
pour le cadrage..

Code : Tout sélectionner


ø Hardware
:
 Clicker2 18F87J50 Survivor
 Directory 
: C:_MikroC_MesProjets_MikroC_18F87J50_GPS
 Source MikroC Clicker2_18F87J50_GPS_COMPAS_UBLOX_7N_LCD_160912
.c
 FOSC
=8Mhz interne x PLL => 48Mhz  Alim : 3,3V
 Liaison PIC 
<-> PC:
 UART1 38400,8,N,1 Clicker2 Mikrobus#2 RC6,RC7 <- PL2303 - >terminal VBRAY

 TIME FUNCTIONS 1er TEST:
Date &t1 debut 2016/09/12 17H10M00S =1473700200
Date 
&t2  Fin  2016/09/12 18H10M00S= 1473703805
Difference 
=      3605
Date 
&t1 debut 2016/09/12 17H10M00S
 Date 
&T2 Fin =12/09/16 19:11:05
Difference 
=      7265

 TIME FUNCTIONS 2em TEST
:
RDV
1473699600
1473703200
      3600
diff
= 1234567890
 epoch To Date de
: (&t1) 2016/09/12 17H00M00SS  + 3608 => &ts3 =  2016/09/12/18/00/08



voici le programme complet

Code : Tout sélectionner


 
#define Version "160912"
 #define Directory " C:\_MikroC\_MesProjets_MikroC\_18F87J50_GPS"
  #define Projet "Clicker2_18F87J50_GPS_COMPAS_UBLOX_7N_LCD2119_1609.mcppi"
  #define Source "Clicker2_18F87J50_GPS_COMPAS_UBLOX_7N_LCD"
  
  
#define Lo(param) ((char *)&param)[0]
  #define Hi(param) ((char *)&param)[1]

   #define With_UART1
   #define OSCILLATEUR_INTERNE     // 48MHz

/*
Originally it was defined as the beginning of 1970 GMT.
(January 1, 1970 Julian day) GMT, Greenwich Mean Time, is a traditional term for the time zone in England.
long Time_dateToEpoch(TimeStruct *ts);
#include  "../common/timelib.h"
...
TimeStruct      ts1;
long    epoch;
long Time_dateDiff(TimeStruct *t1, TimeStruct *t2);
Result is positive if t1 is before t2, result is null if t1 is the same as t2 and result is negative if t1 is after t2.
Parameters : 
t1: time and date structure (the first comparison parameter) 
t2: time and date structure (the second comparison parameter) 
*/


  //-- commandes terminal VT220
#define CLS 12     // effacement de page sur Terminal VBRAY
#define CR 13
#define VT 10
#define LF 10
#define TAB 9
#define Bell 7
#define Byte unsigned char


#include "../common/timelib.h"

TimeStruct ts1, ts2, ts3 ;
long epoch ;
long epoch1 ;
long epoch2 ;
long diff=0L ;

char Val_diff[15];
char Val_epoch1[15];
char Val_epoch2[15];


// specific to Clicker2 PIC18F87J50
sbit LD1 at LATD4_bit;
sbit LD2 at LATE4_bit;
sbit LD1_Direction at TRISD4_bit;
sbit LD2_Direction at TRISE4_bit;
sbit RE6_FAULT at RE6_bit;
sbit RE5_SENSEL at LATE5_bit;   // cde FET M1
sbit RJ5_Stat at RJ5_bit;
sbit RF6_VSENSE at RF6_bit;    // mesure
sbit Led_Rouge at LATD4_bit;
sbit Led_Rouge_Directiont at TRISD4_bit;
sbit BP1 at RD7_bit;
sbit BP1_Direction at TRISD7_bit;
//sbit BP2 at RH3_bit;
sbit BP2 at PORTH.B3;
sbit BP2_Direction at TRISH3_bit;


sbit PPS at RB0_bit; // signal GPS 1Hz
sbit PPS_Direction at TRISB0_bit;
sbit Inter_Store_To_Eeprom at PORTB.B1;
sbit Inter_Store_To_Eeprom_Direction at TRISB1_bit;

#define MAXLEN1 128
unsigned char buffer1[MAXLEN1];
unsigned int Index1,i1;
unsigned int UART1_DataReady;
unsigned char c1;

char TEXTE[128];
char CRam1[40];
char *txt;
unsigned int i,j,k;
unsigned char dummy;
double f1,f2;
int Cnt3;


void strConstRamCpy(char *dest, const char *source);
void UART1_Write_CText(const char *txt1);
void CRLF1(void);

void Interrupts() iv 0x0008 ics ICS_AUTO
{
//UART1
  if((RC1IF_bit==1) && (RC1IE_bit==1))
  {
          if(OERR1_bit)
          {
                CREN1_bit = 0;
                CREN1_bit = 1;
                OERR1_bit = 0;
          }
          if(FERR1_bit)   c1 = RCREG1;
     c1 = RCREG1;

     if ((c1==CR)|| (i1>=MAXLEN1))
      {
      UART1_DataReady=1;
      if (i1 >=MAXLEN1) UART1_DataReady=2;
      PIE2.RC1IE=; //interdit IT Reception UART
      buffer1[i1]=0;
      Index1=i1;
      i1=0;
      c1=0;
     }
     else
     
{
       buffer1[i1]=c1;
        Index1=i1;
        i1++;
      }
   }
}


void RAZ_UART1()
{
   //     buffer1[i1]=0;  bug ici
     // au lieu de buffer1[0]=0;    // le LF apres le CR se logeait ici
      for(i1=0;i1<MAXLEN1;i1++) buffer1[i1]=0;
      Index1=0;
      i1=0;
      if(RC1IF_bit==1) c1=RCREG1;
      c1=0;
      UART1_DataReady=0;
      PIE2.RC1IE=;
}

 void UART1_Write_CText(const char *txt1)
 {
   while (*txt1)
      UART1_Write(*txt1++);
}


// --- Copie le texte depuis ROM vers RAM
void strConstRamCpy(char *dest, const char *source) {
  while(*source) *dest++ = *source++ ;
  *dest = 0 ;    // terminateur
}

void CRLF1()
{
 UART1_Write(CR);
  UART1_Write(LF);
 }



 void Hardware_Init(void)
 {

  //ANCON0: A/D PORT CONFIGURATION REGISTER 2
  // bit 7 PCFG7: Analog Port Configuration bits (AN7)
  //1 = Pin configured as a digital port
  //0 = Pin configured as an analog channel - digital input disabled and reads â€˜0’
  //bit 6-5 Unimplemented: Read as â€˜0’
  //bit 4-0 PCFG4:PCFG0: Analog Port Configuration bits (AN4-AN0)
  //1 = Pin configured as a digital port
  //0 = Pin configured as an analog channel - digital input disabled and reads â€˜0’
  TRISA=0xFF;
  ANCON0=0b00000010 ; // AN1= analog  AD converter enabled
  ANCON1=0xFF; // No analog on AN15--AN10
  TRISB=0xFF;

  TRISD=0xFF;
  TRISC=0xFF;
  TRISG=0xFF;
  TRISD6_bit=0;
  // par defaut, sur la carte  cliker2
  BP1_Direction = 1;         // Set direction for buttons
  BP2_Direction = 1;
  LD1_Direction = 0;        // Set direction for LEDs
  LD2_Direction = 0;
  LD1 = 0;                  // turn off LEDs
  LD2 = 0;
   // utilisés par l'application
  PPS_Direction=1;    // RB0
  Inter_Store_To_Eeprom_Direction =1;    // RB1
  //Choix_KML_Direction=1 ; // RB2;
  }


void main()
{

#ifdef OSCILLATEUR_INTERNE
 //  the internal oscillator is set to the default frequency of 1 MHz.
 // The Internal Oscillator Frequency Select bits  (IRCF<2:0>)
 // select the frequency output of the internal oscillator block
 // pour conserver 19200 bauds Ã  16Mhz sinon retombe Ã  1200 bauds
 // OSCCON=0x70; //  8MHz
 //OSCCON=0x60; // 4MHz
 // OSCCON=0x50 ;  // 2Mhz
 // OSCCON=0x40 ;  // 1Mhz
 // OSCCON=0x30 ;  // 500Khz
 // OSCCON=0x10 ;  // 125Khe
 //  OSCCON=0b01110000;
  OSCCON.IRCF2=1; //HFINTOSC â€“ (8 MHz)
  OSCCON.IRCF1=1;
  OSCCON.IRCF0=1;
   //11 = Postscaled internal clock (INTRC/INTOSC derived)
  // periferc idem as FOSC
  OSCCON.SCS1=1;
  OSCCON.SCS0=0;
  OSCTUNE=0;
  //OSCTUNE.PLLEN=0;  //   0 =sans PLL => FOSC interne 8Mhz  ou Q= 8MHz
  OSCTUNE.PLLEN=1;  // 1= avec PLL => FOSC=48 Mhz
  while(OSCCON.OSTS==0);
 #endif

  Hardware_Init();   // specifique à carte Clicker2 PIC18F87J50
 //Test_2_leds();

  Cnt3=100; // 1000x40=4sec

  
  txt
=&TEXTE[0];
  TEXTE[0]=0;
  for(i=0;i<40;i++)CRam1[i]=0;
  for(i=0;i<128;i++)TEXTE[i]=0;


  UART1_Init(38400);
  UART1_Write(CLS);
  Delay_ms(500);
  UART1_Write_CText(" Hardware: \r\n Clicker2 18F87J50 Survivor \r\n");
  UART1_Write_CText(" Directory :"Directory"\r\n");
  UART1_Write_CText(" Source MikroC "Source"_"Version".c\r\n");
  UART1_Write_CText(" FOSC=8Mhz interne x PLL => 48Mhz  Alim : 3,3V \r\n");
  UART1_Write_CText(" Liaison PIC <-> PC: \r\n");
  UART1_Write_CText(" UART1 38400,8,N,1 Clicker2 Mikrobus#2 RC6,RC7 <- PL2303 - >terminal VBRAY \r\n");

  CRLF1();
  UART1_Write_CText(" TIME FUNCTIONS 1er TEST: \r\n");
  
  ts1
.ss = 0 ;
  ts1.mn = 10 ;
  ts1.hh = 17 ;
  ts1.md = 12 ;
  ts1.mo = 9 ;
  ts1.yy = 2016 ;
  ts2.ss = 5 ;
  ts2.mn = 10 ;
  ts2.hh = 18 ;
  ts2.md = 12 ;
  ts2.mo = 9 ;
  ts2.yy = 2016 ;

  /*
   * What is the epoch of the date in ts ?
   GSM AA/MM/JJ HH:MM:SS
   2/10/16 23:00:00
   */
  
  
  
// ts1 Avant  et ts2 Plus tard
  UART1_Write_CText("Date &t1 debut 2016/09/12 17H10M00S =");
  epoch1 = Time_dateToEpoch(&ts1) ;
  LongWordToStr(epoch1,CRam1);
  UART1_Write_Text(CRam1);
  CRLF1()  ;
  UART1_Write_CText("Date &t2  Fin  2016/09/12 18H10M00S= ");
   epoch2 = Time_dateToEpoch(&ts2) ;
  LongWordToStr(epoch2,CRam1);
  UART1_Write_Text(CRam1);
  CRLF1()  ;

  UART1_Write_CText("Difference =");
  diff = Time_dateDiff(&ts1, &ts2) ;
  LongWordToStr(diff,CRam1);
  UART1_Write_Text(CRam1);
  CRLF1();
  
  UART1_Write_CText
("Date &t1 debut 2016/09/12 17H10M00S\r\n ");
  
  UART1_Write_CText
("Date &T2 Fin =");
   strConstRamCpy(txt,"12/09/16 19:11:05");
   UART1_Write_Text(txt);
   CRLF1();

   ts2.ss = (*(txt+15)-48)*10+ *(txt+16)-48;;
   ts2.mn = (*(txt+12)-48)*10+ *(txt+13)-48;
   ts2.hh = (*(txt+9)-48)*10+ *(txt+10)-48;
   ts2.yy = (*(txt+6)-48)*10+ *(txt+7)-48 + 2000;
   ts2.mo = (*(txt+3)-48)*10+ *(txt+4)-48;
   ts2.md= (*(txt)-48)*10+ *(txt+1)-48;
   diff = Time_dateDiff(&ts1, &ts2) ;
  UART1_Write_CText("Difference =");
  LongWordToStr(diff,CRam1);
  UART1_Write_Text(CRam1);
  CRLF1();
  
    CRLF1
();
  UART1_Write_CText(" TIME FUNCTIONS 2em TEST: \r\n");

    ts1.ss = 0 ;
    ts1.mn = 0 ;
    ts1.hh = 17 ;
    ts1.md = 12 ;
    ts1.mo = 9 ;
    ts1.yy = 2016 ;

    ts2.ss = 0 ;
    ts2.mn = 0 ;
    ts2.hh = 18 ;
    ts2.md = 12 ;
    ts2.mo = 9 ;
    ts2.yy = 2016 ;

     epoch1 = Time_dateToEpoch(&ts1) ;
     epoch2 = Time_dateToEpoch(&ts2) ;
     diff = Time_dateDiff(&ts1, &ts2) ;
 
      LongWordToStr
(diff, Val_diff);
      LongWordToStr(epoch1, Val_epoch1);
      LongWordToStr(epoch2, Val_epoch2);



  UART1_Write_CText("RDV\r\n");
  UART1_Write_Text(Val_epoch1);
  CRLF1();
  UART1_Write_Text(Val_epoch2);
  CRLF1();
   UART1_Write_Text(Val_diff);
  CRLF1();
  diff = 1234567890L;
  LongWordToStr(diff, Val_diff);
  UART1_Write_CText("diff= ");  UART1_Write_Text(Val_diff);
  CRLF1();
  
    epoch 
=epoch1 + 3608 ;
  Time_epochToDate(epoch, &ts3) ;
  TEXTE[0]=0;
  CRam1[0]=0;
  WordToStr(ts3.yy,CRam1);  strcat(txt,CRam1);  strcat(txt,"/"); // AAAA/
  ByteToStr(ts3.mo,CRam1); 
  if 
(CRam1[1]==' ') CRam1[1]='0';
  strcat(txt,CRam1+1); strcat(txt,"/"); // MM/
  ByteToStr(ts3.md,CRam1);
  if (CRam1[1]==' ') CRam1[1]='0';
  strcat(txt,CRam1+1);
  strcat(txt,"/"); // JJ/
  ByteToStr(ts3.hh,CRam1);
   if (CRam1[1]==' ') CRam1[1]='0';
   strcat(txt,CRam1+1);  strcat(txt,"/"); // HH/
  ByteToStr(ts3.mn,CRam1);
  if (CRam1[1]==' ') CRam1[1]='0';
    strcat(txt,CRam1+1);  strcat(txt,"/"); // MM/
  ByteToStr(ts3.ss,CRam1);
  if (CRam1[1]==' ') CRam1[1]='0';
    strcat(txt,CRam1+1);   // SS
  UART1_Write_CText(" epoch To Date de: (&t1) 2016/09/12 17H00M00SS  + 3608 => &ts3 = ");
  UART1_Write_Text(&TEXTE[0]);
   CRLF1();
  while(1);
  }
 
Aide toi, le ciel ou FantasPic t'aidera

Trouver l'écart entre deux dates !
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#35 Message par Guest » ven. 16 sept. 2016 12:53

La belle fonction difftine, n'est ni plus, ni moins, qu'une SIMPLE soustraction, le 2eme re donne le même résultat :wink:

et pourquoi donc ne pas faire une simple soustraction de 2 long cela va este vite vu

long Time_dateToEpoch(TimeStruct *ts) ;


A+
PS: tu as bien les résultats de tes 2 conversions struct->long et bien sur correct????

Trouver l'écart entre deux dates !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#36 Message par Jérémy » ven. 16 sept. 2016 14:34

impossible d'affecter une valeur à diff ??? comme dans ton exemple .

Franchement tu me rassure vraiment .

Je testerais ce soir j'aurais plus de temps ! Merci d'avoir fait le test !

et pourquoi donc ne pas faire une simple soustraction de 2 long cela va este vite vu

J'ai essayé ca ne veut pas s'afficher ! le résultat est bon mais ca veut pas ! un truc de fou
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Trouver l'écart entre deux dates !
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#37 Message par paulfjujo » ven. 16 sept. 2016 14:57

bonjour Maî,



et pourquoi donc ne pas faire une simple soustraction de 2 long cela va este vite vu


+1 Oui, tout à fait, si on a déja recupéré le resultat intermediaire...la soustraction simple est jouable.
Ce qui est le cas ici , puisqu'on veut afficher les valeures de epoch1 et epoch2.

code mikroC dans les 2 cas
1er cas difference entre les 2 structures .. mais on fait appel à   _Time_dateToEpoch

diff = Time_dateDiff(&ts1, &ts2) ;

Code : Tout sélectionner

;Clicker2_18F87J50_Test_Time_Lib.c,281 ::                 diff = Time_dateDiff(&ts1, &ts2) ;
          MOVLW       _ts2
          MOVLB       1
          MOVWF       FARG_Time_dateToEpoch_ts
, 1
          MOVLW       hi_addr
(_ts2)
          MOVWF       FARG_Time_dateToEpoch_ts+1, 1
          RCALL       _Time_dateToEpoch
          MOVFF       R0
, FLOC__main
          MOVFF       R1
, FLOC__main+1
          MOVFF       R2
, FLOC__main+2
          MOVFF       R3
, FLOC__main+3
          MOVLW       _ts1
          MOVWF       FARG_Time_dateToEpoch_ts
, 1
          MOVLW       hi_addr
(_ts1)
          MOVWF       FARG_Time_dateToEpoch_ts+1, 1
          RCALL       _Time_dateToEpoch
          MOVFF       FLOC__main
, R4
          MOVFF       FLOC__main
+1, R5
          MOVFF       FLOC__main
+2, R6
          MOVFF       FLOC__main
+3, R7
          MOVF        R0
, 0 
          SUBWF       R4
, 1 
          MOVF        R1
, 0 
          SUBWFB      R5
, 1 
          MOVF        R2
, 0 
          SUBWFB      R6
, 1 
          MOVF        R3
, 0 
          SUBWFB      R7
, 1 
          MOVFF       R4
, _diff
          MOVFF       R5
, _diff+1
          MOVFF       R6
, _diff+2
          MOVFF       R7
, _diff+3


2em cas, si on a déja le resultat long des 2 structures
diff=epoch2-epoch1;

Code : Tout sélectionner


Clicker2_18F87J50_Test_Time_Lib
.c,327 ::         diff=epoch2-epoch1;
      MOVFF       _epoch2, R0
      MOVFF       _epoch2
+1, R1
      MOVFF       _epoch2
+2, R2
      MOVFF       _epoch2
+3, R3
      MOVF        _epoch1
, 0, 1
      SUBWF       R0
, 1 
      MOVF        _epoch1
+1, 0, 1
      SUBWFB      R1
, 1 
      MOVF        _epoch1
+2, 0, 1
      SUBWFB      R2
, 1 
      MOVF        _epoch1
+3, 0, 1
      SUBWFB      R3
, 1 
      MOVFF       R0
, _diff
      MOVFF       R1
, _diff+1
      MOVFF       R2
, _diff+2
      MOVFF       R3
, _diff+3
Aide toi, le ciel ou FantasPic t'aidera

Trouver l'écart entre deux dates !
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#38 Message par Guest » ven. 16 sept. 2016 17:24

jolie photo
Modifié en dernier par Anonymous le sam. 17 sept. 2016 16:40, modifié 4 fois.

Trouver l'écart entre deux dates !
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#39 Message par Guest » ven. 16 sept. 2016 18:13

Jérémy a écrit :
J'ai essayé ca ne veut pas s'afficher ! le résultat est bon mais ca veut pas ! un truc de fou


la je ne comprends trop ce que tu ne dis. Le résultat est bon, donc tout la procédure est bonne: les 2 conversions et la soustraction .Affichage quelle affichage????

Trouver l'écart entre deux dates !
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#40 Message par Jérémy » ven. 16 sept. 2016 19:02

Affichage quelle affichage????

L'affichage sur le texto de retour !

J’enregistre mes valeurs dans des strings puis je me les envoies par texto .

Je m'occupe des enfants, je reviens après manger.

ce n'est pas tant le calcul, u as raison une soustraction est c'est plié ! c'est l'affichage qui est problématique .

Par exemple en écrivant ca :

Code : Tout sélectionner

      diff 1234567890  ;
      
LongToStr(diffVal_diff);
      
epoch1 1112223334 ;
      
LongToStr(epoch1Val_epoch1); 


Sans aucun calcul. j'ai donc deux chaines à envoyer par UART. Et seul la deuxième s'affiche . La première disparait je ne sais ou .
Si je mets en commentaires la ligne 3 et 4, la première ligne apparait bien .
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités