Thank you for all the help. You said something that really cleared it up for me when you said the triac turns off at zero voltage. That made me realize the need for detecting the zero crossing is to get an accurate reference every time. If you didn't do it, you may turn on the triac at the beginning of the cycle the first time, and the next time you would turn it on in the middle which would cause the light to flicker. I didn't realize that I was not using the PWM command, but using the 60Hz to creat my own PWM. Let me know if this is correct thinking. At 60Hz the period is 16.6 ms. This means that it is positive for 8.3ms and negative for 8.3 ms. I would then detect the zero crossing and turn on the triac for a certain time. If i turn it on for 4.15 ms I would have a 50% duty cycle or about 60 volts at my bulb. Without the zero detection Part of my on time could be the zero voltage, which would significantly drop the 60 volts and cause a flicker.
Bookmarks