asi la puedo definir como global ok fuera de el void loop y de el void setup, hasta ahi es facil ok y no hay problema.
tambien se que si la defino deentro de el void loop () solo sirve para dentro de el mismo.
PERO aca viene mi tema, si cuando al defino quiero darle un valor INICIAL como por ejemplo:
unsigned long time1 = 500 ;
y no quiero definirla como global ( cosa que hasta ahora me siento obligado) .
por que si la defino dentro de el void loop va todo bien mientras NO le ponga valor :
unsigned long time1 = 500 ; <<< asi tengo problemas
ya lo probe, y si la defino dentro de el void loop pues cada vez que pasa por el programa me la vuelve a poner en 500 y se supone que durante todo el transcurso de el uso de el programa debe ir incrementandose.
yo quiero que inicie solo la primera vez , cuando doy alimentacion en 500 pero quiero definirla solo dentro de el loop o dentro de una funcion que realice.
recien vi una explicacion , no escribi en ella por que me aparecio el cartel rojo de que tenia mas de 120 dias.
entendi que puedo definir la funcion como global y le doy el valor inicial en el void setup.
en verdad es lo mismo que definirla global y darle el valor inicial ahi mismo.
pero yo quiero hacer funciones, asi las tengo armadas y las puedo usar en cualquier programa y para no complicarme, pues que todo se defina dentro de al funcion misma, eso lei que era lo mejor.
definir la funcion dentro de la variable, eso esta bien , no le veo nada de raro el poner al principio
int cont1 ;
por ejemplo, no dar aprobemas
pero si le pongo int cont1 = 5 ;
y se supone que cada vez que llamo a la funcion segun el caso incrementara el cont1 .... que hago ?
por que cadaa vez que entre me lo pondra en 5 .
algo me esta fallando
bueno, muchas gracias que a es retarde.
que descansen.
En el ejemplo, la variable cont1 valdrá 5 la primera vez que se ejecute el loop(). Cada vez que se llame la función se imprimirá su valor e incrementará en uno para después terminar la función "recordando" el valor para la próxima vez.
El resultado será que muestra los números 5, 6, 7, 8, 9, 10, 11...
Con
static
se comporta como una variable global, pero únicamente "existe" dentro de la función en la que se ha declarado. Si defines en otra función una variable con el mismo nombre, se tratará de otra variable independiente que nada tiene que ver, con su propio valor cada una.