Pages: [1]   Go Down
Author Topic: Suma de una variable  (Read 1268 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 48
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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   smiley-sad

como lo puedo hacer?



Code:
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;
            
                   }
Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Málaga, Spain
Offline Offline
Edison Member
*
Karma: 40
Posts: 2182
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

   

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: