Buenas, coincido con Manolo, para mi no es necesario detectar cruce por cero, tengo implementado un PID, con una salida PWM, que tiene un ciclo util maximo de 1seg, y lo unico que hago es encender los calefactores, proporcional al resultado del PID, PID = 70%, calefactores encendidos 700ms, etc. funciona perfectamente con una exactitud de 1 grado, que es la minima resolucion que tengo (para la aplicacion sobra), incluso esta implementado en un sistema con una gran inercia termica, y deja la temperatura bien en el SP.
El ciclo del PWM, esta ajustado en un segundo por razones experimentales solamente, la maquina tiene 9 PID´s, con un 18F452, y funciona muy bien.
Saludos.
Alejandro.