| } | } | ||||
| bool begin(void (*funct)(), float microseconds) { | bool begin(void (*funct)(), float microseconds) { | ||||
| if (microseconds <= 0 || microseconds > MAX_PERIOD) return false; | if (microseconds <= 0 || microseconds > MAX_PERIOD) return false; | ||||
| uint32_t cycles = (float)(24000000 / 1000000) * microseconds - 0.5; | |||||
| uint32_t cycles = (float)(24000000 / 1000000) * microseconds - 0.5f; | |||||
| if (cycles < 17) return false; | if (cycles < 17) return false; | ||||
| return beginCycles(funct, cycles); | return beginCycles(funct, cycles); | ||||
| } | } | ||||
| } | } | ||||
| void update(float microseconds) { | void update(float microseconds) { | ||||
| if (microseconds <= 0 || microseconds > MAX_PERIOD) return; | if (microseconds <= 0 || microseconds > MAX_PERIOD) return; | ||||
| uint32_t cycles = (float)(24000000 / 1000000) * microseconds - 0.5; | |||||
| uint32_t cycles = (float)(24000000 / 1000000) * microseconds - 0.5f; | |||||
| if (cycles < 17) return; | if (cycles < 17) return; | ||||
| if (channel) channel->LDVAL = cycles; | if (channel) channel->LDVAL = cycles; | ||||
| } | } |