Files
        @ 9294a623e8e5
    
        
              Branch filter: 
        
    Location: therm/system/stringhelpers.c - annotation
        
            
            9294a623e8e5
            1.4 KiB
            text/plain
        
        
    
    Added support for both heaters and coolers as well as thermostatic control
    0dfb00c8792b 0dfb00c8792b f34fa8317622 f34fa8317622 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b 0dfb00c8792b  | #include <inttypes.h>
char const digit[] = "0123456789";
char* zitoa(int16_t i, char b[]){
    char* p = b;
    if(i<0){
        *p++ = '-';
        i *= -1;
    }
    uint16_t shifter = i;
    do{ //Move to where representation ends
        ++p;
        shifter = shifter/10;
    }while(shifter);
    *p = '\0';
    do{ //Move back, inserting digits as you go
        *--p = digit[i%10];
        i = i/10;
    }while(i);
    return b;
}
char* itoa_fp(int16_t i, uint8_t frac, char b[]){
    // set p to beginning of char array
    char* p = b;
    // If negative, set current char to '-' and inc, unnegate number
    if(i<0){
        *p++ = '-';
        i *= -1;
    }
    // Init shifter to numeric value
    uint16_t shifter = i;
    uint16_t frac_shifter = frac;
    // Iterate through 10s places, incrementing text pointer as we go
    do{ 
        ++p;
        shifter = shifter/10;
    }while(shifter);
    
    ++p; // increment for decimal point
    do{
        ++p;
        frac_shifter = frac_shifter/10;
    }while(frac_shifter);
        
    // Null-terminate the string
    *p = '\0';
    // Go backwards and write out fractional digits 
    do{ 
        *--p = digit[frac%10];
        frac = frac/10;
    }while(frac);
    *--p = '.'; // insert decimal point
    // Go backwards and write out remaining digits 
    do{ 
        *--p = digit[i%10];
        i = i/10;
    }while(i);
    return b;
}
 |