7 years, 5 months ago.

why the value shows 100 when num value reaches 0, when I read from local?

I have to subract 1 from result variable..........

include the mbed library with this snippet

#include "mbed.h"
#include "SerialLCD.h"
#include "TextLCD.h"


LocalFileSystem local("local");
TextLCD lcd(p15, p16, p17, p18, p19, p20);
DigitalIn switchengine(p30);
DigitalOut myled(LED1);
Timeout pumpoff;
Timeout pumpoon;
int mintime;
float totalh;
int result;
int newvalue;
void reader();
int num= 20;
float h;
int m;
void bypass();


void save()
{
     if(h>0){
    FILE *fp = fopen("/local/timeleft.txt", "w");  // Open "out.txt" on the local file system for writing
    fprintf(fp, "%1.2f", h);
    fclose(fp);
    }
    if(m>0){
        FILE *fp = fopen("/local/timeleft.txt", "w");  // Open "out.txt" on the local file system for writing
    fprintf(fp, "%d", m/1);
    fclose(fp);
        }
        bypass();
}

void bypass()
{
    FILE *fp3 = fopen("/local/timeleft.txt", "r");  // Open "out.txt" on the local file system for writing

    if (fp3 != NULL) {
        char buffer[10] = {0};
        char c = {0};
        char *token;
        int i = 0;


        /* Read Chars Until End of Line */
        while ((c != '\n') && (i < 10)) {
            c = fgetc(fp3);
            buffer[i] = c;
            i++;
        }

        /* Get Token: Probably not needed, but Useful for More Numbers */
        token = strtok(buffer, "\n");

        /* String to Int Function */
        float result = atof(token);
        float number = result;
            if(result==1){
                number = result-1;
                }
            
        fclose(fp3);
        lcd.locate(1,1);
        lcd.printf("res= %1.2f\r\n", number);

    }
}




int main()
{

    myled = 0;
    //Timer duration;
int newnum;
    while(switchengine == 1) {
        num--;
        if(num <= 0)
        num = 1;
          wait(0.5);
        lcd.cls();
        lcd.locate(2,0);
        lcd.printf("%d", num);
         if(num < 10){
         m = num;
         newnum = num;
         }else{
             h = num/0.1;
             newnum = num;
             } 
    }
    
    save();
    



}

Be the first to answer this question.