si, pero lo que yo te decia es que hagas tu propia funcion delay_ms aunque tendrias que hacer calculos con la velocidad de tu pic y tal, y dentro de esa funcion hagas eso mismo que has escrito pero en cada loop, asi como mucho tendras un delay de 2tcy despues de la interrupcion.
Me mataste. como podría hacer eso? la velocidad es de 8 mhz PIC18f4620
Primero tienes que plantearte si es necesario para tu aplicación o con lo que planteaste es suficiente (for(i=0;i<4000&&stopdelay==0;i=i+10) delay_ms(10) ; ) Sino podes usar algo parecido con delayus() o delay_cycles(), pero en ese caso si necesitas un delay (o sea los 4 seg, por ejemplo) más exacto debes tener en cuenta el consumo de ciclos en los for o while que implementes.
Saludos!
Estimado:
yo creo que con (for(i=0;i<4000&&stopdelay==0;i=i+10) delay_ms(10) ; ) me va a ser suficiente, paso a detallar lo que quiero hacer.
Tengo un bus 485 donde tengo conectaod 32 controladores PWM de leds RGB. Ahora lo que quiero hacer es hacer un "Show de luces" con música.
Ya tengo creados varios efectos y programas, ahora lo que quiero hacer es que vayan cambiando sincronizados con el tema musical, para esto pienso escuchar el tema y anotar en que tiempo (ms) se producen los golpes. y en ese preciso momento cambiar de efecto,color,etc.
con esto (for(i=0;i<4000&&stopdelay==0;i=i+10) delay_ms(10) ; ) me daría una resolución de 10ms (casi impersectible para el ojo humano, creo que 100 ms ya se puede notar un pequeño delay)
Se entiende algo?