Está en la página 1de 6

Ingenieros para esta semana deben REPASAR de Lenguaje C los siguientes conceptos:

1. Uso de ESTRUCTURAS: Como declararlas, definirlas y usarlas.


2. Diferencia entre paso de parámetros a una función por valor y por referencia: Cómo
hacerlo y cual es la diferencia en su uso.
3. Diferencia entre variables automáticas (auto) y variables estáticas (static): Para qué
se usan, cómo se declaran y para qué sirven.

Para APLICAR (1) y (2) deben estar en capacidad de:

 Declarar un estructura que posee registro para nombre, edad y peso.


 Definir dos variables para almacenar el tipo previo.
 Iniciarlas con diferentes valores.
 Crear un función que intercambie los valores de ambas variables y pasarlas a la
función para realice dicho intercambio de vbles (Similar al exchange de comienzo
de semestre, que tanto estudiaron).

Para APLICAR (3), trate de encontrar casos para aplicar variables de tipo "static".

B)

Estudie el código para el parpadeo de un diodo emisor de luz o LED (del


inglés Light Emitting Diode) y por favor DISEÑE  una nueva función PROPIA y
original, que haga exactamente LO MISMO que hace la función delay(1000); 

Pero nómbrela de la siguiente manera:

My_Delay_in_millis( 1000 );

El prototipo de la función será:

void My_Delay_in_millis( unsigned long delay_in_millis );

Esta función que Usted va a crear DEBE USAR la función  millis(); y al usarla en
el código debe hacer EXACTAMENTE LO MISMO que la función original.

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
// constants won't change. Used here to set a pin number :
const int ledPin =  13;      // the number of the LED pin

// Variables will change :


int ledState = LOW;             // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0
// constants won't change :
const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the
  // difference between the current time and last time you blinked
  // the LED is bigger than the interval at which you want to
  // blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {


    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:


    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
  }

    // set the LED with the ledState of the variable:


    digitalWrite(ledPin, ledState);
 }
}

C)

Ingenieros, esta otra tarea TAMBIÉN podría hacer parte de su examen parcial:
Diseñe mediante una máquina de estados finitos o FSM (del inglés Finite State Machine)
un software que haga el conteo de pulsos positivos.

Es decir para la secuencia:

0001111000110000010000111111110000

El conteo DEBE SER CUATRO pulsos positivos!!!

Pd. En la medida en que tengan CLARO la solución de estos ejercicios, el tema de esta
semana (que entra en el parcial) será MUCHO más fácil de asimilar. HAGA el esfuerzo y
procure hacerlo de manera individual. No lo voy a calificar, pero por favor deben
acostumbrase a hacer tareas al margen de que exista una calificación o no… pues la
asimilación de conceptos cuando han trabajado algunos problemas con anticipación se
facilita MUCHO.

Inquietud

La inquietud es pertinente...

 Cuál función CREAR? delay();


 Cómo llamarla? My_Delay_in_millis();
 Cómo lo puedo crear? Cuando la esté codificando debe usar POR DENTRO
de My_Delay_in_millis(); la función millis();   EN OTRAS palabras My_Delay_in_millis
LLAMA a la función millis().

E) Ingenieros para complementar el ESTUDIO que debieron haber hecho con anticipación previo a
la clase de hoy, adjunto estos documentos donde encuentran una SÍNTESIS sobre el uso de
ESTRUCTURAS DE DATOS… tanto para declararlas como para usarlas. Documento atructc y dcl
simples

F) Ingenieros, adjunto guía para "IMPLEMENTACIÓN de Máquinas CONCURRENTES",


que será tratado en la clase de hoy.

Este tema entra para el examen parcial de este Sábado que vale el 30% de la asignatura y
tendrá una duración de 3 horas (de 9am a 12m, en el salón 509 del Edif. Fdo Barón). Por lo
anterior requiero de toda su buena disposición, apertura y diligencia para el tema de
esta semana.

Del domino de este tema depende el buen desempeño en el curso y de que puedan hacer
un EXCELENTE DISEÑO para el proyecto restante (10% del rol faltante), y del
Examen Final (10%).
Será difícil aprobar este curso, si este tema NO queda completamente DOMINADO!

Fsm concurrentes documento

H)

Ingenieros, adjunto guía para "IMPLEMENTACIÓN de Máquinas CONCURRENTES",


que será tratado en la clase de hoy.

Este tema entra para el examen parcial de este Sábado que vale el 30% de la asignatura y
tendrá una duración de 3 horas (de 9am a 12m, en el salón 509 del Edif. Fdo Barón). Por lo
anterior requiero de toda su buena disposición, apertura y diligencia para el tema de
esta semana.

Del domino de este tema depende el buen desempeño en el curso y de que puedan hacer
un EXCELENTE DISEÑO para el proyecto restante (10% del rol faltante), y del
Examen Final (10%).

Será difícil aprobar este curso, si este tema NO queda completamente DOMINADO!

I)Antes de enviarles la última presentación de la clase pasada, la cual explicaré


nuevamente este viernes para que quede MAS CLARA, me gustaría por favor me
hicieran llegar sus inquietudes y dudas sobre la guía titulada "FSM_concurrentes.pdf", en
donde explico EL PASO A PASO de la implementación de un proceso concurrente.

Como preparación de la clase del viernes, quisiera por favor diseñaran una función para
Arduino que ponga a parpadear un LED con los siguientes tres parámetros:

1. El identificador del pin donde estará el LED.


2. La frecuencia de parpadeo en ciclos por segundo (cps).
3. Duración del parpadeo en segundos (secs).
PRIMERO diseñen la función ya sea con flowchart (o Diagramas de Flujo) o FSM (del
inglés Finite State Machine), suponiendo que tienen TODO el control del micro-
controlador para esta ÚNICA FUNCIÓN.

… y LUEGO, modifíquenla para que se puedan atender MUCHOS más procesos


concurrentes de manera simultánea.

Una vez hayan concebido, diseñado e implementado tal función, deseo que por FAVOR
hagan lo mismo para generar un TONO audible, pero en lugar de conectar un LED a la
salida lo que se conecta es un buzzer. Par tal fin, concebir una función para que especifique
el pin de salida al cual se le conecta el buzzer, el tono audible y finalmente la duración que
el tono estará sonando.

Si pueden llegar a esta solución ESTÁN A PUERTAS de poder reproducir una melodía o
VARIAS, de manera concurrente en un mismo micro-controlador.

SUERTE y nos vemos este viernes para cubrir estos temas y otros más.

J)

Por favor indagar los siguientes conceptos:

1. ¿Qué és una onda cuadrada?


2. ¿Qué es periodo, qué es frecuencia, qué es amplitud?
3. ¿Cuál es la diferencia entre "frecuencia" y "ciclos por segundo"?
4. ¿Qué es PWM? ¿Para qué sirve?
5. ¿Qué es CICLO útil?

No es necesario ESCRIBIRLOS, ni tampoco entregarlos, solo indagarlo, leerlo, entender…


ANTES DE LA CLASE.

ESTOS CONCEPTOS SON CLAVE PARA EL PARCIAL y para avanzar en la clase del
Viernes 29 de Abril.

K)

También podría gustarte