- “pero me consume mucha potencia de proceso de la cpu”
- los servos me funcionan perfectamente... rotación continua
Los controlo mediante una interrupción que me genera el tmer2, se ejecuta 600 veces durante los 20mSg “periodo” para obtener los 50Hz que necesitan los servomotores...
20mSeg es a 600 veces la unidad de tiempo
1mSeg es a 30
1,5mSeg es a 45
2mSeg es a 60
por lo que se puede ver que solo dispongo de +-15 unidades de tiempo para disponer de la velocidad de los servomotores... en estas 600 veces ya estan incorporadas las demoras de tiempo, por tiempo de ejecución de las instrucciones de la propia rutina... todo esto quita mucho tiempo de ejecución al programa principal...
he pensado que si solo ejecuto la rutina durante 2mSeg (60 unidades de tiempo) y después reprogramo el timer2 con 18mSeg, dispondre de 18 mSeg de tiempo para ejecutar las tareas del programa pricipal con lo que de cada 20 mSeg 2 seran realmente los que absorban el tiempo de la cpu.... esto en principio me complica algo mas la rutina pero pienso que salgo ganando...
todo esto viene porque me estoy diseñando una placa para controlar 16 motores dependiendo de la configuración, motores normales, de paso a paso y como no... servomotores...
y dede luego estoy interesado en PIC que tengan mas salidas para PWM de serie... si me puedes indicar alguno para facilitarme la búsqueda...