Código: |
int ProgTemporizador [][7] = { //Fecha, Mes, Año, Hora, Minutos, Salida, Estado {2014, 1, 2, 10, 12, 0, 1}, {2014, 1, 2, 10, 13, 0, 0}, {2014, 1, 2, 10, 13, 1, 1}, {2014, 1, 2, 10, 14, 1, 0} }; |
Después de preguntar en el foro de arduino, noter me dio la solución. Cuando hacia sizeof(ProgTemporizador); el resultado que obtenía era 56 y yo me pensaba que estaba haciendo algo mal. Pero no es así, ya que sizeof(); no el número de filas de un array, si no que nos devuelve tamaño en bytes del array. Para obtener el número de filas de un array en nuestro caso tenemos que dividir el resultado por 14:
Si hacemos un sizeof(ProgTemporizador); obtenemos 56 (4*7*2), que es el resultado de la mutiplicación del número de filas del array por El número de columnas del array por 2 ya que un INT ocupa 2 bytes.
Código: |
int ProgTemporizador [][7] = { //Fecha, Mes, Año, Hora, Minutos, Salida, Estado {2014, 1, 2, 10, 12, 0, 1}, {2014, 1, 2, 10, 13, 0, 0}, {2014, 1, 2, 10, 13, 1, 1}, {2014, 1, 2, 10, 14, 1, 0} }; void setup() { Serial.begin(9600); } void loop() { int x = sizeof(ProgTemporizador); x = (x / 7) / 2; //x = x / 14; Mas facil seria dividirlo por 14... Serial.print ("Numero X = "); Serial.println (x); for (int i=0; i < x; i++) { for (int n=0; n < 7; n++) { Serial.print(ProgTemporizador [i][n]); Serial.print(" "); } Serial.println(); } Serial.println ("-----------------------------------------------------"); delay(5000); } |
Fuente: http://forum.arduino.cc/index.php?topic=208323.0 |
excelente ayuda
ResponderEliminarmuchas gracias