int LowCount int HighCount int RatioPercent init() { configure digital input interrupt on rising edge configure clock to counter configure counter input capture on rising edge of digital input configure counter to clear on input capture } interrupt RisingEdge ISR { LowCount = counter input capture register configure digital input interrupt on falling edge configure counter input capture on falling edge } interrupt FallingEdge ISR { HighCount = counter input capture register RatioPercent = (100 * HighCount) / (HighCount + LowCount) configure digital input interrupt on rising edge configure counter input capture on rising edge }