Go Down

Topic: Suma de una variable (Read 1 time) previous topic - next topic

barkalez

Tengo un código en el que la variable "year" tiene como valor 12, lo se seguro porque hago print year y sale 12


Pues cojo y dentro de la siguiente función incluyo esto:

year = year + 2000;

Y cuando hago print year me sale 220 en vez de 2012   :(

como lo puedo hacer?



Code: [Select]
void getDateDs1307()
                    {
                                  // Coloca el cursor en el registro 0
                                  Wire.beginTransmission(DS1307_I2C_ADDRESS);
                                  I2C_WRITE(zero);
                                  Wire.endTransmission();
                                  Wire.requestFrom(DS1307_I2C_ADDRESS, 7);
                                  // A few of these need masks because certain bits are control bits
                              second     = bcdToDec(I2C_READ() & 0x7f);
                              minute     = bcdToDec(I2C_READ());
                              hour       = bcdToDec(I2C_READ() & 0x3f);  // Need to change this if 12 hour am/pm
                              dayOfWeek  = bcdToDec(I2C_READ());
                              dayOfMonth = bcdToDec(I2C_READ());
                              month      = bcdToDec(I2C_READ());
                              year       = bcdToDec(I2C_READ());
         
                 ================>      year = year + 2000;
           
                  }

jorgepl

Supongo que es el mismo código que pusiste en el otro post.

El tipo del year es byte (0 a 255), se te ha desbordado. Cambia el tipo a int.

Jorge

fm

Mejor cambia el tipo a uint16_t, ya que no creo que quieras tener años negativos. No se...
   

jorgepl

En la aplicación que quería desarrollar barkelez hay que restar fechas, con lo que puede que sí que quiera datos negativos.

Go Up