
Problema a resolver.
Publicado por Alan Emmanuel (1 intervención) el 01/11/2021 03:15:01
Introducción:
En un motor para conocer su posición angular se utilizan ruedas dentadas de diferentes tipos,
estas giran a la velocidad del mismo, generalmente esta rueda es leída por un
microcontrolador, el cual se sincroniza y comienza a disparar señales de control sincronizadas..
Consigna:
Se necesita disparar una señal con duración = Duracion, que comienza en un diente
cualquiera, especificado por la variable DienteDisparo . Por Ej. DienteDisparo = 0 y Duracion =
“X” quedando la señal representada en la imagen 2 (azul).
En la imagen 2, se encuentra una representación de la señal capturada por el sensor y
acondicionada en forma de pulsos, la cual ingresa al procesador.
Tener en cuenta lo siguiente:
• La rueda tiene 35 dientes físicos (0 a 34) y 1 diente faltante representado en gris (35).
• Se busca que el programa reaccione por cada vuelta de la rueda dentada.

Entregar una propuesta para cumplir con el objetivo, en lenguaje C pudiendo aplicar
pseudocodigo según conveniencia para explicar la solución del problema.
Si utiliza interrupciones, representarlo con el __Interrupt para dar aviso de la utilización
del mismo. Por ej.
__Interrupt void ISR…. ()
{
//Código
…
}
No es necesario llamar a recursos, registros propios del microcontrolador, basta con una
definición Por Ej. “ValorTiempo =SysTicks”
En un motor para conocer su posición angular se utilizan ruedas dentadas de diferentes tipos,
estas giran a la velocidad del mismo, generalmente esta rueda es leída por un
microcontrolador, el cual se sincroniza y comienza a disparar señales de control sincronizadas..
Consigna:
Se necesita disparar una señal con duración = Duracion, que comienza en un diente
cualquiera, especificado por la variable DienteDisparo . Por Ej. DienteDisparo = 0 y Duracion =
“X” quedando la señal representada en la imagen 2 (azul).
En la imagen 2, se encuentra una representación de la señal capturada por el sensor y
acondicionada en forma de pulsos, la cual ingresa al procesador.
Tener en cuenta lo siguiente:
• La rueda tiene 35 dientes físicos (0 a 34) y 1 diente faltante representado en gris (35).
• Se busca que el programa reaccione por cada vuelta de la rueda dentada.
Entregar una propuesta para cumplir con el objetivo, en lenguaje C pudiendo aplicar
pseudocodigo según conveniencia para explicar la solución del problema.
Si utiliza interrupciones, representarlo con el __Interrupt para dar aviso de la utilización
del mismo. Por ej.
__Interrupt void ISR…. ()
{
//Código
…
}
No es necesario llamar a recursos, registros propios del microcontrolador, basta con una
definición Por Ej. “ValorTiempo =SysTicks”
Valora esta pregunta


0