Aclaraciones:

Uso de “incremento ++”

count ++ significa “use el valor de count primero, LUEGO increméntelo en uno”.

++ count significa “incrementar el valor de count en uno, LUEGO usar el valor resultante”.

Veamos tambien esto:

void setup() {
  Serial.begin(9600);

  int x = 2;
  int y = ++x; // x ahora contiene 3, y contiene 3

  Serial.print("x = ");
  Serial.println(x);
  Serial.print("y = ");
  Serial.println(y);
}
//el resultado será x=3.. y=3

//Y ahora...
void setup() {
  Serial.begin(9600);

  int x = 2;
  int y = x++;  // x contiene 3 de nuevo, y todavía contiene 2

  Serial.print("x = ");
  Serial.println(x);
  Serial.print("y = ");
  Serial.println(y);
}

void loop() {
}

//el resultado sera
x=3 ,, y=2

uint8_t

uint8_t es lo mismo que un byte.

Si declaramos una variable con uint8_t, signfica que lo valores que alcanzara estaran entre 0 y 255 (2_elev-8),despues del valormaximo (255) volvera a 0

Uso del operador booleano !

if (!x) { // if x is not true
  // statements
}

It can be used to invert the boolean value.

x = !y; // the inverted value of y is stored in x

Operador Bitwise NOT ~.

para cualquier número entero x, ~ x es lo mismo que -x – 1.

int a = 103;  // binary:  0000000001100111
int b = ~a;   // binary:  1111111110011000 = -104

A veces, el bit de signo en una expresión de entero con signo puede causar algunas sorpresas no deseadas.

https://playground.arduino.cc/Code/BitMath/

OPERADORES COMPUESTOS


x % 5= 2;    // resto de dividir x entre 5 ,contendra valor 2


x % 2=0 //resto de dividir un numero x entre 2 igual a 0 (numeros pares)  

Pointers:

Un puntero es sencillamente otro tipo de datos que contiene una dirección de memoria .Se pueden definir punteros, por si mismos, para usarlos de diferentes maneras.

Para declarar un puntero usamos el operador ‘*’, basta con declararlo precedido de un *:

int *p_data ;

Que significa, créame un puntero a un int llamado p_data.

Nos surge entonces una pregunta ¿Cómo asigno la dirección de una variable, por ejemplo, a un puntero que he creado? Pues de nuevo, muy fácil:

int num = 5;
int *ptrNum;
ptrNum = #

Como &num nos da la dirección física donde se almacena num, basta con asignarla a ptrNum por las buenas. El operador “&” precediendo a una variable devuelve su dirección de memoria.

Ahora ptrNum apunta a la dirección donde está almacenada la variable num. ¿Podría usar esta información para modificar  el valor almacenado allí? Desde luego:

int num = 5;
int *ptrNum;
ptrNum = #
*ptrNum = 7 ;
Serial.println( num);

Vereis que la respuesta en la consola al imprimir num es 7. Hemos usado un puntero para modificar el contenido en la celda a la que apunta usando el operador *.

Podemos asignar un valor a la posición a la que apunta un puntero, basta con referirse a él con el * por delante. Y si queremos leer el contenido de la posición de memoria a la que apunta un puntero usamos el mismo truco:

int num = 5;
int *ptrNum;
ptrNum = #
Serial.println( *ptrNum);

El resultado será 5.

Como usar EVERY_N_SECONDS( ){ }

Para poder usar este comando al igual que EVERY_N_MILLISECONDS, solo debemos incluir en nuestro sketch la libreria

#include <FastLED.h>

ejemplo sacado de un proyecto….

EVERY_N_SECONDS( 150){tref2=millis();tempo2=0;txgrbl.println("$J=G21G91X60F30");} }

aunque solo sea ese comando el que utilicemos .

Dudas usando arrays :

https://personales.unican.es/corcuerp/java/Slides/Arrays.pdf

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Translate »