TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: jose rodriguez en 20 de Mayo de 2020, 14:15:21

Título: Realizar funciones con distintos tiempos en PICCS....ayuda saludos Amigos....
Publicado por: jose rodriguez en 20 de Mayo de 2020, 14:15:21
hola me podrían  como debo hacer para realizar dos o tres funciones simultáneamente pero con tiempos diferentes, sin que una interfiera en el trabajo de otra. en PICCS
Título: Re:Realizar funciones con distintos tiempos en PICCS....ayuda saludos Amigos....
Publicado por: KILLERJC en 20 de Mayo de 2020, 15:36:40
hola me podrían  como debo hacer para realizar dos o tres funciones simultáneamente pero con tiempos diferentes, sin que una interfiera en el trabajo de otra. en PICCS

Hacer las 3 funciones y crear un delay que sea un divisor comun de esas 3 funciones... Luego en cada funcion contar cuantas veces paso el codigo por ahi, para obtener el tiempo.
Es lo mas sencillo para lograrlo.

Supongamos que queremos que:
- Funcion 1 cada 100ms
- Funcion 2 cada 500ms
- Funcion 3 cada 250ms

El GCD (divisor comun mayor) de esos 3 es 50, entonces calculas cuantas veces deberian entrar:

- Funcion 1 : 100ms/50ms = 2
- Funcion 2 : 500ms/50ms = 10
- Funcion 3 : 250ms/50ms = 5

Tu programa quedaria asi:

Código: C
  1. //Esto en tu main()
  2. while(1){
  3.    Funcion1();
  4.    Funcion2();
  5.    Funcion3();
  6.    delay_ms(50);
  7. }
  8.  
  9. Funcion1(){
  10.  if(contador1 >= 2) {
  11.     //Aca programa
  12.     contador1=0;
  13.  }
  14. }
  15.  
  16. Funcion2(){
  17.  if(contador2 >= 10) {
  18.     //Aca programa
  19.     contador2=0;
  20.  }
  21. }
  22.  
  23. Funcion3(){
  24.  if(contador3 >= 5) {
  25.     //Aca programa
  26.     contador3=0;
  27.  }
  28. }

Por supuesto, esto hace que tus funciones NO tengan delays... Pero asi verias ejecutar "al mismo tiempo" las cosas
Título: Re:Realizar funciones con distintos tiempos en PICCS....ayuda saludos Amigos....
Publicado por: jose rodriguez en 22 de Mayo de 2020, 22:50:24
Excelente voy a intentar hacerlo y te informo.....agradesco tu que tomes tu tiempo para ayudar a otros Dios te bendiga...jejeje te comento he leido mucho pero es un poco dificil entender sin un maestro ....gracias saludos
Título: Re:Realizar funciones con distintos tiempos en PICCS....ayuda saludos Amigos....
Publicado por: jose rodriguez en 27 de Mayo de 2020, 14:09:03
Hola saludos hermano....aun no he podido hacer el programa que me comentaste.....no no se como escribir o añadir en el programa que me enviaste la lectura de los puertos de salida y entrada .....por decir en el pin del puerto B 2  sea el pulsador  y en B4 salida del led
Título: Re:Realizar funciones con distintos tiempos en PICCS....ayuda saludos Amigos....
Publicado por: KILLERJC en 27 de Mayo de 2020, 15:21:05
En donde dice "//Aca programa" es donde tenes que poner la lectura de pulsadores, etc. es decir tu programa.