About 20 years ago I developed a product that, among other things, dimmed a 120V light via micro control. The way I did it then was to generate a zero-crossing interrupt which loaded the dimming delay into a timer. When the timer timed down it generated another interrupt which then turned on a triac for the remainder of that half-cycle.
My question is, what would be the modern way to do this via micro? Is any of this functionality now combined in a simpler package than the separate bits that I have described? Thanks.