> (and 'soft stop'?) Wouldn't worry about that > I intend to use an ISR to generate a tick perhaps every 250 usecs 250us @ 20MHz is over 600 instruction cycles. Plenty, I'd have thought, with 25,000 (10ms) IC between zero-crossing points I recall a suggestion that slices of 100us works well but 250us would be OK for just ramp-up from off to on. Even after 9 updates there's still 8ms until the next z-c How are you doing the z-c detection btw ? > b) debounce PBs by reference to ticks You could add an RC to lessen/eliminate switch noise and use a shorter switch debounce routine. Choosing a classy pushbutton pays off too It doesn't sound like the PIC would have too much trouble supervising a circuit like that. Some paperwork and a flow diagram for the code beforehand wouldn't be a bad idea, to get all the timing nicely dove- tailed -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.