Autor Tema: Sistemas operativos en PIC  (Leído 99605 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado matlixco

  • PIC10
  • *
  • Mensajes: 1
Re: Sistemas operativos en PIC
« Respuesta #135 en: 04 de Abril de 2014, 19:21:19 »
Muchas gracias reinier. hace un par de años busque información sobre RTOS de CCS pero no encontré mucha, de haber encontrado tu post en ese entonces hubiera sido de gran ayuda. muchas gracias por todo la información y los ejemplos. :) ya pude usar rtos gracias a ti, que pusiste esto para todos.

Espero aún se pueda agregar un poco más de rtos en lo futuro.

Desconectado eduardo_avelar

  • PIC10
  • *
  • Mensajes: 1
Re: Sistemas operativos en PIC
« Respuesta #136 en: 19 de Junio de 2014, 15:15:40 »
Este hilo ha sido un poco olvidado, pero no perdemos nada en seguir aportandole. Les comparto un fragmento del libro "Advanced pic microcontroller projects in c", es el capitulo 10 de este que se titula "Multi-Tasking and Real-Time Operating Systems", donde habla sobre los rtos, como ejemplos en CCS Compiler, espero y les sirva de ayuda, y gracias reinier por el gran aporte que iso, nos bendria bien mas informacion al respecto, saludos
« Última modificación: 19 de Junio de 2014, 15:19:42 por eduardo_avelar »
ARM Cortex-M

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7820
Re: Sistemas operativos en PIC
« Respuesta #137 en: 19 de Junio de 2014, 16:33:01 »
Muy buen capitulo.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 159
Re: Sistemas operativos en PIC
« Respuesta #138 en: 22 de Mayo de 2016, 18:55:44 »
Hola a todos, este tema esta genial. Pero disculpen mi ignorancia aun no logro entender el planificador:
hice un programa de esta forma:

Código: C
  1. #use rtos(timer=0,minor_cycle=100ms)      // Configuración del RTOS
  2.  
  3.  
  4. //***** Tarea#: Get GPS *************
  5. #task(rate=900ms,max=100ms)
  6. //***** Tarea#: Lectura de Comando ****
  7. #task(rate=800ms,max=10ms)
  8. //***** Tarea#: Alertas en entradas *****
  9. #task(rate=700ms,max=10ms)  
  10. //***** Tarea#: Configuración GPRS ****
  11. #task(rate=600ms,max=100ms)  
  12. //***** Tarea#: Reporte **************
  13. #task(rate=200ms,max=10ms)
  14. //***** Tarea#: PWM ****************
  15. #task(rate=100ms,max=100ms)

Lo entiendo de esta forma:
1- Hay un tiempo mínimo de ejecución que es 100ms
2- La tarea se ejecuta cada "X" tiempo y toma "Y" tiempo de ejecución.

La duda es, ¿Cuando la tarea necesita mucho tiempo, más del tiempo especificado ahí que sucede?
¿Salta la siguiente tarea y la actual se queda a medias?

Mi confusión:
1- La tarea  "configuración del modem GPRS" Estoy seguro que no se toma los 100ms...
en teoría debería tomar al redor de 5 segundos (por los retardos y demás procesos).

2 - La tarea "PWM" es básicamente tiempo off, on de un led para indicar el estado del programa.
lo tengo de esta forma, "blink_led(50,500); // time up , time down"   50ms en alto, 500ms en bajo,
pero se supone que esa tarea toma máximo 100ms.

¿Entonces como es la cosa?

Pero  lo curioso es que así como esta, mi programa corre muy bien. ¿Cómo es eso?
¿A dónde voy? Quiero entender  cómo debo configurar optimamente el planificador.

 
« Última modificación: 22 de Mayo de 2016, 19:15:10 por cvargcal »


 

anything